--- apiVersion: v1 items: - apiVersion: v1 data: cnibincopy.sh: |- #!/bin/bash set -e function log() { echo "$(date --iso-8601=seconds) [cnibincopy] ${1}" } DESTINATION_DIRECTORY=/host/opt/cni/bin/ # Perform validation of usage if [ -z "$RHEL8_SOURCE_DIRECTORY" ] || [ -z "$RHEL9_SOURCE_DIRECTORY" ] || [ -z "$DEFAULT_SOURCE_DIRECTORY" ]; then log "FATAL ERROR: You must set env variables: RHEL8_SOURCE_DIRECTORY, RHEL9_SOURCE_DIRECTORY, DEFAULT_SOURCE_DIRECTORY" exit 1 fi if [ ! -d "$DESTINATION_DIRECTORY" ]; then log "FATAL ERROR: Destination directory ($DESTINATION_DIRECTORY) does not exist" exit 1 fi # Collect host OS information . /host/etc/os-release rhelmajor= # detect which version we're using in order to copy the proper binaries case "${ID}" in rhcos|scos) RHEL_VERSION=$(echo "${CPE_NAME}" | cut -f 5 -d :) rhelmajor=$(echo $RHEL_VERSION | sed -E 's/([0-9]+)\.{1}[0-9]+(\.[0-9]+)?/\1/') ;; rhel|centos) rhelmajor=$(echo "${VERSION_ID}" | cut -f 1 -d .) ;; fedora) if [ "${VARIANT_ID}" == "coreos" ]; then rhelmajor=8 else log "FATAL ERROR: Unsupported Fedora variant=${VARIANT_ID}" exit 1 fi ;; *) log "FATAL ERROR: Unsupported OS ID=${ID}"; exit 1 ;; esac # Set which directory we'll copy from, detect if it exists sourcedir= founddir=false case "${rhelmajor}" in 8) if [ -d "${RHEL8_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL8_SOURCE_DIRECTORY} founddir=true fi ;; 9) if [ -d "${RHEL9_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL9_SOURCE_DIRECTORY} founddir=true fi ;; *) log "ERROR: RHEL Major Version Unsupported, rhelmajor=${rhelmajor}" ;; esac # When it doesn't exist, fall back to the original directory. if [ "$founddir" == false ]; then log "Source directory unavailable for OS version: ${rhelmajor}" sourcedir=$DEFAULT_SOURCE_DIRECTORY fi # Use a subdirectory called "upgrade" so we can atomically move fully copied files. # We now use --remove-destination after running into an issue with -f not working over symlinks UPGRADE_DIRECTORY=${DESTINATION_DIRECTORY}upgrade_$(uuidgen) rm -Rf $UPGRADE_DIRECTORY mkdir -p $UPGRADE_DIRECTORY cp -r --remove-destination ${sourcedir}* $UPGRADE_DIRECTORY if [ $? -eq 0 ]; then log "Successfully copied files in ${sourcedir} to $UPGRADE_DIRECTORY" else log "Failed to copy files in ${sourcedir} to $UPGRADE_DIRECTORY" rm -Rf $UPGRADE_DIRECTORY exit 1 fi mv -f $UPGRADE_DIRECTORY/* ${DESTINATION_DIRECTORY}/ if [ $? -eq 0 ]; then log "Successfully moved files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" else log "Failed to move files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" rm -Rf $UPGRADE_DIRECTORY exit 1 fi rm -Rf $UPGRADE_DIRECTORY kind: ConfigMap metadata: annotations: kubernetes.io/description: | This is a script used to copy CNI binaries based on host OS release.openshift.io/version: 4.21.22 creationTimestamp: "2026-07-01T22:59:16Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:cnibincopy.sh: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"a1c67204-9ce1-41c3-8d9e-486a6494e6db"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-01T22:59:16Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a1c67204-9ce1-41c3-8d9e-486a6494e6db resourceVersion: "2740" uid: 8f21ce1c-3cb3-4f1a-bedc-627287c22625 - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.22 creationTimestamp: "2026-07-01T22:59:16Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:allowlist.conf: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} f:release.openshift.io/version: {} manager: network-operator operation: Update time: "2026-07-01T22:59:16Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2720" uid: 3c67c6aa-506b-4f61-b09b-75dd732f005b - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.22 creationTimestamp: "2026-07-01T22:59:16Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:allowlist.conf: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"a1c67204-9ce1-41c3-8d9e-486a6494e6db"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-01T22:59:16Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a1c67204-9ce1-41c3-8d9e-486a6494e6db resourceVersion: "2716" uid: 31a80c16-483e-4d09-8a28-a308dcfdd781 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIAKvZKgOFvmswDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMTIyNTUyNVoX DTM2MDYyODIyNTUyNVowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtNKvFcH2peUx d3+ZXmZn2kdwSpr3fid+3QdfXozvw+qzr/4QSJ9G/W+qU59N6Hf5mDEd3BPUmdYj su+vIl5/IHq6QZUft1cp2BBTvZa1J2xuXGTiLZdtOHq1RTp8/EHZuywDiL3BAZxv iVLtGV8KZs8xPvKeVRv49GJy4FrFS7yagmI0wE32wRkkvFEj9HV2hb4uurJpcK2b AZvp0M0JBz43oP8jwjlUK4xJ7wHaDbtMTqGQjAOzxpLMZYyjAFaNgwIpCZ9+7DGR s46RJX3j8wDTJRvxZB3awBYoUKmCaKyHPDKs30gtUwZrXXCr8tgfTrBn7fe0ZAys JV/68uxc7wIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAhiBPU5n+snSGlusqBbVij8voQpybMyJeSGCKE8M8KeHC1msT D9YykxWs+fmWWFp9C9N2YarSRRpxfZxyCG80SzANBgkqhkiG9w0BAQsFAAOCAQEA JjCMquVjhbdxStSsnNIKz5WwZ6zfe0UQWd2+T1T4cAKZIf93LWMxsc4XBa7ToTsG 82+K9Gj2kNe+MnWtOXK2TOzVgaxOxW8qPJwvA5PwWW29Lhm4haZf0UdYieUm7i34 Zhnn+xppupnfuEOIZn3TzvElsWOBuEqKjxkqZEz13if50RH5fHYLhs75G2E/7LDX OP4QRo5vmCAu6J8Z3MEU1lClPf4Vtb0QUvf7sPoSqEn7m2cmAfxGozAad4mZlpOA OcCHnaFW2XmzL1cf/0nOO6OofODvOJSLjKEXmqPUgr7njWDMk9Slv6WdqVac3Idv DDHNOrY8BYrNnEYW1XfNGA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIINdnoRDe95n8wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMTIyNTYyMloX DTI3MDcwMTIyNTYyMlowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ANJJ4AOBLrHHowIp3zkwv+NnkZTPE43Hkgu/pt05OMkpDtjWa7heHyvn6saAxf+0 ImmB7sa6p3JuOeotby04E/B3pKuUsAoay6EHF87uqslkySUxDHy8uXIZtPtX47J2 +agU9lVCE2OhavUOn2Zp7fp/LPTQrBVnTaauzmabTXF2Ym7SXz9mlMGkyZBssM9Q aaCESMAZrWfWGr3HuFuuq9nyT6Phh0D86T5liSGvfcyzC7jdhl04mwDELmQK7ir9 +uka4XCXERXBdj+cjVaObAxm7dO07SpqvsYSbX4JcnMmoRU0n0zqi8y5M/EJhv9d VcnocTWcjSzrAI/lSkiHtZ8CAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAuoKWTaKljUVSnzvFAob/wdcOKOPW2ka5rCGIjW4QM8vhPmqDd2dHa5jE B8ikhmoVtWBq77Xl4fksc4VCrQk9HjBLBgNVHSMERDBCgECGIE9Tmf6ydIaW6yoF tWKPy+hCnJszIl5IYIoTwzwp4cLWaxMP1jKTFaz5+ZZYWn0L03ZhqtJFGnF9nHII bzRLMEsGA1UdEQREMEKCQCouYXBwcy40YzNlZTkyYy1kMzFiLTQwY2EtYWFkYi05 YmU0NWMxZDQ4NDgucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBACkcjMY5PCMBtpHWqho0qO/Z8a1sH9Neieg308aE72bEQaPUle95TOpxwpO0 1Fyjp3h5/krYTsRmS7GX9xmlcgoCwuNfj8CrSN/+K+pTRdr/4wbiaAKbUkgqDjoy dQL1QAxLSBgcrB6CY5jRTuUDS+t8zWcAryS42Pr+8YQSCCM2g7BtHqkW+EST8wcN XpzGbqNiawXj2RuMRoB9Py4cRKjzT+z6kXBx6LEyb3H6OCW4JtLvpBHv4epiKqvm NHmB1iH+rSxlVUjFFbIsdEZ5a8uf6qq0Et3sks2KdQarativeG3CTNzpAz7RlVa9 BmsTJrLXMzMYFAlqrIv1/soSZcg= -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: kubernetes.io/description: Contains a CA bundle that can be used to verify the kube-apiserver when using internal endpoints such as the internal service IP or kubernetes.default.svc. No other usage is guaranteed across distributions of Kubernetes clusters. creationTimestamp: "2026-07-01T22:59:27Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:ca.crt: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} manager: kube-controller-manager operation: Update time: "2026-07-01T22:59:27Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "3906" uid: b1164ca7-e428-40b3-bb25-b3635d6ec773 - apiVersion: v1 data: daemon-config.json: | { "cniVersion": "0.3.1", "chrootDir": "/hostroot", "logToStderr": true, "logLevel": "verbose", "binDir": "/var/lib/cni/bin", "perNodeCertificate": { "enabled": true, "bootstrapKubeconfig": "/var/lib/kubelet/kubeconfig", "certDir": "/etc/cni/multus/certs", "certDuration": "24h" }, "cniConfigDir": "/host/etc/cni/net.d", "multusConfigFile": "auto", "multusAutoconfigDir": "/host/run/multus/cni/net.d", "namespaceIsolation": true, "globalNamespaces": "default,openshift-multus,openshift-sriov-network-operator,openshift-cnv", "readinessindicatorfile": "/host/run/multus/cni/net.d/10-ovn-kubernetes.conf", "daemonSocketDir": "/run/multus/socket", "socketDir": "/host/run/multus/socket", "auxiliaryCNIChainName": "vendor-cni-chain" } kind: ConfigMap metadata: creationTimestamp: "2026-07-01T22:59:16Z" labels: app: multus tier: node managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:daemon-config.json: {} f:metadata: f:labels: f:app: {} f:tier: {} f:ownerReferences: k:{"uid":"a1c67204-9ce1-41c3-8d9e-486a6494e6db"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-01T22:59:16Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a1c67204-9ce1-41c3-8d9e-486a6494e6db resourceVersion: "2783" uid: 42b6fba5-5417-455a-89dc-afcc5ccba9a5 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIGUzS3uGBByUwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4Mjk0NzEwMzAe Fw0yNjA3MDEyMzA1MDNaFw0yODA4MjkyMzA1MDRaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODI5NDcxMDMwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDae5nP7oxaEWJCHTG2jke94WsfZ1PI4DlN 5BQA3QNNaDa0kU94GanSY64AQpE+ylXMS1yJQbor5aJ34Xmrd3B81XbyuRx426bq bNKzI4jG36udV1zWBHo3WSRn+ZNw+gGVStjSUWNtH6C0MXTX1V7g6nReEnldiSXR cubqUmOD+SohOqm8Vr/ARJakhfTy48BbBUw2APFutkR+UMixLELIOxsB3F4dS6rd 39bMUC+Yy6nGo0MTU3RpeSC4H9b8WICgNCOo8jq2bPfAsAsC/NTalNqnIg6Edg2d gCb3GjCT35IHgd0W4ySsibVqDht/Y95u9zYp6FS55mq6BIoXZACFAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRAsjr/ 0uMj5nA+y9FRZO+VUyd4cDAfBgNVHSMEGDAWgBRAsjr/0uMj5nA+y9FRZO+VUyd4 cDANBgkqhkiG9w0BAQsFAAOCAQEAiKcxrDa/4n7jsYxhayRK6W0VPIY3E/laX5t+ 2Pwufa2lTW7iu0kXnNeq6OnmYy9SQhiuMH45xSp6BiC4MC3feq7HOx8vtxUChXW0 KkJOZClp75gPmCBsUNoDDGBB7t0kz8NCD8+5UbuJwy70w49r7x8MsBrZ8EvgzUnq nc7WoYzyMjj+MC8VtU6YWHFqg76AJI8kSDZVJafgYOj54i8X3c5XEXlEHhkO5+cK LY7tnfkWl6lbwQwj+q23g5QVMVNs9KlFP4c0f7xS/oZrl4GXfd8cNLeGnUreR8pb BpwpcvsGofZpthdxEhxBhRLgSbM3d2x/3/bTyAeXvj78oTi04A== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-01T23:10:37Z" labels: opendatahub.io/managed: "true" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:cabundle.crt: {} f:metadata: f:labels: .: {} f:opendatahub.io/managed: {} manager: manager operation: Update time: "2026-07-01T23:10:37Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "14961" uid: 4fddcefd-3805-4b67-8143-2cd92c379e30 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIGUzS3uGBByUwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4Mjk0NzEwMzAe Fw0yNjA3MDEyMzA1MDNaFw0yODA4MjkyMzA1MDRaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODI5NDcxMDMwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDae5nP7oxaEWJCHTG2jke94WsfZ1PI4DlN 5BQA3QNNaDa0kU94GanSY64AQpE+ylXMS1yJQbor5aJ34Xmrd3B81XbyuRx426bq bNKzI4jG36udV1zWBHo3WSRn+ZNw+gGVStjSUWNtH6C0MXTX1V7g6nReEnldiSXR cubqUmOD+SohOqm8Vr/ARJakhfTy48BbBUw2APFutkR+UMixLELIOxsB3F4dS6rd 39bMUC+Yy6nGo0MTU3RpeSC4H9b8WICgNCOo8jq2bPfAsAsC/NTalNqnIg6Edg2d gCb3GjCT35IHgd0W4ySsibVqDht/Y95u9zYp6FS55mq6BIoXZACFAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRAsjr/ 0uMj5nA+y9FRZO+VUyd4cDAfBgNVHSMEGDAWgBRAsjr/0uMj5nA+y9FRZO+VUyd4 cDANBgkqhkiG9w0BAQsFAAOCAQEAiKcxrDa/4n7jsYxhayRK6W0VPIY3E/laX5t+ 2Pwufa2lTW7iu0kXnNeq6OnmYy9SQhiuMH45xSp6BiC4MC3feq7HOx8vtxUChXW0 KkJOZClp75gPmCBsUNoDDGBB7t0kz8NCD8+5UbuJwy70w49r7x8MsBrZ8EvgzUnq nc7WoYzyMjj+MC8VtU6YWHFqg76AJI8kSDZVJafgYOj54i8X3c5XEXlEHhkO5+cK LY7tnfkWl6lbwQwj+q23g5QVMVNs9KlFP4c0f7xS/oZrl4GXfd8cNLeGnUreR8pb BpwpcvsGofZpthdxEhxBhRLgSbM3d2x/3/bTyAeXvj78oTi04A== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-01T22:59:27Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: {} f:metadata: f:annotations: .: {} f:service.beta.openshift.io/inject-cabundle: {} manager: kube-controller-manager operation: Update time: "2026-07-01T22:59:27Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-01T23:05:15Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "7904" uid: 106b8211-8503-4f87-a906-2d8b0725d9be - apiVersion: v1 data: whereabouts.conf: | { "datastore": "kubernetes", "kubernetes": { "kubeconfig": "/etc/kubernetes/cni/net.d/whereabouts.d/whereabouts.kubeconfig" }, "reconciler_cron_expression": "30 4 * * *", "log_level": "verbose", "configuration_path": "/etc/kubernetes/cni/net.d/whereabouts.d" } kind: ConfigMap metadata: creationTimestamp: "2026-07-01T22:59:16Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"a1c67204-9ce1-41c3-8d9e-486a6494e6db"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-01T22:59:16Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a1c67204-9ce1-41c3-8d9e-486a6494e6db resourceVersion: "2761" uid: 3e5b2192-5c82-4939-b8ef-b6ee161b6026 kind: ConfigMapList metadata: resourceVersion: "27304"