all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:feb5:f2b1
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 433c40ae-13b3-42fb-b6ad-fa4453718c07
        host_id: 25afcdcd4b24cc9d1766f11f81549380a3029030a455889bb61ec093
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:feb5:f2b1
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.100
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.148
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:feb5:f2b1
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job yamllint explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#59>'
      - '<Job yamllint explicit: None implied: None source: osism/container-images-kolla/.zuul.yaml@main#243>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 63d1e07dcd3b4a4e81ad6670a6466e57
      build_refs:
      - branch: main
        change: '716'
        change_message: "Update dependency packaging to v26.1\n\nThis PR contains
          the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
          `==26.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.1?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.1?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
          [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
          PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
          in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n-
          PEP 803: add handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
          in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
          package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
          Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n-
          Add the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
          Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
          be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
          Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
          Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
          in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
          Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
          Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
          Add an option to validate compressed tag set sort order in `parse_wheel_filename`
          by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
          adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
          spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n-
          Narrow exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
          Rename `format_full_version` to `_format_full_version` to make it visibly
          private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in
          [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
          Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
          (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
          Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
          Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
          by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
          Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
          Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
          Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
          in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
          by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
          Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
          Handle the `key` parameter in `SpecifierSet.filter` when specifiers are
          empty and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
          Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
          `Specifier`'s `===` uses original string, not normalized, when available
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
          Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
          Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
          Add fast path for `Version` to `Version` comparison by skipping `_key` property
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
          Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
          Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
          Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
          `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
          Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
          Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
          Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
          Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
          Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
          in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
          Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
          Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
          Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
          Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
          Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
          Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
          Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
          Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
          Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
          Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
          Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
          Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
          Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
          Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
          Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
          Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
          Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
          Fix documentation: grammar, typos, formatting, and outdated references by
          [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
          in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
          Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
          in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
          Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
          Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
          Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
          Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
          Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
          benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
          height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
          />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
          32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
          />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
          made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first
          contribution in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first
          contribution in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
          contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
          contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
          contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
          contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - 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/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/container-images-kolla/pull/716
        commit_id: 23f6b03ee43caa5daa740370a724b99324467c49
        patchset: 23f6b03ee43caa5daa740370a724b99324467c49
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          name: osism/container-images-kolla
          short_name: container-images-kolla
        src_dir: src/github.com/osism/container-images-kolla
        topic: null
      buildset: cbcf3ae119ea47d8bf13f749cb69e161
      buildset_refs:
      - branch: main
        change: '716'
        change_message: "Update dependency packaging to v26.1\n\nThis PR contains
          the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
          `==26.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.1?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.1?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
          [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
          PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
          in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n-
          PEP 803: add handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
          in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
          package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
          Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n-
          Add the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
          Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
          be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
          Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
          Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
          in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
          Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
          Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
          Add an option to validate compressed tag set sort order in `parse_wheel_filename`
          by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
          adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
          spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n-
          Narrow exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
          Rename `format_full_version` to `_format_full_version` to make it visibly
          private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in
          [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
          Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
          (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
          Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
          Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
          by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
          Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
          Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
          Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
          in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
          by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
          Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
          Handle the `key` parameter in `SpecifierSet.filter` when specifiers are
          empty and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
          Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
          `Specifier`'s `===` uses original string, not normalized, when available
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
          Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
          Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
          Add fast path for `Version` to `Version` comparison by skipping `_key` property
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
          Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
          Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
          Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
          `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
          Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
          Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
          Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
          Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
          Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
          in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
          Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
          Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
          Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
          Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
          Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
          Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
          Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
          Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
          Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
          Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
          Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
          Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
          Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
          Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
          Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
          Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
          Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
          Fix documentation: grammar, typos, formatting, and outdated references by
          [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
          in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
          Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
          in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
          Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
          Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
          Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
          Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
          Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
          benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
          height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
          />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
          32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
          />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
          made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first
          contribution in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first
          contribution in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
          contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
          contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
          contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
          contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - 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/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/container-images-kolla/pull/716
        commit_id: 23f6b03ee43caa5daa740370a724b99324467c49
        patchset: 23f6b03ee43caa5daa740370a724b99324467c49
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          name: osism/container-images-kolla
          short_name: container-images-kolla
        src_dir: src/github.com/osism/container-images-kolla
        topic: null
      change: '716'
      change_message: "Update dependency packaging to v26.1\n\nThis PR contains the
        following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
        | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
        [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
        `==26.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.1?slim=true)
        | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.1?slim=true)
        |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
        [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
        Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
        PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
        in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n- PEP
        803: add handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
        in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
        PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
        package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
        Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n- Add
        the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
        Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
        be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
        Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
        Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
        in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
        Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
        Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
        Add an option to validate compressed tag set sort order in `parse_wheel_filename`
        by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
        adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
        spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in
        [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n- Narrow
        exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
        Rename `format_full_version` to `_format_full_version` to make it visibly
        private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
        Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
        (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
        Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
        in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
        Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
        by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
        Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
        Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
        Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
        in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
        Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
        by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
        Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
        Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
        Handle the `key` parameter in `SpecifierSet.filter` when specifiers are empty
        and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
        Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
        `Specifier`'s `===` uses original string, not normalized, when available by
        [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
        Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
        Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
        Add fast path for `Version` to `Version` comparison by skipping `_key` property
        by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
        Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
        Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
        Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
        `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
        Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
        by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
        Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
        Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
        Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
        Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
        in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
        Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
        Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
        Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
        Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
        Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
        Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
        Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
        Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
        Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
        Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
        Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
        Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
        Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
        Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
        Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
        Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
        Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
        Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
        Fix documentation: grammar, typos, formatting, and outdated references by
        [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
        in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
        Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
        in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
        Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
        in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
        Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
        Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
        Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
        Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
        Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
        Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
        benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
        height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
        />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
        32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
        />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
        made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
        [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first contribution
        in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
        [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first contribution
        in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
        [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
        contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
        [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
        contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
        [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
        contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
        [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
        contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
        Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
        At any time (no schedule defined)\n- Automerge\n  - 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/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/container-images-kolla/pull/716
      child_jobs: []
      commit_id: 23f6b03ee43caa5daa740370a724b99324467c49
      event_id: 1278e7a0-3862-11f1-9f45-2c8c76cbd537
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/63d1e07dcd3b4a4e81ad6670a6466e57/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/63d1e07dcd3b4a4e81ad6670a6466e57/work/logs
        result_data_file: /var/lib/zuul/builds/63d1e07dcd3b4a4e81ad6670a6466e57/work/results.json
        src_root: /var/lib/zuul/builds/63d1e07dcd3b4a4e81ad6670a6466e57/work/src
        work_root: /var/lib/zuul/builds/63d1e07dcd3b4a4e81ad6670a6466e57/work
      include_vars: []
      items:
      - branch: main
        change: '716'
        change_message: "Update dependency packaging to v26.1\n\nThis PR contains
          the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
          `==26.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.1?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.1?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
          [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
          PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
          in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n-
          PEP 803: add handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
          in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
          package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
          Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n-
          Add the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
          Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
          be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
          Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
          Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
          in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
          Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
          Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
          Add an option to validate compressed tag set sort order in `parse_wheel_filename`
          by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
          adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
          spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n-
          Narrow exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
          Rename `format_full_version` to `_format_full_version` to make it visibly
          private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in
          [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
          Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
          (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
          Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
          Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
          by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
          Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
          Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
          Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
          in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
          by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
          Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
          Handle the `key` parameter in `SpecifierSet.filter` when specifiers are
          empty and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
          Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
          `Specifier`'s `===` uses original string, not normalized, when available
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
          Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
          Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
          Add fast path for `Version` to `Version` comparison by skipping `_key` property
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
          Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
          Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
          Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
          `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
          Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
          Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
          Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
          Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
          Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
          in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
          Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
          Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
          Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
          Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
          Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
          Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
          Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
          Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
          Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
          Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
          Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
          Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
          Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
          Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
          Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
          Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
          Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
          Fix documentation: grammar, typos, formatting, and outdated references by
          [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
          in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
          Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
          in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
          Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
          Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
          Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
          Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
          Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
          benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
          height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
          />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
          32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
          />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
          made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first
          contribution in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first
          contribution in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
          contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
          contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
          contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
          contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - 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/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/container-images-kolla/pull/716
        commit_id: 23f6b03ee43caa5daa740370a724b99324467c49
        patchset: 23f6b03ee43caa5daa740370a724b99324467c49
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          name: osism/container-images-kolla
          short_name: container-images-kolla
          src_dir: src/github.com/osism/container-images-kolla
        topic: null
      job: yamllint
      jobtags: []
      max_attempts: 3
      message: VXBkYXRlIGRlcGVuZGVuY3kgcGFja2FnaW5nIHRvIHYyNi4xCgpUaGlzIFBSIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoKCnwgUGFja2FnZSB8IENoYW5nZSB8IFtBZ2VdKGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vbWVyZ2UtY29uZmlkZW5jZS8pIHwgW0NvbmZpZGVuY2VdKGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vbWVyZ2UtY29uZmlkZW5jZS8pIHwKfC0tLXwtLS18LS0tfC0tLXwKfCBbcGFja2FnaW5nXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcpIHwgYD09MjYuMGAg4oaSIGA9PTI2LjFgIHwgIVthZ2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1lbmQuaW8vYXBpL21jL2JhZGdlcy9hZ2UvcHlwaS9wYWNrYWdpbmcvMjYuMT9zbGltPXRydWUpIHwgIVtjb25maWRlbmNlXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2FwaS9tYy9iYWRnZXMvY29uZmlkZW5jZS9weXBpL3BhY2thZ2luZy8yNi4wLzI2LjE/c2xpbT10cnVlKSB8CgotLS0KCiMjIyBSZWxlYXNlIE5vdGVzCgo8ZGV0YWlscz4KPHN1bW1hcnk+cHlwYS9wYWNrYWdpbmcgKHBhY2thZ2luZyk8L3N1bW1hcnk+CgojIyMgW2B2MjYuMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9yZWxlYXNlcy90YWcvMjYuMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL2NvbXBhcmUvMjYuMC4uLjI2LjEpCgpGZWF0dXJlczoKCi0gUEVQIDc4MzogYWRkIGhhbmRsaW5nIGZvciBFbXNjcmlwdGVuIHdoZWVsIHRhZ3MgYnkgW0AmIzgyMDM7aG9vZG1hbmVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ob29kbWFuZSkgaW4gWyMmIzgyMDM7ODA0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC84MDQpCi0gUEVQIDgwMzogYWRkIGhhbmRsaW5nIGZvciB0aGUgYGFiaTMuYWJpM3RgIGZyZWUtdGhyZWFkaW5nIHRhZyBieSBbQCYjODIwMztuZ29sZGJhdW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9uZ29sZGJhdW0pIGluIFsjJiM4MjAzOzEwOTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTkpCi0gUEVQIDcyMzogYWRkIGBwYWNrYWdpbmcuZGVwZW5kZW5jeV9ncm91cHNgIG1vZHVsZSwgYmFzZWQgb24gdGhlIGBkZXBlbmRlbmN5LWdyb3Vwc2AgcGFja2FnZSBieSBbQCYjODIwMztzaXJvc2VuXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vc2lyb3NlbikgaW4gWyMmIzgyMDM7MTA2NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA2NSkKLSBBZGQgdGhlIGBwYWNrYWdpbmcuZGlyZWN0X3VybGAgbW9kdWxlIGJ5IFtAJiM4MjAzO3NiaWRvdWxdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9zYmlkb3VsKSBpbiBbIyYjODIwMzs5NDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzk0NCkKLSBBZGQgdGhlIGBwYWNrYWdpbmcuZXJyb3JzYCBtb2R1bGUgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTA3MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA3MSkKLSBBZGQgYFNwZWNpZmllclNldC5pc191bnNhdGlzZmlhYmxlYCB1c2luZyByYW5nZXMgKG5ldyBpbnRlcm5hbHMgdGhhdCB3aWxsIGJlIGV4cGFuZGVkIGluIGZ1dHVyZSB2ZXJzaW9ucykgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTE5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTE5KQotIEFkZCBgY3JlYXRlX2NvbXBhdGlibGVfdGFnc19zZWxlY3RvcmAgdG8gc2VsZWN0IGNvbXBhdGlibGUgdGFncyBieSBbQCYjODIwMztzYmlkb3VsXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vc2JpZG91bCkgaW4gWyMmIzgyMDM7MTExMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTExMCkKLSBBZGQgYSBga2V5YCBhcmd1bWVudCB0byBgU3BlY2lmaWVyU2V0LmZpbHRlcigpYCBieSBbQCYjODIwMztmcm9zdG1pbmddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9mcm9zdG1pbmcpIGluIFsjJiM4MjAzOzEwNjhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNjgpCi0gU3VwcG9ydCBgJmAgYW5kIGB8YCBmb3IgYE1hcmtlcmAncyBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTQ2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTQ2KQotIE5vcm1hbGl6ZSBgVmVyc2lvbi5fX3JlcGxhY2VfX2AgYW5kIGFkZCBgVmVyc2lvbi5mcm9tX3BhcnRzYCBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDc4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDc4KQotIEFkZCBhbiBvcHRpb24gdG8gdmFsaWRhdGUgY29tcHJlc3NlZCB0YWcgc2V0IHNvcnQgb3JkZXIgaW4gYHBhcnNlX3doZWVsX2ZpbGVuYW1lYCBieSBbQCYjODIwMztyMjY2LXRlY2hdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9yMjY2LXRlY2gpIGluIFsjJiM4MjAzOzExNTBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNTApCgpCZWhhdmlvciBhZGFwdGF0aW9uczoKCi0gTmFycm93IGV4Y2x1c2lvbiBvZiBwcmUtcmVsZWFzZXMgZm9yIGA8Vi5wb3N0TmAgdG8gbWF0Y2ggc3BlYyBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExNDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNDApCi0gTmFycm93IGV4Y2x1c2lvbiBvZiBwb3N0LXJlbGVhc2VzIGZvciBgPlZgIHRvIG1hdGNoIHNwZWMgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTQxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTQxKQotIFJlbmFtZSBgZm9ybWF0X2Z1bGxfdmVyc2lvbmAgdG8gYF9mb3JtYXRfZnVsbF92ZXJzaW9uYCB0byBtYWtlIGl0IHZpc2libHkgcHJpdmF0ZSBieSBbQCYjODIwMztyMjY2LXRlY2hdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9yMjY2LXRlY2gpIGluIFsjJiM4MjAzOzExMjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMjUpCi0gUmVzdHJpY3QgbG9jYWwgdmVyc2lvbiB0byBBU0NJSSBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTAyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTAyKQoKUHlsb2NrIChQRVAgNzUxKSB1cGRhdGVzOgoKLSBBZGQgcHlsb2NrIGBzZWxlY3RgIGZ1bmN0aW9uIGJ5IFtAJiM4MjAzO3NiaWRvdWxdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9zYmlkb3VsKSBpbiBbIyYjODIwMzsxMDkyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDkyKQotIERvY3VtZW50IHB5bG9jayBgc2VsZWN0KClgIG1ldGhvZCBhbmQgYFB5bG9ja1NlbGVjdEVycm9yYCBieSBbQCYjODIwMztyMjY2LXRlY2hdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9yMjY2LXRlY2gpIGluIFsjJiM4MjAzOzExNTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNTMpCi0gQWRkIGBmaWxlbmFtZWAgcHJvcGVydHkgdG8gYFBhY2thZ2VTZGlzdGAgYW5kIGBQYWNrYWdlV2hlZWxgLCBtb3JlIHZhbGlkYXRpb24gYnkgW0AmIzgyMDM7c2JpZG91bF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3NiaWRvdWwpIGluIFsjJiM4MjAzOzEwOTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTUpCi0gR2l2ZSBwcmVmZXJlbmNlIHRvIHBhdGggb3ZlciB1cmwgYnkgW0AmIzgyMDM7c2JpZG91bF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3NiaWRvdWwpIGluIFsjJiM4MjAzOzExMjhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMjgpCi0gVmFsaWRhdGUgbmFtZS92ZXJzaW9uIGNvbnNpc3RlbmN5IGluIGZpbGUgbmFtZXMgYnkgW0AmIzgyMDM7c2JpZG91bF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3NiaWRvdWwpIGluIFsjJiM4MjAzOzExMTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMTQpCgpGaXhlczoKCi0gRml4IGA+YCBjb21wYXJpc29uIGZvciB2ZXJzaW9ucyB3aXRoIGRlditsb2NhbCBzZWdtZW50cyBieSBbQCYjODIwMzt2ZWVjZWV5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdmVlY2VleSkgaW4gWyMmIzgyMDM7MTA5N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA5NykKLSBGaXggaW5jb3JyZWN0IHNlbGYtY29tcGFyaXNvbiBmb3IgYEluZmluaXR5VHlwZWAgYW5kIGBOZWdhdGl2ZUluZmluaXR5VHlwZWAgYnkgW0AmIzgyMDM7YnlzaWJlcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2J5c2liZXIpIGluIFsjJiM4MjAzOzEwOTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTMpCi0gQ2Fub25pY2FsaXplIHdoZW4gZGVkdXBsaWNhdGluZyBzcGVjaWZpZXJzIGluIGBTcGVjaWZpZXJTZXRgIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTEwOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwOSkKLSBGaXggY2hhcnNldCBlcnJvciBtZXNzYWdlIGZvcm1hdHRpbmcgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTIxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTIxKQotIEhhbmRsZSB0aGUgYGtleWAgcGFyYW1ldGVyIGluIGBTcGVjaWZpZXJTZXQuZmlsdGVyYCB3aGVuIHNwZWNpZmllcnMgYXJlIGVtcHR5IGFuZCBwcmVyZWxlYXNlIGlzIGBGYWxzZWAgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMDk2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDk2KQotIFN0YW5kYXJkaXplIGlubmVyIGNvbXBvbmVudHMgb2YgYHJlcHJgIG91dHB1dCBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDkwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDkwKQotIGBTcGVjaWZpZXJgJ3MgYD09PWAgdXNlcyBvcmlnaW5hbCBzdHJpbmcsIG5vdCBub3JtYWxpemVkLCB3aGVuIGF2YWlsYWJsZSBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMjRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMjQpCi0gUHJvcGFnYXRlIGludC1tYXgtc3RyLWRpZ2l0cyBgVmFsdWVFcnJvcmAgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTU1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTU1KQoKUGVyZm9ybWFuY2U6CgotIEFkZCBmYXN0IHBhdGggZm9yIHBhcnNpbmcgc2ltcGxlIHZlcnNpb25zIChkaWdpdHMgYW5kIGRvdHMgb25seSkgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMDgyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDgyKQotIEFkZCBmYXN0IHBhdGggZm9yIGBWZXJzaW9uYCB0byBgVmVyc2lvbmAgY29tcGFyaXNvbiBieSBza2lwcGluZyBgX2tleWAgcHJvcGVydHkgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMDgzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDgzKQotIENhY2hlIGBWZXJzaW9uYCBoYXNoIHZhbHVlIGluIGRlZGljYXRlZCBzbG90IGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTExOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTExOCkKLSBPdmVyaGF1bCBgX2NtcGtleWAgdG8gcmVtb3ZlIHVzZSBvZiBjdXN0b20gb2JqZWN0cyBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMTYpCi0gU2tpcCBgX19yZXBsYWNlX19gIGluIFNwZWNpZmllciBjb21wYXJpc29uIGlmIG5vdCBuZWVkZWQgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMDgxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDgxKQotIGBTcGVjaWZpZXJTZXRgIHVzZSBgdHVwbGVgIGluc3RlYWQgb2YgYGZyb3plbnNldGAgZm9yIGBfc3BlY3NgIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTEwOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwOCkKLSBTcGVlZCB1cCBjb21wbGV4IGBTcGVjaWZpZXJTZXRgIGZpbHRlcmluZyBieSBpbXBsZW1lbnRpbmcgY29zdC1iYXNlZCBvcmRlcmluZyBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMDVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMDUpCi0gU3BlZWQgdXAgd2lsZGNhcmQgY29tcGFyaXNvbiBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMTEpCi0gU3RyZWFtIFBFUDQ0MCBmaWx0ZXJpbmcgaW4gYFNwZWNpZmllclNldC5maWx0ZXJgIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTA3Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA3NikKLSBBZGQgYF9fc2xvdHNfX2AgdG8gYE1hcmtlcmAgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTE0N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE0NykKLSBTaW1wbHkgYFNwZWNpZmllcmAgcmVnZXggYnkgW0AmIzgyMDM7c2lyb3Nlbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3Npcm9zZW4pIGluIFsjJiM4MjAzOzExMDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMDYpCi0gU2tpcCB1c2luZyB0aGUgaGFzaCBwcm9wZXJ0eSBpbnRlcm5hbGx5IGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTExNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTExNSkKCkludGVybmFsOgoKLSBBZGQgZG93bnN0cmVhbSB0ZXN0aW5nIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwNDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNDkpCi0gQmVuY2htYXJraW5nIHN1aXRlIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwNTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNTkpCi0gQmVuY2htYXJrIHZhcmlhbmNlIHJlZHVjdGlvbiBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMDddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMDcpCi0gQWRkIHByb3BlcnR5LWJhc2VkIHRlc3RzIGZvciBQRVAgNDQwIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTE0NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE0NCkKLSBDbGVhbiB1cCBhIGZldyBgY29sbGVjdGlvbnMubmFtZWR0dXBsZWAgaW4gdGVzdHMgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTA3MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA3MCkKLSBEbyBub3QgcmVsb2FkIHRoZSB0YWdzIG1vZHVsZSBpbiB0ZXN0cyBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTUyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTUyKQotIExpbWl0IGBkaXIoKWAgLyB0YWItY29tcGxldGlvbiBpbiBSRVBMIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwMTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwMTEpCi0gQWRkIG1vcmUgYF9fYWxsX19gL2BfX2Rpcl9fYCBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDY5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDY5KQotIENsZWFudXAgcHJlLWNvbW1pdCBhIGJpdCBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDgwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDgwKQotIFBpbiBwcmUtY29tbWl0IGZpbGUsIHVzZSBkZXBlbmRhYm90IGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExMzNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMzMpCi0gUmVtb3ZlIHNwaGlueC10b29sYm94IGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExMzVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMzUpCi0gVXNlIGRvY3MgZ3JvdXAsIGZhc3RlciByZWFkdGhlZG9jcyBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDYxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDYxKQotIEFkZCBmcmVlLXRocmVhZGVkIFB5dGhvbiB0byBDSSBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDk4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDk4KQotIFNpbXBsaWZ5IGNvbWJpbmluZyBgU3BlY2lmaWVyU2V0LnByZXJlbGVhc2VzYCBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzEwNzNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNzMpCi0gVXNlIGRpcmVjdCBvcGVyYXRvciBtZXRob2RzIGluIGBfY29tcGFyZV9jb21wYXRpYmxlYCBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMDApCi0gUmVtb3ZlIHVubmVjZXNzYXJ5IGlmIHN0YXRlbWVudCBpbiBgU3BlY2lmaWVyLnByZXJlbGVhc2VzYCBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzEwNzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNzQpCi0gUmVtb3ZlIHVubmVlZGVkIG5lc3RpbmcgaW4gYFNwZWNpZmllci5wcmVyZWxlYXNlc2AgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMDcyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDcyKQoKRG9jdW1lbnRhdGlvbjoKCi0gRml4IGRvY3VtZW50YXRpb246IGdyYW1tYXIsIHR5cG9zLCBmb3JtYXR0aW5nLCBhbmQgb3V0ZGF0ZWQgcmVmZXJlbmNlcyBieSBbQCYjODIwMztEaW1pdHJpUGFwYWRvcG91bG9zXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vRGltaXRyaVBhcGFkb3BvdWxvcykgaW4gWyMmIzgyMDM7MTA4NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA4NCkKLSBGaXggdmVyc2lvbmFkZGVkIGZvciBgVmVyc2lvbi5mcm9tX3BhcnRzKClgIGJ5IFtAJiM4MjAzO0phY2tlbm1lbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL0phY2tlbm1lbikgaW4gWyMmIzgyMDM7MTEzNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEzNCkKLSBEb2N1bWVudCBgJmAgYW5kIGB8YCBvcGVyYXRvcnMgZm9yIGNvbWJpbmluZyBgTWFya2VyYCBvYmplY3RzIGJ5IFtAJiM4MjAzO3IyNjYtdGVjaF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3IyNjYtdGVjaCkgaW4gWyMmIzgyMDM7MTE1MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE1MSkKLSBFeHBhbmQgYW5kIGNsZWFuIHVwIGBWZXJzaW9uYCBkb2N1bWVudGF0aW9uIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwODldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwODkpCi0gTW92ZSBsaWNlbnNlIGRvY3MgaW5saW5lIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExMzFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMzEpCi0gTW92ZSBtYXJrZXJzIGlubGluZSBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTA0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTA0KQotIE1vdmUgdGFncyBkb2NzIHRvIGlubGluZSBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTMwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTMwKQotIE1vdmUgdXRpbGl0aWVzIGlubGluZSwgbGlrZSBvdGhlciBtb2R1bGVzIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExMDNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMDMpCgojIyMjIEJlbmNobWFya3MKClBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBzaW5jZSAyNi4wLCBmcm9tIHRoZSBuZXcgaW50ZWdyYXRlZCBiZW5jaG1hcmsgc3VpdGU6CgpgYGAKdXYgcnVuIGFzdiBydW4gMjYuMC4uSEVBRApgYGAKCjxpbWcgd2lkdGg9IjkwOCIgaGVpZ2h0PSI5NjUiIGFsdD0iU2NyZWVuc2hvdCAyMDI2LTA0LTEzIGF0IDExIDMyIDE04oCvUE0iIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzNiZjYzNTY5LWRiYmYtNGYzNC05NjYwLWVkZTNjZWYxNzQ1ZCIgLz4KCjxpbWcgd2lkdGg9IjkwOCIgaGVpZ2h0PSI0NzkiIGFsdD0iU2NyZWVuc2hvdCAyMDI2LTA0LTEzIGF0IDExIDMyIDQz4oCvUE0iIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2Y3OTA2ODAwLWY2ZDktNGFmNi1hM2YzLTM2OWI2NTRiNzNlMyIgLz4KCiMjIyMgTmV3IENvbnRyaWJ1dG9ycwoKLSBbQCYjODIwMzt2ZWVjZWV5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdmVlY2VleSkgbWFkZSB0aGVpciBmaXJzdCBjb250cmlidXRpb24gaW4gWyMmIzgyMDM7MTA5N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA5NykKLSBbQCYjODIwMztieXNpYmVyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYnlzaWJlcikgbWFkZSB0aGVpciBmaXJzdCBjb250cmlidXRpb24gaW4gWyMmIzgyMDM7MTA5M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA5MykKLSBbQCYjODIwMztzaXJvc2VuXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vc2lyb3NlbikgbWFkZSB0aGVpciBmaXJzdCBjb250cmlidXRpb24gaW4gWyMmIzgyMDM7MTEwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwNikKLSBbQCYjODIwMztKYWNrZW5tZW5dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9KYWNrZW5tZW4pIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFsjJiM4MjAzOzExMzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMzQpCi0gW0AmIzgyMDM7bmdvbGRiYXVtXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbmdvbGRiYXVtKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzsxMDk5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDk5KQotIFtAJiM4MjAzO3IyNjYtdGVjaF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3IyNjYtdGVjaCkgbWFkZSB0aGVpciBmaXJzdCBjb250cmlidXRpb24gaW4gWyMmIzgyMDM7MTE1MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE1MSkKLSBbQCYjODIwMztob29kbWFuZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hvb2RtYW5lKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzs4MDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzgwNCkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogPGh0dHBzOi8vZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9jb21wYXJlLzI2LjAuLi4yNi4xPgoKPC9kZXRhaWxzPgoKLS0tCgojIyMgQ29uZmlndXJhdGlvbgoK8J+ThSAqKlNjaGVkdWxlKio6IChVVEMpCgotIEJyYW5jaCBjcmVhdGlvbgogIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpCi0gQXV0b21lcmdlCiAgLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCkKCvCfmqYgKipBdXRvbWVyZ2UqKjogRGlzYWJsZWQgYnkgY29uZmlnLiBQbGVhc2UgbWVyZ2UgdGhpcyBtYW51YWxseSBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkLgoK4pm7ICoqUmViYXNpbmcqKjogV2hlbmV2ZXIgUFIgYmVjb21lcyBjb25mbGljdGVkLCBvciB5b3UgdGljayB0aGUgcmViYXNlL3JldHJ5IGNoZWNrYm94LgoK8J+UlSAqKklnbm9yZSoqOiBDbG9zZSB0aGlzIFBSIGFuZCB5b3Ugd29uJ3QgYmUgcmVtaW5kZWQgYWJvdXQgdGhpcyB1cGRhdGUgYWdhaW4uCgotLS0KCiAtIFsgXSA8IS0tIHJlYmFzZS1jaGVjayAtLT5JZiB5b3Ugd2FudCB0byByZWJhc2UvcmV0cnkgdGhpcyBQUiwgY2hlY2sgdGhpcyBib3gKCi0tLQoKVGhpcyBQUiB3YXMgZ2VuZXJhdGVkIGJ5IFtNZW5kIFJlbm92YXRlXShodHRwczovL21lbmQuaW8vcmVub3ZhdGUvKS4gVmlldyB0aGUgW3JlcG9zaXRvcnkgam9iIGxvZ10oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9naXRodWIvb3Npc20vY29udGFpbmVyLWltYWdlcy1rb2xsYSkuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSTBNeTR4TVRBdU1pSXNJblZ3WkdGMFpXUkpibFpsY2lJNklqUXpMakV4TUM0eUlpd2lkR0Z5WjJWMFFuSmhibU5vSWpvaWJXRnBiaUlzSW14aFltVnNjeUk2V3lKeVpXNXZkbUYwWlNKZGZRPT0tLT4K
      patchset: 23f6b03ee43caa5daa740370a724b99324467c49
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 4f450aa36c28b035ce97359a888edbd7599eaf31
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: a01eed06dffe368c1d01819193bfadccb137414d
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 4f450aa36c28b035ce97359a888edbd7599eaf31
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/yamllint/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/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/container-images-kolla
        name: osism/container-images-kolla
        short_name: container-images-kolla
        src_dir: src/github.com/osism/container-images-kolla
      projects:
        github.com/osism/container-images-kolla:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          checkout: main
          checkout_description: zuul branch
          commit: 43eeae9a00706d1929d51920100afdbe8f11e651
          name: osism/container-images-kolla
          required: false
          short_name: container-images-kolla
          src_dir: src/github.com/osism/container-images-kolla
      ref: refs/pull/716/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
