diff --git a/api/json-schema/schema.json b/api/json-schema/schema.json
index e3601b73a4..66b8540090 100644
--- a/api/json-schema/schema.json
+++ b/api/json-schema/schema.json
@@ -17600,6 +17600,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -17717,6 +17726,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -18002,6 +18020,15 @@
"format": "int32",
"type": "integer"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -18766,6 +18793,15 @@
"format": "int32",
"type": "integer"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -18906,6 +18942,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -19165,6 +19210,15 @@
"format": "int32",
"type": "integer"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -19321,6 +19375,15 @@
"format": "int32",
"type": "integer"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -19946,6 +20009,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -20374,6 +20446,15 @@
"format": "int32",
"type": "integer"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -20545,6 +20626,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "type": "array",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index 55540a4b09..a7eff01898 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -17605,6 +17605,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -17725,6 +17734,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -18007,6 +18025,15 @@
"type": "integer",
"format": "int32"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -18762,6 +18789,15 @@
"type": "integer",
"format": "int32"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -18902,6 +18938,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -19161,6 +19206,15 @@
"type": "integer",
"format": "int32"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -19317,6 +19371,15 @@
"type": "integer",
"format": "int32"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -19933,6 +19996,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -20356,6 +20428,15 @@
"type": "integer",
"format": "int32"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
@@ -20523,6 +20604,15 @@
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
+ "resourceClaims": {
+ "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim"
+ },
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys"
+ },
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
diff --git a/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml b/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml
index c09fb798f4..acc540cd10 100644
--- a/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml
@@ -1044,6 +1044,22 @@ spec:
default: 3
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -2172,6 +2188,22 @@ spec:
default: 3
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
diff --git a/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml b/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml
index 7967f0362d..a26426074f 100644
--- a/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml
@@ -1428,6 +1428,22 @@ spec:
replicas:
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -2206,6 +2222,22 @@ spec:
default: 1
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
diff --git a/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml b/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml
index 00c4a0b008..070ba0b033 100644
--- a/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml
@@ -1904,6 +1904,22 @@ spec:
replicas:
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -2617,6 +2633,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -3508,6 +3540,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -4396,6 +4444,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -5935,6 +5999,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
diff --git a/config/base/crds/full/numaflow.numaproj.io_vertices.yaml b/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
index cd7e10a99f..d1a77b9375 100644
--- a/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
@@ -1583,6 +1583,22 @@ spec:
default: 1
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
diff --git a/config/install.yaml b/config/install.yaml
index cf347b8bcf..575bac0cc3 100644
--- a/config/install.yaml
+++ b/config/install.yaml
@@ -1043,6 +1043,22 @@ spec:
default: 3
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -2171,6 +2187,22 @@ spec:
default: 3
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -4040,6 +4072,22 @@ spec:
replicas:
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -4818,6 +4866,22 @@ spec:
default: 1
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
@@ -10064,6 +10128,22 @@ spec:
replicas:
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -10777,6 +10857,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -11668,6 +11764,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -12556,6 +12668,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -14095,6 +14223,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
@@ -19520,6 +19664,22 @@ spec:
default: 1
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
diff --git a/config/namespace-install.yaml b/config/namespace-install.yaml
index be25fca8be..3b3737b3a9 100644
--- a/config/namespace-install.yaml
+++ b/config/namespace-install.yaml
@@ -1043,6 +1043,22 @@ spec:
default: 3
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -2171,6 +2187,22 @@ spec:
default: 3
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -4040,6 +4072,22 @@ spec:
replicas:
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -4818,6 +4866,22 @@ spec:
default: 1
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
@@ -10064,6 +10128,22 @@ spec:
replicas:
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -10777,6 +10857,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -11668,6 +11764,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -12556,6 +12668,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
securityContext:
@@ -14095,6 +14223,22 @@ spec:
type: integer
priorityClassName:
type: string
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
@@ -19520,6 +19664,22 @@ spec:
default: 1
format: int32
type: integer
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ source:
+ properties:
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ type: object
+ required:
+ - name
+ type: object
+ type: array
runtimeClassName:
type: string
scale:
diff --git a/docs/APIs.md b/docs/APIs.md
index a5c42c14f7..46a865e83b 100644
--- a/docs/APIs.md
+++ b/docs/APIs.md
@@ -369,6 +369,29 @@ merged to the generated DNS configuration based on DNSPolicy.
+
+
+
+
+resourceClaims
+
+\[\]Kubernetes core/v1.PodResourceClaim
+ |
+
+
+
+(Optional)
+
+
+ResourceClaims defines which ResourceClaims must be allocated and
+reserved before the Pod is allowed to start. The resources will be made
+available to those containers which consume them by name.
+
+
+ |
+
+
+
diff --git a/docs/user-guide/reference/configuration/container-resources.md b/docs/user-guide/reference/configuration/container-resources.md
index 31e3e410d4..09609be34f 100644
--- a/docs/user-guide/reference/configuration/container-resources.md
+++ b/docs/user-guide/reference/configuration/container-resources.md
@@ -24,6 +24,8 @@ spec:
requests:
cpu: "1"
memory: 4Gi
+ claims:
+ - name: my-claim
```
## UDF Container
@@ -47,6 +49,8 @@ spec:
requests:
cpu: "1"
memory: 4Gi
+ claims:
+ - name: my-claim
```
## UDSource Container
@@ -71,6 +75,8 @@ spec:
requests:
cpu: "1"
memory: 4Gi
+ claims:
+ - name: my-claim
```
## Source Transformer Container
@@ -95,6 +101,8 @@ spec:
requests:
cpu: "1"
memory: 4Gi
+ claims:
+ - name: my-claim
```
## UDSink Container
@@ -109,6 +117,9 @@ metadata:
spec:
vertices:
- name: my-vertex
+ resourceClaims:
+ - name: my-claim
+ xxx
sink:
udsink:
container:
@@ -119,6 +130,8 @@ spec:
requests:
cpu: "1"
memory: 4Gi
+ claims:
+ - name: my-claim
```
## Init Container
@@ -136,11 +149,11 @@ spec:
initContainerTemplate:
resources:
limits:
- cpu: "3"
- memory: 6Gi
+ cpu: "2"
+ memory: 2Gi
requests:
cpu: "1"
- memory: 4Gi
+ memory: 1Gi
```
Container resources for [user init-containers](init-containers.md) are instead specified at `.spec.vertices[*].initContainers[*].resources`.
diff --git a/docs/user-guide/reference/configuration/pipeline-customization.md b/docs/user-guide/reference/configuration/pipeline-customization.md
index 55e9e2c466..d332fc8e6f 100644
--- a/docs/user-guide/reference/configuration/pipeline-customization.md
+++ b/docs/user-guide/reference/configuration/pipeline-customization.md
@@ -39,6 +39,9 @@ spec:
priorityClassName: my-priority-class-name
priority: 50
serviceAccountName: my-service-account
+ resourceClaims:
+ - name: my-claim
+ xxx
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
@@ -61,6 +64,8 @@ spec:
resources:
limits:
memory: 500Mi
+ claims:
+ - name: my-claim
initContainerTemplate:
env:
- name: MY_ENV_NAME
@@ -137,7 +142,6 @@ spec:
my-label-name: my-label-value
annotations:
my-annotation-name: my-annotation-value
- # Pod spec
nodeSelector:
my-node-label-name: my-node-label-value
tolerations:
@@ -210,6 +214,9 @@ spec:
priorityClassName: my-priority-class-name
priority: 50
serviceAccountName: my-service-account
+ resourceClaims:
+ - name: my-claim
+ xxx
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
@@ -228,6 +235,8 @@ spec:
resources:
limits:
memory: 500Mi
+ claims:
+ - name: my-claim
initContainerTemplate:
env:
- name: MY_ENV_NAME
diff --git a/docs/user-guide/reference/configuration/pod-specifications.md b/docs/user-guide/reference/configuration/pod-specifications.md
new file mode 100644
index 0000000000..0587ca169a
--- /dev/null
+++ b/docs/user-guide/reference/configuration/pod-specifications.md
@@ -0,0 +1,37 @@
+# Pod Specifications
+
+Most of the Kunernetes Pod specification fields are supported in the spec of `Pipeline`, `MonoVertex` and `InterStepBufferService`. Those fields include:
+
+- `nodeSelector`
+- `tolerations`
+- `securityContext`
+- `imagePullSecrets`
+- `priorityClassName`
+- `priority`
+- `affinity`
+- `serviceAccountName`
+- `runtimeClassName`
+- `automountServiceAccountToken`
+- `dnsPolicy`
+- `dnsConfig`
+- `resourceClaims`
+
+All the fields above are optional, click [here](../../../APIs.md#numaflow.numaproj.io/v1alpha1.AbstractPodTemplate) to see full list of supported fields.
+
+These fields can be specified in the `Pipeline` spec under:
+
+- `spec.vertices[*]`
+- `spec.templates.daemon`
+- `spec.templates.job`
+- `spec.templates.sideInputsManager`
+- `spec.templates.vertex`
+
+Or in the `MonoVertex` spec under:
+
+- `spec`
+- `spec.daemonTemplate`
+
+Or in `InterStepBufferService` spec at:
+
+- `spec.jetstream`
+- `spec.redis.native`
diff --git a/mkdocs.yml b/mkdocs.yml
index 43cd0a7950..7c9161d480 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -93,6 +93,7 @@ nav:
- user-guide/reference/multi-partition.md
- user-guide/reference/side-inputs.md
- Configuration:
+ - user-guide/reference/configuration/pod-specifications.md
- user-guide/reference/configuration/container-resources.md
- user-guide/reference/configuration/volumes.md
- user-guide/reference/configuration/environment-variables.md
diff --git a/pkg/apis/numaflow/v1alpha1/generated.pb.go b/pkg/apis/numaflow/v1alpha1/generated.pb.go
index b152ea965c..d905171bec 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.pb.go
+++ b/pkg/apis/numaflow/v1alpha1/generated.pb.go
@@ -2704,472 +2704,474 @@ func init() {
}
var fileDescriptor_9d0d1b17d3865563 = []byte{
- // 7439 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x6c, 0x1d, 0xd7,
- 0x75, 0xb6, 0xcf, 0x8d, 0x3c, 0x67, 0x1d, 0x92, 0xa2, 0xb6, 0x64, 0x99, 0x92, 0x65, 0x51, 0x19,
- 0xff, 0xf6, 0xaf, 0xfc, 0x49, 0xc8, 0xdf, 0xfc, 0x7d, 0x4b, 0xfe, 0x24, 0x36, 0x0f, 0x29, 0x52,
- 0x94, 0x48, 0x89, 0x59, 0x87, 0x94, 0x9d, 0xf8, 0x4f, 0xfc, 0x0f, 0x67, 0x36, 0x0f, 0xc7, 0x9c,
- 0x33, 0x73, 0x3c, 0x33, 0x87, 0x12, 0x9d, 0x16, 0xb9, 0x3d, 0xd8, 0x45, 0x5b, 0xb4, 0xc8, 0x53,
- 0x80, 0x22, 0x2d, 0x5a, 0x14, 0xc8, 0x43, 0x90, 0x3e, 0x14, 0x70, 0x1f, 0x0a, 0xf4, 0x8a, 0xa2,
- 0x4d, 0x8b, 0x5e, 0xf2, 0x50, 0xa0, 0x2e, 0x0a, 0x10, 0x0d, 0x8b, 0x3e, 0xb4, 0x40, 0x83, 0xa0,
- 0x01, 0x9a, 0x44, 0x08, 0x90, 0x62, 0xdf, 0xe6, 0x76, 0xe6, 0x48, 0xe4, 0x19, 0x52, 0x96, 0x5b,
- 0xbf, 0xcd, 0xec, 0xbd, 0xf6, 0xb7, 0xf6, 0xac, 0x7d, 0x5b, 0x7b, 0xed, 0xb5, 0xd7, 0xc0, 0x62,
- 0xcb, 0x0a, 0xb6, 0xba, 0x1b, 0x53, 0x86, 0xdb, 0x9e, 0x76, 0xba, 0x6d, 0xbd, 0xe3, 0xb9, 0xaf,
- 0xf1, 0x87, 0x4d, 0xdb, 0xbd, 0x35, 0xdd, 0xd9, 0x6e, 0x4d, 0xeb, 0x1d, 0xcb, 0x8f, 0x52, 0x76,
- 0x9e, 0xd2, 0xed, 0xce, 0x96, 0xfe, 0xd4, 0x74, 0x8b, 0x3a, 0xd4, 0xd3, 0x03, 0x6a, 0x4e, 0x75,
- 0x3c, 0x37, 0x70, 0xc9, 0x73, 0x11, 0xd0, 0x94, 0x02, 0x9a, 0x52, 0xc5, 0xa6, 0x3a, 0xdb, 0xad,
- 0x29, 0x06, 0x14, 0xa5, 0x28, 0xa0, 0x73, 0x1f, 0x89, 0xd5, 0xa0, 0xe5, 0xb6, 0xdc, 0x69, 0x8e,
- 0xb7, 0xd1, 0xdd, 0xe4, 0x6f, 0xfc, 0x85, 0x3f, 0x09, 0x3e, 0xe7, 0xb4, 0xed, 0xe7, 0xfd, 0x29,
- 0xcb, 0x65, 0xd5, 0x9a, 0x36, 0x5c, 0x8f, 0x4e, 0xef, 0xf4, 0xd4, 0xe5, 0xdc, 0xd3, 0x11, 0x4d,
- 0x5b, 0x37, 0xb6, 0x2c, 0x87, 0x7a, 0xbb, 0xea, 0x5b, 0xa6, 0x3d, 0xea, 0xbb, 0x5d, 0xcf, 0xa0,
- 0x87, 0x2a, 0xe5, 0x4f, 0xb7, 0x69, 0xa0, 0x67, 0xf1, 0x9a, 0xee, 0x57, 0xca, 0xeb, 0x3a, 0x81,
- 0xd5, 0xee, 0x65, 0xf3, 0xec, 0xbd, 0x0a, 0xf8, 0xc6, 0x16, 0x6d, 0xeb, 0xe9, 0x72, 0xda, 0x3f,
- 0xd4, 0xe0, 0xd4, 0xec, 0x86, 0x1f, 0x78, 0xba, 0x11, 0xac, 0xba, 0xe6, 0x1a, 0x6d, 0x77, 0x6c,
- 0x3d, 0xa0, 0x64, 0x1b, 0xaa, 0xac, 0x6e, 0xa6, 0x1e, 0xe8, 0x13, 0x85, 0x8b, 0x85, 0x4b, 0xf5,
- 0x99, 0xd9, 0xa9, 0x01, 0xdb, 0x62, 0x6a, 0x45, 0x02, 0x35, 0x46, 0xf6, 0xf7, 0x26, 0xab, 0xea,
- 0x0d, 0x43, 0x06, 0xe4, 0x6b, 0x05, 0x18, 0x71, 0x5c, 0x93, 0x36, 0xa9, 0x4d, 0x8d, 0xc0, 0xf5,
- 0x26, 0x8a, 0x17, 0x4b, 0x97, 0xea, 0x33, 0x9f, 0x1b, 0x98, 0x63, 0xc6, 0x17, 0x4d, 0x5d, 0x8f,
- 0x31, 0xb8, 0xec, 0x04, 0xde, 0x6e, 0xe3, 0xf4, 0xb7, 0xf7, 0x26, 0x1f, 0xda, 0xdf, 0x9b, 0x1c,
- 0x89, 0x67, 0x61, 0xa2, 0x26, 0x64, 0x1d, 0xea, 0x81, 0x6b, 0x33, 0x91, 0x59, 0xae, 0xe3, 0x4f,
- 0x94, 0x78, 0xc5, 0x2e, 0x4c, 0x09, 0x69, 0x33, 0xf6, 0x53, 0xac, 0xbb, 0x4c, 0xed, 0x3c, 0x35,
- 0xb5, 0x16, 0x92, 0x35, 0x4e, 0x49, 0xe0, 0x7a, 0x94, 0xe6, 0x63, 0x1c, 0x87, 0x50, 0x38, 0xe1,
- 0x53, 0xa3, 0xeb, 0x59, 0xc1, 0xee, 0x9c, 0xeb, 0x04, 0xf4, 0x76, 0x30, 0x51, 0xe6, 0x52, 0x7e,
- 0x32, 0x0b, 0x7a, 0xd5, 0x35, 0x9b, 0x49, 0xea, 0xc6, 0xa9, 0xfd, 0xbd, 0xc9, 0x13, 0xa9, 0x44,
- 0x4c, 0x63, 0x12, 0x07, 0xc6, 0xad, 0xb6, 0xde, 0xa2, 0xab, 0x5d, 0xdb, 0x6e, 0x52, 0xc3, 0xa3,
- 0x81, 0x3f, 0x51, 0xe1, 0x9f, 0x70, 0x29, 0x8b, 0xcf, 0xb2, 0x6b, 0xe8, 0xf6, 0x8d, 0x8d, 0xd7,
- 0xa8, 0x11, 0x20, 0xdd, 0xa4, 0x1e, 0x75, 0x0c, 0xda, 0x98, 0x90, 0x1f, 0x33, 0xbe, 0x94, 0x42,
- 0xc2, 0x1e, 0x6c, 0xb2, 0x08, 0x27, 0x3b, 0x9e, 0xe5, 0xf2, 0x2a, 0xd8, 0xba, 0xef, 0x5f, 0xd7,
- 0xdb, 0x74, 0x62, 0xe8, 0x62, 0xe1, 0x52, 0xad, 0x71, 0x56, 0xc2, 0x9c, 0x5c, 0x4d, 0x13, 0x60,
- 0x6f, 0x19, 0x72, 0x09, 0xaa, 0x2a, 0x71, 0x62, 0xf8, 0x62, 0xe1, 0x52, 0x45, 0xf4, 0x1d, 0x55,
- 0x16, 0xc3, 0x5c, 0xb2, 0x00, 0x55, 0x7d, 0x73, 0xd3, 0x72, 0x18, 0x65, 0x95, 0x8b, 0xf0, 0x7c,
- 0xd6, 0xa7, 0xcd, 0x4a, 0x1a, 0x81, 0xa3, 0xde, 0x30, 0x2c, 0x4b, 0xae, 0x02, 0xf1, 0xa9, 0xb7,
- 0x63, 0x19, 0x74, 0xd6, 0x30, 0xdc, 0xae, 0x13, 0xf0, 0xba, 0xd7, 0x78, 0xdd, 0xcf, 0xc9, 0xba,
- 0x93, 0x66, 0x0f, 0x05, 0x66, 0x94, 0x22, 0x2f, 0xc2, 0xb8, 0x1c, 0x76, 0x91, 0x14, 0x80, 0x23,
- 0x9d, 0x66, 0x82, 0xc4, 0x54, 0x1e, 0xf6, 0x50, 0x13, 0x13, 0xce, 0xeb, 0xdd, 0xc0, 0x6d, 0x33,
- 0xc8, 0x24, 0xd3, 0x35, 0x77, 0x9b, 0x3a, 0x13, 0xf5, 0x8b, 0x85, 0x4b, 0xd5, 0xc6, 0xc5, 0xfd,
- 0xbd, 0xc9, 0xf3, 0xb3, 0x77, 0xa1, 0xc3, 0xbb, 0xa2, 0x90, 0x1b, 0x50, 0x33, 0x1d, 0x7f, 0xd5,
- 0xb5, 0x2d, 0x63, 0x77, 0x62, 0x84, 0x57, 0xf0, 0x29, 0xf9, 0xa9, 0xb5, 0xf9, 0xeb, 0x4d, 0x91,
- 0x71, 0x67, 0x6f, 0xf2, 0x7c, 0xef, 0xec, 0x38, 0x15, 0xe6, 0x63, 0x84, 0x41, 0x56, 0x38, 0xe0,
- 0x9c, 0xeb, 0x6c, 0x5a, 0xad, 0x89, 0x51, 0xde, 0x1a, 0x17, 0xfb, 0x74, 0xe8, 0xf9, 0xeb, 0x4d,
- 0x41, 0xd7, 0x18, 0x95, 0xec, 0xc4, 0x2b, 0x46, 0x08, 0xe7, 0x5e, 0x80, 0x93, 0x3d, 0xa3, 0x96,
- 0x8c, 0x43, 0x69, 0x9b, 0xee, 0xf2, 0x49, 0xa9, 0x86, 0xec, 0x91, 0x9c, 0x86, 0xca, 0x8e, 0x6e,
- 0x77, 0xe9, 0x44, 0x91, 0xa7, 0x89, 0x97, 0x8f, 0x15, 0x9f, 0x2f, 0x68, 0xbf, 0x51, 0x82, 0x11,
- 0x35, 0x17, 0x34, 0x2d, 0x67, 0x9b, 0xbc, 0x04, 0x25, 0xdb, 0x6d, 0xc9, 0x19, 0xed, 0xe3, 0x03,
- 0xcf, 0x2f, 0xcb, 0x6e, 0xab, 0x31, 0xbc, 0xbf, 0x37, 0x59, 0x5a, 0x76, 0x5b, 0xc8, 0x10, 0x89,
- 0x01, 0x95, 0x6d, 0x7d, 0x73, 0x5b, 0xe7, 0x75, 0xa8, 0xcf, 0x34, 0x06, 0x86, 0xbe, 0xc6, 0x50,
- 0x58, 0x5d, 0x1b, 0xb5, 0xfd, 0xbd, 0xc9, 0x0a, 0x7f, 0x45, 0x81, 0x4d, 0x5c, 0xa8, 0x6d, 0xd8,
- 0xba, 0xb1, 0xbd, 0xe5, 0xda, 0x74, 0xa2, 0x94, 0x93, 0x51, 0x43, 0x21, 0x89, 0x06, 0x08, 0x5f,
- 0x31, 0xe2, 0x41, 0x0c, 0x18, 0xea, 0x9a, 0xbe, 0xe5, 0x6c, 0xcb, 0xd9, 0xe9, 0x85, 0x81, 0xb9,
- 0xad, 0xcf, 0xf3, 0x6f, 0x82, 0xfd, 0xbd, 0xc9, 0x21, 0xf1, 0x8c, 0x12, 0x5a, 0xfb, 0x5e, 0x1d,
- 0xc6, 0x54, 0x23, 0xdd, 0xa4, 0x5e, 0x40, 0x6f, 0x93, 0x8b, 0x50, 0x76, 0xd8, 0xa0, 0xe1, 0x8d,
- 0xdc, 0x18, 0x91, 0x7d, 0xb2, 0xcc, 0x07, 0x0b, 0xcf, 0x61, 0x35, 0x13, 0x0b, 0xae, 0x14, 0xf8,
- 0xe0, 0x35, 0x6b, 0x72, 0x18, 0x51, 0x33, 0xf1, 0x8c, 0x12, 0x9a, 0xbc, 0x02, 0x65, 0xfe, 0xf1,
- 0x42, 0xd4, 0x9f, 0x18, 0x9c, 0x05, 0xfb, 0xf4, 0x2a, 0xfb, 0x02, 0xfe, 0xe1, 0x1c, 0x94, 0x75,
- 0xc5, 0xae, 0xb9, 0x29, 0x05, 0xfb, 0xf1, 0x1c, 0x82, 0x5d, 0x10, 0x5d, 0x71, 0x7d, 0x7e, 0x01,
- 0x19, 0x22, 0xf9, 0xa5, 0x02, 0x9c, 0x34, 0x5c, 0x27, 0xd0, 0x99, 0x12, 0xa0, 0x96, 0xbf, 0x89,
- 0x0a, 0xe7, 0x73, 0x75, 0x60, 0x3e, 0x73, 0x69, 0xc4, 0xc6, 0xc3, 0x6c, 0x36, 0xef, 0x49, 0xc6,
- 0x5e, 0xde, 0xe4, 0x57, 0x0a, 0xf0, 0x30, 0x9b, 0x65, 0x7b, 0x88, 0xf9, 0xda, 0x70, 0xb4, 0xb5,
- 0x3a, 0xbb, 0xbf, 0x37, 0xf9, 0xf0, 0x52, 0x16, 0x33, 0xcc, 0xae, 0x03, 0xab, 0xdd, 0x29, 0xbd,
- 0x57, 0x61, 0xe0, 0xeb, 0x4e, 0x7d, 0x66, 0xf9, 0x28, 0x95, 0x90, 0xc6, 0xa3, 0xb2, 0x2b, 0x67,
- 0xe9, 0x5c, 0x98, 0x55, 0x0b, 0x72, 0x19, 0x86, 0x77, 0x5c, 0xbb, 0xdb, 0xa6, 0xfe, 0x44, 0x95,
- 0xaf, 0xdc, 0xe7, 0xb2, 0x26, 0xd4, 0x9b, 0x9c, 0xa4, 0x71, 0x42, 0xc2, 0x0f, 0x8b, 0x77, 0x1f,
- 0x55, 0x59, 0x62, 0xc1, 0x90, 0x6d, 0xb5, 0xad, 0xc0, 0xe7, 0x4b, 0x5a, 0x7d, 0xe6, 0xf2, 0xc0,
- 0x9f, 0x25, 0x86, 0xe8, 0x32, 0x07, 0x13, 0xa3, 0x46, 0x3c, 0xa3, 0x64, 0xc0, 0xa6, 0x42, 0xdf,
- 0xd0, 0x6d, 0xb1, 0xe4, 0xd5, 0x67, 0x3e, 0x39, 0xf8, 0xb0, 0x61, 0x28, 0x8d, 0x51, 0xf9, 0x4d,
- 0x15, 0xfe, 0x8a, 0x02, 0x9b, 0x7c, 0x16, 0xc6, 0x12, 0xad, 0xe9, 0x4f, 0xd4, 0xb9, 0x74, 0x1e,
- 0xcb, 0x92, 0x4e, 0x48, 0xd5, 0x38, 0x23, 0xc1, 0xc6, 0x12, 0x3d, 0xc4, 0xc7, 0x14, 0x18, 0xb9,
- 0x06, 0x55, 0xdf, 0x32, 0xa9, 0xa1, 0x7b, 0xfe, 0xc4, 0xc8, 0x41, 0x80, 0xc7, 0x25, 0x70, 0xb5,
- 0x29, 0x8b, 0x61, 0x08, 0x40, 0xa6, 0x00, 0x3a, 0xba, 0x17, 0x58, 0x42, 0x85, 0x1c, 0xe5, 0xea,
- 0xcc, 0xd8, 0xfe, 0xde, 0x24, 0xac, 0x86, 0xa9, 0x18, 0xa3, 0x60, 0xf4, 0xac, 0xec, 0x92, 0xd3,
- 0xe9, 0x06, 0xfe, 0xc4, 0xd8, 0xc5, 0xd2, 0xa5, 0x9a, 0xa0, 0x6f, 0x86, 0xa9, 0x18, 0xa3, 0x20,
- 0xdf, 0x2a, 0xc0, 0xa3, 0xd1, 0x6b, 0xef, 0x20, 0x3b, 0x71, 0xe4, 0x83, 0x6c, 0x72, 0x7f, 0x6f,
- 0xf2, 0xd1, 0x66, 0x7f, 0x96, 0x78, 0xb7, 0xfa, 0x68, 0x2f, 0xc1, 0xe8, 0x6c, 0x37, 0xd8, 0x72,
- 0x3d, 0xeb, 0x0d, 0xae, 0x0e, 0x93, 0x05, 0xa8, 0x04, 0x5c, 0xad, 0x11, 0xeb, 0xf2, 0x13, 0x59,
- 0xa2, 0x16, 0x2a, 0xe6, 0x35, 0xba, 0xab, 0xb4, 0x01, 0xb1, 0x3e, 0x0a, 0x35, 0x47, 0x14, 0xd7,
- 0x7e, 0xbd, 0x00, 0xb5, 0x86, 0xee, 0x5b, 0x06, 0x83, 0x27, 0x73, 0x50, 0xee, 0xfa, 0xd4, 0x3b,
- 0x1c, 0x28, 0x9f, 0xa5, 0xd7, 0x7d, 0xea, 0x21, 0x2f, 0x4c, 0x6e, 0x40, 0xb5, 0xa3, 0xfb, 0xfe,
- 0x2d, 0xd7, 0x33, 0xe5, 0x4a, 0x73, 0x40, 0x20, 0xa1, 0xaf, 0xca, 0xa2, 0x18, 0x82, 0x68, 0x75,
- 0x88, 0x96, 0x5a, 0xed, 0x07, 0x05, 0x38, 0xd5, 0xe8, 0x6e, 0x6e, 0x52, 0x4f, 0xaa, 0x67, 0x42,
- 0xf1, 0x21, 0x14, 0x2a, 0x1e, 0x35, 0x2d, 0x5f, 0xd6, 0x7d, 0x7e, 0xe0, 0xa6, 0x43, 0x86, 0x22,
- 0xf5, 0x2c, 0x2e, 0x2f, 0x9e, 0x80, 0x02, 0x9d, 0x74, 0xa1, 0xf6, 0x1a, 0x0d, 0xfc, 0xc0, 0xa3,
- 0x7a, 0x5b, 0x7e, 0xdd, 0x95, 0x81, 0x59, 0x5d, 0xa5, 0x41, 0x93, 0x23, 0xc5, 0xd5, 0xba, 0x30,
- 0x11, 0x23, 0x4e, 0xda, 0x1f, 0x55, 0x60, 0x64, 0xce, 0x6d, 0x6f, 0x58, 0x0e, 0x35, 0x2f, 0x9b,
- 0x2d, 0x4a, 0x5e, 0x85, 0x32, 0x35, 0x5b, 0x54, 0x7e, 0xed, 0xe0, 0xeb, 0x2c, 0x03, 0x8b, 0xb4,
- 0x05, 0xf6, 0x86, 0x1c, 0x98, 0x2c, 0xc3, 0xd8, 0xa6, 0xe7, 0xb6, 0xc5, 0xd4, 0xb5, 0xb6, 0xdb,
- 0x91, 0xaa, 0x62, 0xe3, 0x7f, 0xa8, 0xe9, 0x60, 0x21, 0x91, 0x7b, 0x67, 0x6f, 0x12, 0xa2, 0x37,
- 0x4c, 0x95, 0x25, 0x2f, 0xc3, 0x44, 0x94, 0x12, 0x8e, 0xe1, 0x39, 0xa6, 0x57, 0x73, 0x55, 0xa1,
- 0xd2, 0x38, 0xbf, 0xbf, 0x37, 0x39, 0xb1, 0xd0, 0x87, 0x06, 0xfb, 0x96, 0x26, 0x6f, 0x16, 0x60,
- 0x3c, 0xca, 0x14, 0xf3, 0xaa, 0xd4, 0x10, 0x8e, 0x68, 0xc2, 0xe6, 0x1b, 0x90, 0x85, 0x14, 0x0b,
- 0xec, 0x61, 0x4a, 0x16, 0x60, 0x24, 0x70, 0x63, 0xf2, 0xaa, 0x70, 0x79, 0x69, 0x6a, 0xc7, 0xbc,
- 0xe6, 0xf6, 0x95, 0x56, 0xa2, 0x1c, 0x41, 0x38, 0xa3, 0xde, 0x53, 0x92, 0x1a, 0xe2, 0x92, 0x3a,
- 0xb7, 0xbf, 0x37, 0x79, 0x66, 0x2d, 0x93, 0x02, 0xfb, 0x94, 0x24, 0x5f, 0x2a, 0xc0, 0x98, 0xca,
- 0x92, 0x32, 0x1a, 0x3e, 0x4a, 0x19, 0x11, 0xd6, 0x23, 0xd6, 0x12, 0x0c, 0x30, 0xc5, 0x50, 0xfb,
- 0x51, 0x19, 0x6a, 0xe1, 0xcc, 0x46, 0x1e, 0x87, 0x0a, 0xdf, 0x0b, 0x4b, 0x85, 0x35, 0x5c, 0xb2,
- 0xf8, 0x96, 0x19, 0x45, 0x1e, 0x79, 0x02, 0x86, 0x0d, 0xb7, 0xdd, 0xd6, 0x1d, 0x93, 0xdb, 0x37,
- 0x6a, 0x8d, 0x3a, 0x5b, 0xa9, 0xe7, 0x44, 0x12, 0xaa, 0x3c, 0x72, 0x1e, 0xca, 0xba, 0xd7, 0x12,
- 0xa6, 0x86, 0x9a, 0x98, 0x8f, 0x66, 0xbd, 0x96, 0x8f, 0x3c, 0x95, 0x7c, 0x14, 0x4a, 0xd4, 0xd9,
- 0x99, 0x28, 0xf7, 0x57, 0x05, 0x2e, 0x3b, 0x3b, 0x37, 0x75, 0xaf, 0x51, 0x97, 0x75, 0x28, 0x5d,
- 0x76, 0x76, 0x90, 0x95, 0x21, 0xcb, 0x30, 0x4c, 0x9d, 0x1d, 0xd6, 0xf6, 0xd2, 0x06, 0xf0, 0x81,
- 0x3e, 0xc5, 0x19, 0x89, 0xd4, 0x8a, 0x43, 0x85, 0x42, 0x26, 0xa3, 0x82, 0x20, 0x9f, 0x86, 0x11,
- 0xa1, 0x5b, 0xac, 0xb0, 0x36, 0xf1, 0x27, 0x86, 0x38, 0xe4, 0x64, 0x7f, 0xe5, 0x84, 0xd3, 0x45,
- 0x36, 0x97, 0x58, 0xa2, 0x8f, 0x09, 0x28, 0xf2, 0x69, 0xa8, 0x29, 0x73, 0x9a, 0x6a, 0xd9, 0x4c,
- 0x73, 0x05, 0x4a, 0x22, 0xa4, 0xaf, 0x77, 0x2d, 0x8f, 0xb6, 0xa9, 0x13, 0xf8, 0x8d, 0x93, 0x6a,
- 0x03, 0xab, 0x72, 0x7d, 0x8c, 0xd0, 0xc8, 0x46, 0xaf, 0xdd, 0x45, 0x18, 0x0d, 0x1e, 0xef, 0x33,
- 0xab, 0x0f, 0x60, 0x74, 0xf9, 0x1c, 0x9c, 0x08, 0x0d, 0x23, 0x72, 0x6f, 0x2d, 0xcc, 0x08, 0x4f,
- 0xb3, 0xe2, 0x4b, 0xc9, 0xac, 0x3b, 0x7b, 0x93, 0x8f, 0x65, 0xec, 0xae, 0x23, 0x02, 0x4c, 0x83,
- 0x69, 0x7f, 0x50, 0x82, 0x5e, 0xb5, 0x3b, 0x29, 0xb4, 0xc2, 0x51, 0x0b, 0x2d, 0xfd, 0x41, 0x62,
- 0xfa, 0x7c, 0x5e, 0x16, 0xcb, 0xff, 0x51, 0x59, 0x0d, 0x53, 0x3a, 0xea, 0x86, 0x79, 0x50, 0xc6,
- 0x8e, 0xf6, 0x56, 0x19, 0xc6, 0xe6, 0x75, 0xda, 0x76, 0x9d, 0x7b, 0x6e, 0x42, 0x0a, 0x0f, 0xc4,
- 0x26, 0xe4, 0x12, 0x54, 0x3d, 0xda, 0xb1, 0x2d, 0x43, 0xf7, 0x79, 0xd3, 0x4b, 0x73, 0x1c, 0xca,
- 0x34, 0x0c, 0x73, 0xfb, 0x6c, 0x3e, 0x4b, 0x0f, 0xe4, 0xe6, 0xb3, 0xfc, 0xee, 0x6f, 0x3e, 0xb5,
- 0x2f, 0x15, 0x81, 0x2b, 0x2a, 0xe4, 0x22, 0x94, 0xd9, 0x22, 0x9c, 0x36, 0x79, 0xf0, 0x8e, 0xc3,
- 0x73, 0xc8, 0x39, 0x28, 0x06, 0xae, 0x1c, 0x79, 0x20, 0xf3, 0x8b, 0x6b, 0x2e, 0x16, 0x03, 0x97,
- 0xbc, 0x01, 0x60, 0xb8, 0x8e, 0x69, 0x29, 0x2b, 0x75, 0xbe, 0x0f, 0x5b, 0x70, 0xbd, 0x5b, 0xba,
- 0x67, 0xce, 0x85, 0x88, 0x62, 0xfb, 0x11, 0xbd, 0x63, 0x8c, 0x1b, 0x79, 0x01, 0x86, 0x5c, 0x67,
- 0xa1, 0x6b, 0xdb, 0x5c, 0xa0, 0xb5, 0xc6, 0xff, 0x64, 0x7b, 0xc2, 0x1b, 0x3c, 0xe5, 0xce, 0xde,
- 0xe4, 0x59, 0xa1, 0xdf, 0xb2, 0xb7, 0x97, 0x3c, 0x2b, 0xb0, 0x9c, 0x56, 0x33, 0xf0, 0xf4, 0x80,
- 0xb6, 0x76, 0x51, 0x16, 0xd3, 0xbe, 0x5a, 0x80, 0xfa, 0x82, 0x75, 0x9b, 0x9a, 0x2f, 0x59, 0x8e,
- 0xe9, 0xde, 0x22, 0x08, 0x43, 0x36, 0x75, 0x5a, 0xc1, 0x96, 0xec, 0xfd, 0x53, 0xb1, 0xb1, 0x16,
- 0x1e, 0x6e, 0x44, 0xf5, 0x6f, 0xd3, 0x40, 0x67, 0xa3, 0x6f, 0xbe, 0x2b, 0xcd, 0xef, 0x62, 0x53,
- 0xca, 0x11, 0x50, 0x22, 0x91, 0x69, 0xa8, 0x09, 0xed, 0xd3, 0x72, 0x5a, 0x5c, 0x86, 0xd5, 0x68,
- 0xd2, 0x6b, 0xaa, 0x0c, 0x8c, 0x68, 0xb4, 0x5d, 0x38, 0xd9, 0x23, 0x06, 0x62, 0x42, 0x39, 0xd0,
- 0x5b, 0x6a, 0x7e, 0x5d, 0x18, 0x58, 0xc0, 0x6b, 0x7a, 0x2b, 0x26, 0x5c, 0xbe, 0xc6, 0xaf, 0xe9,
- 0x6c, 0x8d, 0x67, 0xe8, 0xda, 0x4f, 0x0a, 0x50, 0x5d, 0xe8, 0x3a, 0x06, 0xdf, 0x1b, 0xdd, 0xdb,
- 0x14, 0xa6, 0x14, 0x86, 0x62, 0xa6, 0xc2, 0xd0, 0x85, 0xa1, 0xed, 0x5b, 0xa1, 0x42, 0x51, 0x9f,
- 0x59, 0x19, 0xbc, 0x57, 0xc8, 0x2a, 0x4d, 0x5d, 0xe3, 0x78, 0xe2, 0x0c, 0x65, 0x4c, 0x56, 0x68,
- 0xe8, 0xda, 0x4b, 0x9c, 0xa9, 0x64, 0x76, 0xee, 0xa3, 0x50, 0x8f, 0x91, 0x1d, 0xca, 0x68, 0xfb,
- 0x3b, 0x65, 0x18, 0x5a, 0x6c, 0x36, 0x67, 0x57, 0x97, 0xc8, 0x33, 0x50, 0x97, 0xe6, 0xf5, 0xeb,
- 0x91, 0x0c, 0xc2, 0xd3, 0x95, 0x66, 0x94, 0x85, 0x71, 0x3a, 0xa6, 0x8e, 0x79, 0x54, 0xb7, 0xdb,
- 0x72, 0xb0, 0x84, 0xea, 0x18, 0xb2, 0x44, 0x14, 0x79, 0x44, 0x87, 0x31, 0xb6, 0xc3, 0x63, 0x22,
- 0x14, 0xbb, 0x37, 0x39, 0x6c, 0x0e, 0xb8, 0xbf, 0xe3, 0x4a, 0xe2, 0x7a, 0x02, 0x00, 0x53, 0x80,
- 0xe4, 0x79, 0xa8, 0xea, 0xdd, 0x60, 0x8b, 0x2b, 0xd0, 0x62, 0x6c, 0x9c, 0xe7, 0xa7, 0x0f, 0x32,
- 0xed, 0xce, 0xde, 0xe4, 0xc8, 0x35, 0x6c, 0x3c, 0xa3, 0xde, 0x31, 0xa4, 0x66, 0x95, 0x53, 0x3b,
- 0x46, 0x59, 0xb9, 0xca, 0xa1, 0x2b, 0xb7, 0x9a, 0x00, 0xc0, 0x14, 0x20, 0x79, 0x05, 0x46, 0xb6,
- 0xe9, 0x6e, 0xa0, 0x6f, 0x48, 0x06, 0x43, 0x87, 0x61, 0x30, 0xce, 0x54, 0xb8, 0x6b, 0xb1, 0xe2,
- 0x98, 0x00, 0x23, 0x3e, 0x9c, 0xde, 0xa6, 0xde, 0x06, 0xf5, 0x5c, 0xb9, 0xfb, 0x94, 0x4c, 0x86,
- 0x0f, 0xc3, 0x64, 0x62, 0x7f, 0x6f, 0xf2, 0xf4, 0xb5, 0x0c, 0x18, 0xcc, 0x04, 0xd7, 0x7e, 0x5c,
- 0x84, 0x13, 0x8b, 0xe2, 0x7c, 0xd3, 0xf5, 0xc4, 0x22, 0x4c, 0xce, 0x42, 0xc9, 0xeb, 0x74, 0x79,
- 0xcf, 0x29, 0x09, 0x3b, 0x29, 0xae, 0xae, 0x23, 0x4b, 0x23, 0x2f, 0x43, 0xd5, 0x94, 0x53, 0x86,
- 0xdc, 0xfc, 0x1e, 0x76, 0xa2, 0xe1, 0x8b, 0xa0, 0x7a, 0xc3, 0x10, 0x8d, 0x69, 0xfa, 0x6d, 0xbf,
- 0xd5, 0xb4, 0xde, 0xa0, 0x72, 0x3f, 0xc8, 0x35, 0xfd, 0x15, 0x91, 0x84, 0x2a, 0x8f, 0xad, 0xaa,
- 0xdb, 0x74, 0x57, 0xec, 0x86, 0xca, 0xd1, 0xaa, 0x7a, 0x4d, 0xa6, 0x61, 0x98, 0x4b, 0x26, 0xd5,
- 0x60, 0x61, 0xbd, 0xa0, 0x2c, 0x76, 0xf2, 0x37, 0x59, 0x82, 0x1c, 0x37, 0x6c, 0xca, 0x7c, 0xcd,
- 0x0a, 0x02, 0xea, 0xc9, 0x66, 0x1c, 0x68, 0xca, 0xbc, 0xca, 0x11, 0x50, 0x22, 0x91, 0x0f, 0x41,
- 0x8d, 0x83, 0x37, 0x6c, 0x77, 0x83, 0x37, 0x5c, 0x4d, 0xec, 0xe9, 0x6f, 0xaa, 0x44, 0x8c, 0xf2,
- 0xb5, 0x9f, 0x16, 0xe1, 0xcc, 0x22, 0x0d, 0x84, 0x56, 0x33, 0x4f, 0x3b, 0xb6, 0xbb, 0xcb, 0x54,
- 0x4b, 0xa4, 0xaf, 0x93, 0x17, 0x01, 0x2c, 0x7f, 0xa3, 0xb9, 0x63, 0xf0, 0x71, 0x20, 0xc6, 0xf0,
- 0x45, 0x39, 0x24, 0x61, 0xa9, 0xd9, 0x90, 0x39, 0x77, 0x12, 0x6f, 0x18, 0x2b, 0x13, 0x6d, 0xaf,
- 0x8a, 0x77, 0xd9, 0x5e, 0x35, 0x01, 0x3a, 0x91, 0x82, 0x5a, 0xe2, 0x94, 0xff, 0x47, 0xb1, 0x39,
- 0x8c, 0x6e, 0x1a, 0x83, 0xc9, 0xa3, 0x32, 0x3a, 0x30, 0x6e, 0xd2, 0x4d, 0xbd, 0x6b, 0x07, 0xa1,
- 0x52, 0x2d, 0x07, 0xf1, 0xc1, 0xf5, 0xf2, 0xf0, 0xec, 0x75, 0x3e, 0x85, 0x84, 0x3d, 0xd8, 0xda,
- 0xef, 0x96, 0xe0, 0xdc, 0x22, 0x0d, 0x42, 0x8b, 0x8b, 0x9c, 0x1d, 0x9b, 0x1d, 0x6a, 0xb0, 0x56,
- 0x78, 0xb3, 0x00, 0x43, 0xb6, 0xbe, 0x41, 0x6d, 0xb6, 0x7a, 0xb1, 0xaf, 0x79, 0x75, 0xe0, 0x85,
- 0xa0, 0x3f, 0x97, 0xa9, 0x65, 0xce, 0x21, 0xb5, 0x34, 0x88, 0x44, 0x94, 0xec, 0xd9, 0xa4, 0x6e,
- 0xd8, 0x5d, 0x3f, 0xa0, 0xde, 0xaa, 0xeb, 0x05, 0x52, 0x9f, 0x0c, 0x27, 0xf5, 0xb9, 0x28, 0x0b,
- 0xe3, 0x74, 0x64, 0x06, 0xc0, 0xb0, 0x2d, 0xea, 0x04, 0xbc, 0x94, 0x18, 0x57, 0x44, 0xb5, 0xef,
- 0x5c, 0x98, 0x83, 0x31, 0x2a, 0xc6, 0xaa, 0xed, 0x3a, 0x56, 0xe0, 0x0a, 0x56, 0xe5, 0x24, 0xab,
- 0x95, 0x28, 0x0b, 0xe3, 0x74, 0xbc, 0x18, 0x0d, 0x3c, 0xcb, 0xf0, 0x79, 0xb1, 0x4a, 0xaa, 0x58,
- 0x94, 0x85, 0x71, 0x3a, 0xb6, 0xe6, 0xc5, 0xbe, 0xff, 0x50, 0x6b, 0xde, 0x37, 0x6b, 0x70, 0x21,
- 0x21, 0xd6, 0x40, 0x0f, 0xe8, 0x66, 0xd7, 0x6e, 0xd2, 0x40, 0x35, 0xe0, 0x80, 0x6b, 0xe1, 0xcf,
- 0x47, 0xed, 0x2e, 0xbc, 0x2a, 0x8c, 0xa3, 0x69, 0xf7, 0x9e, 0x0a, 0x1e, 0xa8, 0xed, 0xa7, 0xa1,
- 0xe6, 0xe8, 0x81, 0xcf, 0x07, 0xae, 0x1c, 0xa3, 0xa1, 0x1a, 0x76, 0x5d, 0x65, 0x60, 0x44, 0x43,
- 0x56, 0xe1, 0xb4, 0x14, 0xf1, 0xe5, 0xdb, 0x1d, 0xd7, 0x0b, 0xa8, 0x27, 0xca, 0xca, 0xe5, 0x54,
- 0x96, 0x3d, 0xbd, 0x92, 0x41, 0x83, 0x99, 0x25, 0xc9, 0x0a, 0x9c, 0x32, 0xc4, 0x49, 0x33, 0xb5,
- 0x5d, 0xdd, 0x54, 0x80, 0xc2, 0xc0, 0x15, 0x6e, 0x8d, 0xe6, 0x7a, 0x49, 0x30, 0xab, 0x5c, 0xba,
- 0x37, 0x0f, 0x0d, 0xd4, 0x9b, 0x87, 0x07, 0xe9, 0xcd, 0xd5, 0xc1, 0x7a, 0x73, 0xed, 0x60, 0xbd,
- 0x99, 0x49, 0x9e, 0xf5, 0x23, 0xea, 0x31, 0xf5, 0x44, 0xac, 0xb0, 0x31, 0x47, 0x86, 0x50, 0xf2,
- 0xcd, 0x0c, 0x1a, 0xcc, 0x2c, 0x49, 0x36, 0xe0, 0x9c, 0x48, 0xbf, 0xec, 0x18, 0xde, 0x6e, 0x87,
- 0x2d, 0x3c, 0x31, 0xdc, 0x7a, 0xc2, 0xc2, 0x78, 0xae, 0xd9, 0x97, 0x12, 0xef, 0x82, 0x42, 0xfe,
- 0x2f, 0x8c, 0x8a, 0x56, 0x5a, 0xd1, 0x3b, 0x1c, 0x56, 0xb8, 0x35, 0x3c, 0x2c, 0x61, 0x47, 0xe7,
- 0xe2, 0x99, 0x98, 0xa4, 0x25, 0xb3, 0x70, 0xa2, 0xb3, 0x63, 0xb0, 0xc7, 0xa5, 0xcd, 0xeb, 0x94,
- 0x9a, 0xd4, 0xe4, 0xa7, 0x35, 0xb5, 0xc6, 0x23, 0xca, 0xd0, 0xb1, 0x9a, 0xcc, 0xc6, 0x34, 0x3d,
- 0x79, 0x1e, 0x46, 0xfc, 0x40, 0xf7, 0x02, 0x69, 0xd6, 0x9b, 0x18, 0x13, 0x6e, 0x1f, 0xca, 0xea,
- 0xd5, 0x8c, 0xe5, 0x61, 0x82, 0x32, 0x73, 0xbd, 0x38, 0x71, 0x7c, 0xeb, 0x45, 0x9e, 0xd9, 0xea,
- 0xcf, 0x8a, 0x70, 0x71, 0x91, 0x06, 0x2b, 0xae, 0x23, 0x8d, 0xa2, 0x59, 0xcb, 0xfe, 0x81, 0x6c,
- 0xa2, 0xc9, 0x45, 0xbb, 0x78, 0xa4, 0x8b, 0x76, 0xe9, 0x88, 0x16, 0xed, 0xf2, 0x31, 0x2e, 0xda,
- 0xbf, 0x5f, 0x84, 0x47, 0x12, 0x92, 0x5c, 0x75, 0x4d, 0x35, 0xe1, 0xbf, 0x2f, 0xc0, 0x03, 0x08,
- 0xf0, 0x8e, 0xd0, 0x3b, 0xf9, 0xb1, 0x56, 0x4a, 0xe3, 0xf9, 0x4a, 0x5a, 0xe3, 0x79, 0x25, 0xcf,
- 0xca, 0x97, 0xc1, 0xe1, 0x40, 0x2b, 0xde, 0x55, 0x20, 0x9e, 0x3c, 0x84, 0x13, 0xa6, 0x9f, 0x98,
- 0xd2, 0x13, 0xfa, 0x95, 0x61, 0x0f, 0x05, 0x66, 0x94, 0x22, 0x4d, 0x78, 0xd8, 0xa7, 0x4e, 0x60,
- 0x39, 0xd4, 0x4e, 0xc2, 0x09, 0x6d, 0xe8, 0x31, 0x09, 0xf7, 0x70, 0x33, 0x8b, 0x08, 0xb3, 0xcb,
- 0xe6, 0x99, 0x07, 0xfe, 0x12, 0xb8, 0xca, 0x29, 0x44, 0x73, 0x64, 0x1a, 0xcb, 0x9b, 0x69, 0x8d,
- 0xe5, 0xd5, 0xfc, 0xed, 0x36, 0x98, 0xb6, 0x32, 0x03, 0xc0, 0x5b, 0x21, 0xae, 0xae, 0x84, 0x8b,
- 0x34, 0x86, 0x39, 0x18, 0xa3, 0x62, 0x0b, 0x90, 0x92, 0x73, 0x5c, 0x53, 0x09, 0x17, 0xa0, 0x66,
- 0x3c, 0x13, 0x93, 0xb4, 0x7d, 0xb5, 0x9d, 0xca, 0xc0, 0xda, 0xce, 0x55, 0x20, 0x09, 0xc3, 0xa3,
- 0xc0, 0x1b, 0x4a, 0xba, 0x35, 0x2e, 0xf5, 0x50, 0x60, 0x46, 0xa9, 0x3e, 0x5d, 0x79, 0xf8, 0x68,
- 0xbb, 0x72, 0x75, 0xf0, 0xae, 0x4c, 0x5e, 0x85, 0xb3, 0x9c, 0x95, 0x94, 0x4f, 0x12, 0x58, 0xe8,
- 0x3d, 0x1f, 0x90, 0xc0, 0x67, 0xb1, 0x1f, 0x21, 0xf6, 0xc7, 0x60, 0xed, 0x63, 0x78, 0xd4, 0x64,
- 0xcc, 0x75, 0xbb, 0xbf, 0x4e, 0x34, 0x97, 0x41, 0x83, 0x99, 0x25, 0x59, 0x17, 0x0b, 0x58, 0x37,
- 0xd4, 0x37, 0x6c, 0x6a, 0x4a, 0xb7, 0xce, 0xb0, 0x8b, 0xad, 0x2d, 0x37, 0x65, 0x0e, 0xc6, 0xa8,
- 0xb2, 0xd4, 0x94, 0x91, 0x43, 0xaa, 0x29, 0x8b, 0xdc, 0x4a, 0xbf, 0x99, 0xd0, 0x86, 0xa4, 0xae,
- 0x13, 0x3a, 0xea, 0xce, 0xa5, 0x09, 0xb0, 0xb7, 0x0c, 0xd7, 0x12, 0x0d, 0xcf, 0xea, 0x04, 0x7e,
- 0x12, 0x6b, 0x2c, 0xa5, 0x25, 0x66, 0xd0, 0x60, 0x66, 0x49, 0xa6, 0x9f, 0x6f, 0x51, 0xdd, 0x0e,
- 0xb6, 0x92, 0x80, 0x27, 0x92, 0xfa, 0xf9, 0x95, 0x5e, 0x12, 0xcc, 0x2a, 0x97, 0xb9, 0x20, 0x8d,
- 0x3f, 0x98, 0x6a, 0xd5, 0x97, 0x4b, 0x70, 0x76, 0x91, 0x06, 0xa1, 0x5f, 0xcd, 0xfb, 0x66, 0x94,
- 0x77, 0xc1, 0x8c, 0xf2, 0x8d, 0x0a, 0x9c, 0x5a, 0xa4, 0x41, 0x8f, 0x36, 0xf6, 0xdf, 0x54, 0xfc,
- 0x2b, 0x70, 0x2a, 0x72, 0xe5, 0x6a, 0x06, 0xae, 0x27, 0xd6, 0xf2, 0xd4, 0x6e, 0xb9, 0xd9, 0x4b,
- 0x82, 0x59, 0xe5, 0xc8, 0xa7, 0xe1, 0x11, 0xbe, 0xd4, 0x3b, 0x2d, 0x61, 0x9f, 0x15, 0xc6, 0x84,
- 0xd8, 0x35, 0x81, 0x49, 0x09, 0xf9, 0x48, 0x33, 0x9b, 0x0c, 0xfb, 0x95, 0x27, 0x5f, 0x80, 0x91,
- 0x8e, 0xd5, 0xa1, 0xb6, 0xe5, 0x70, 0xfd, 0x2c, 0xb7, 0x4b, 0xc8, 0x6a, 0x0c, 0x2c, 0xda, 0xc0,
- 0xc5, 0x53, 0x31, 0xc1, 0x30, 0xb3, 0xa7, 0x56, 0x8f, 0xb1, 0xa7, 0xfe, 0x7b, 0x11, 0x86, 0x17,
- 0x3d, 0xb7, 0xdb, 0x69, 0xec, 0x92, 0x16, 0x0c, 0xdd, 0xe2, 0x87, 0x67, 0xf2, 0x68, 0x6a, 0x70,
- 0x77, 0x68, 0x71, 0x06, 0x17, 0xa9, 0x44, 0xe2, 0x1d, 0x25, 0x3c, 0xeb, 0xc4, 0xdb, 0x74, 0x97,
- 0x9a, 0xf2, 0x0c, 0x2d, 0xec, 0xc4, 0xd7, 0x58, 0x22, 0x8a, 0x3c, 0xd2, 0x86, 0x13, 0xba, 0x6d,
- 0xbb, 0xb7, 0xa8, 0xb9, 0xac, 0x07, 0xd4, 0xa1, 0xbe, 0x3a, 0x92, 0x3c, 0xac, 0x59, 0x9a, 0x9f,
- 0xeb, 0xcf, 0x26, 0xa1, 0x30, 0x8d, 0x4d, 0x5e, 0x83, 0x61, 0x3f, 0x70, 0x3d, 0xa5, 0x6c, 0xd5,
- 0x67, 0xe6, 0x06, 0x6f, 0xf4, 0xc6, 0xa7, 0x9a, 0x02, 0x4a, 0xd8, 0xec, 0xe5, 0x0b, 0x2a, 0x06,
- 0xda, 0xd7, 0x0b, 0x00, 0x57, 0xd6, 0xd6, 0x56, 0xe5, 0xf1, 0x82, 0x09, 0x65, 0xbd, 0x1b, 0x1e,
- 0x54, 0x0e, 0x7e, 0x20, 0x98, 0xf0, 0x87, 0x94, 0x67, 0x78, 0xdd, 0x60, 0x0b, 0x39, 0x3a, 0xf9,
- 0x20, 0x0c, 0x4b, 0x05, 0x59, 0x8a, 0x3d, 0x74, 0x2d, 0x90, 0x4a, 0x34, 0xaa, 0x7c, 0xed, 0xb7,
- 0x8b, 0x00, 0x4b, 0xa6, 0x4d, 0x9b, 0xca, 0x83, 0xbd, 0x16, 0x6c, 0x79, 0xd4, 0xdf, 0x72, 0x6d,
- 0x73, 0xc0, 0xd3, 0x54, 0x6e, 0xf3, 0x5f, 0x53, 0x20, 0x18, 0xe1, 0x11, 0x13, 0x46, 0xfc, 0x80,
- 0x76, 0x96, 0x9c, 0x80, 0x7a, 0x3b, 0xba, 0x3d, 0xe0, 0x21, 0xca, 0xb8, 0xb0, 0x8b, 0x44, 0x38,
- 0x98, 0x40, 0x25, 0x3a, 0xd4, 0x2d, 0xc7, 0x10, 0x03, 0xa4, 0xb1, 0x3b, 0x60, 0x47, 0x3a, 0xc1,
- 0x76, 0x1c, 0x4b, 0x11, 0x0c, 0xc6, 0x31, 0xb5, 0xef, 0x17, 0xe1, 0x0c, 0xe7, 0xc7, 0xaa, 0x91,
- 0xf0, 0xc7, 0x24, 0xff, 0xbf, 0xe7, 0x1e, 0xdc, 0xff, 0x3e, 0x18, 0x6b, 0x71, 0x8d, 0x6a, 0x85,
- 0x06, 0x7a, 0xa4, 0xcf, 0x45, 0x69, 0xb1, 0xcb, 0x6f, 0x5d, 0x28, 0xfb, 0x6c, 0xbe, 0x12, 0xd2,
- 0x6b, 0x0e, 0xdc, 0x85, 0xb2, 0x3f, 0x80, 0xcf, 0x5e, 0xe1, 0xa9, 0x31, 0x9f, 0xb5, 0x38, 0x3b,
- 0xf2, 0xb3, 0x30, 0xe4, 0x07, 0x7a, 0xd0, 0x55, 0x43, 0x73, 0xfd, 0xa8, 0x19, 0x73, 0xf0, 0x68,
- 0x1e, 0x11, 0xef, 0x28, 0x99, 0x6a, 0xdf, 0x2f, 0xc0, 0xb9, 0xec, 0x82, 0xcb, 0x96, 0x1f, 0x90,
- 0xff, 0xd7, 0x23, 0xf6, 0x03, 0xb6, 0x38, 0x2b, 0xcd, 0x85, 0x1e, 0x3a, 0x64, 0xab, 0x94, 0x98,
- 0xc8, 0x03, 0xa8, 0x58, 0x01, 0x6d, 0xab, 0xfd, 0xe5, 0x8d, 0x23, 0xfe, 0xf4, 0xd8, 0xd2, 0xce,
- 0xb8, 0xa0, 0x60, 0xa6, 0xbd, 0x55, 0xec, 0xf7, 0xc9, 0x7c, 0xf9, 0xb0, 0x93, 0x3e, 0xbf, 0xd7,
- 0xf2, 0xf9, 0xfc, 0x26, 0x2b, 0xd4, 0xeb, 0xfa, 0xfb, 0x33, 0xbd, 0xae, 0xbf, 0x37, 0xf2, 0xbb,
- 0xfe, 0xa6, 0xc4, 0xd0, 0xd7, 0x03, 0xf8, 0x9d, 0x12, 0x9c, 0xbf, 0x5b, 0xb7, 0x61, 0xeb, 0x99,
- 0xec, 0x9d, 0x79, 0xd7, 0xb3, 0xbb, 0xf7, 0x43, 0x32, 0x03, 0x95, 0xce, 0x96, 0xee, 0x2b, 0xa5,
- 0x4c, 0x6d, 0x58, 0x2a, 0xab, 0x2c, 0xf1, 0x0e, 0x9b, 0x34, 0xb8, 0x32, 0xc7, 0x5f, 0x51, 0x90,
- 0xb2, 0xe9, 0xb8, 0x4d, 0x7d, 0x3f, 0xb2, 0x09, 0x84, 0xd3, 0xf1, 0x8a, 0x48, 0x46, 0x95, 0x4f,
- 0x02, 0x18, 0x12, 0x26, 0x66, 0xb9, 0x32, 0x0d, 0xee, 0xc8, 0x95, 0xe1, 0x26, 0x1e, 0x7d, 0x94,
- 0x3c, 0xad, 0x90, 0xbc, 0xc8, 0x14, 0x94, 0x83, 0xc8, 0x69, 0x57, 0x6d, 0xcd, 0xcb, 0x19, 0xfa,
- 0x29, 0xa7, 0x63, 0x1b, 0x7b, 0x77, 0x83, 0x1b, 0xd5, 0x4d, 0x79, 0x7e, 0x6e, 0xb9, 0x0e, 0x57,
- 0xc8, 0x4a, 0xd1, 0xc6, 0xfe, 0x46, 0x0f, 0x05, 0x66, 0x94, 0xd2, 0xfe, 0xa6, 0x0a, 0x67, 0xb2,
- 0xfb, 0x03, 0x93, 0xdb, 0x0e, 0xf5, 0x7c, 0x86, 0x5d, 0x48, 0xca, 0xed, 0xa6, 0x48, 0x46, 0x95,
- 0xff, 0x9e, 0x76, 0x38, 0xfb, 0x46, 0x01, 0xce, 0x7a, 0xf2, 0x8c, 0xe8, 0x7e, 0x38, 0x9d, 0x3d,
- 0x26, 0xcc, 0x19, 0x7d, 0x18, 0x62, 0xff, 0xba, 0x90, 0xdf, 0x2c, 0xc0, 0x44, 0x3b, 0x65, 0xe7,
- 0x38, 0xc6, 0x0b, 0x63, 0xdc, 0x2b, 0x7e, 0xa5, 0x0f, 0x3f, 0xec, 0x5b, 0x13, 0xf2, 0x05, 0xa8,
- 0x77, 0x58, 0xbf, 0xf0, 0x03, 0xea, 0x18, 0xea, 0xce, 0xd8, 0xe0, 0x23, 0x69, 0x35, 0xc2, 0x52,
- 0xae, 0x68, 0x42, 0x3f, 0x88, 0x65, 0x60, 0x9c, 0xe3, 0x03, 0x7e, 0x43, 0xec, 0x12, 0x54, 0x7d,
- 0x1a, 0x04, 0x96, 0xd3, 0x12, 0xfb, 0x8d, 0x9a, 0x18, 0x2b, 0x4d, 0x99, 0x86, 0x61, 0x2e, 0xf9,
- 0x10, 0xd4, 0xf8, 0x91, 0xd3, 0xac, 0xd7, 0xf2, 0x27, 0x6a, 0xdc, 0x5d, 0x6c, 0x54, 0x38, 0xc0,
- 0xc9, 0x44, 0x8c, 0xf2, 0xc9, 0xd3, 0x30, 0xb2, 0xc1, 0x87, 0xaf, 0xbc, 0xce, 0x2b, 0x6c, 0x5c,
- 0x5c, 0x5b, 0x6b, 0xc4, 0xd2, 0x31, 0x41, 0x45, 0x66, 0x00, 0x68, 0x78, 0x2e, 0x97, 0xb6, 0x67,
- 0x45, 0x27, 0x76, 0x18, 0xa3, 0x22, 0x8f, 0x41, 0x29, 0xb0, 0x7d, 0x6e, 0xc3, 0xaa, 0x46, 0x5b,
- 0xd0, 0xb5, 0xe5, 0x26, 0xb2, 0x74, 0xed, 0xa7, 0x05, 0x38, 0x91, 0xba, 0x5c, 0xc2, 0x8a, 0x74,
- 0x3d, 0x5b, 0x4e, 0x23, 0x61, 0x91, 0x75, 0x5c, 0x46, 0x96, 0x4e, 0x5e, 0x95, 0x6a, 0x79, 0x31,
- 0x67, 0xe4, 0x82, 0xeb, 0x7a, 0xe0, 0x33, 0x3d, 0xbc, 0x47, 0x23, 0xe7, 0xc7, 0x7c, 0x51, 0x7d,
- 0xe4, 0x3a, 0x10, 0x3b, 0xe6, 0x8b, 0xf2, 0x30, 0x41, 0x99, 0x32, 0xf8, 0x95, 0x0f, 0x62, 0xf0,
- 0xd3, 0xbe, 0x5a, 0x8c, 0x49, 0x40, 0x6a, 0xf6, 0xf7, 0x90, 0xc0, 0x93, 0x6c, 0x01, 0x0d, 0x17,
- 0xf7, 0x5a, 0x7c, 0xfd, 0xe3, 0x8b, 0xb1, 0xcc, 0x25, 0x2f, 0x09, 0xd9, 0x97, 0x72, 0xde, 0x42,
- 0x5d, 0x5b, 0x6e, 0x0a, 0xef, 0x2a, 0xd5, 0x6a, 0x61, 0x13, 0x94, 0x8f, 0xa9, 0x09, 0xb4, 0xbf,
- 0x28, 0x41, 0xfd, 0xaa, 0xbb, 0xf1, 0x1e, 0xf1, 0xa0, 0xce, 0x5e, 0xa6, 0x8a, 0xef, 0xe2, 0x32,
- 0xb5, 0x0e, 0x8f, 0x04, 0x81, 0xdd, 0xa4, 0x86, 0xeb, 0x98, 0xfe, 0xec, 0x66, 0x40, 0xbd, 0x05,
- 0xcb, 0xb1, 0xfc, 0x2d, 0x6a, 0xca, 0xe3, 0xa4, 0x47, 0xf7, 0xf7, 0x26, 0x1f, 0x59, 0x5b, 0x5b,
- 0xce, 0x22, 0xc1, 0x7e, 0x65, 0xf9, 0xb4, 0xa1, 0x1b, 0xdb, 0xee, 0xe6, 0x26, 0xbf, 0x29, 0x23,
- 0x7d, 0x6e, 0xc4, 0xb4, 0x11, 0x4b, 0xc7, 0x04, 0x95, 0xf6, 0x76, 0x11, 0x6a, 0xe1, 0xcd, 0x77,
- 0xf2, 0x04, 0x0c, 0x6f, 0x78, 0xee, 0x36, 0xf5, 0xc4, 0xc9, 0x9d, 0xbc, 0x29, 0xd3, 0x10, 0x49,
- 0xa8, 0xf2, 0xc8, 0xe3, 0x50, 0x09, 0xdc, 0x8e, 0x65, 0xa4, 0x0d, 0x6a, 0x6b, 0x2c, 0x11, 0x45,
- 0xde, 0xf1, 0x75, 0xf0, 0x27, 0x13, 0xaa, 0x5d, 0xad, 0xaf, 0x32, 0xf6, 0x0a, 0x94, 0x7d, 0xdd,
- 0xb7, 0xe5, 0x7a, 0x9a, 0xe3, 0x12, 0xf9, 0x6c, 0x73, 0x59, 0x5e, 0x22, 0x9f, 0x6d, 0x2e, 0x23,
- 0x07, 0xd5, 0x7e, 0x54, 0x84, 0xba, 0x90, 0x9b, 0x98, 0x15, 0x8e, 0x52, 0x72, 0x2f, 0x70, 0x57,
- 0x0a, 0xbf, 0xdb, 0xa6, 0x1e, 0x37, 0x33, 0xc9, 0x49, 0x2e, 0x7e, 0x3e, 0x10, 0x65, 0x86, 0xee,
- 0x14, 0x51, 0x92, 0x12, 0x7d, 0xf9, 0x18, 0x45, 0x5f, 0x39, 0x90, 0xe8, 0x87, 0x8e, 0x43, 0xf4,
- 0x6f, 0x16, 0xa1, 0xb6, 0x6c, 0x6d, 0x52, 0x63, 0xd7, 0xb0, 0xf9, 0x9d, 0x40, 0x93, 0xda, 0x34,
- 0xa0, 0x8b, 0x9e, 0x6e, 0xd0, 0x55, 0xea, 0x59, 0x3c, 0x66, 0x0b, 0x1b, 0x1f, 0x7c, 0x06, 0x92,
- 0x77, 0x02, 0xe7, 0xfb, 0xd0, 0x60, 0xdf, 0xd2, 0x64, 0x09, 0x46, 0x4c, 0xea, 0x5b, 0x1e, 0x35,
- 0x57, 0x63, 0x1b, 0x95, 0x27, 0xd4, 0x52, 0x33, 0x1f, 0xcb, 0xbb, 0xb3, 0x37, 0x39, 0xaa, 0x0c,
- 0x94, 0x62, 0xc7, 0x92, 0x28, 0xca, 0x86, 0x7c, 0x47, 0xef, 0xfa, 0x59, 0x75, 0x8c, 0x0d, 0xf9,
- 0xd5, 0x6c, 0x12, 0xec, 0x57, 0x56, 0xab, 0x40, 0x69, 0xd9, 0x6d, 0x69, 0x6f, 0x95, 0x20, 0x0c,
- 0xee, 0x43, 0x7e, 0xae, 0x00, 0x75, 0xdd, 0x71, 0xdc, 0x40, 0x06, 0xce, 0x11, 0x27, 0xf0, 0x98,
- 0x3b, 0x86, 0xd0, 0xd4, 0x6c, 0x04, 0x2a, 0x0e, 0x6f, 0xc3, 0x03, 0xe5, 0x58, 0x0e, 0xc6, 0x79,
- 0x93, 0x6e, 0xea, 0x3c, 0x79, 0x25, 0x7f, 0x2d, 0x0e, 0x70, 0x7a, 0x7c, 0xee, 0x93, 0x30, 0x9e,
- 0xae, 0xec, 0x61, 0x8e, 0x83, 0x72, 0x1d, 0xcc, 0x17, 0x01, 0x22, 0x9f, 0x92, 0xfb, 0x60, 0xc4,
- 0xb2, 0x12, 0x46, 0xac, 0xc5, 0xc1, 0x05, 0x1c, 0x56, 0xba, 0xaf, 0xe1, 0xea, 0xf5, 0x94, 0xe1,
- 0x6a, 0xe9, 0x28, 0x98, 0xdd, 0xdd, 0x58, 0xf5, 0x5b, 0x05, 0x18, 0x8f, 0x88, 0xe5, 0x0d, 0xd9,
- 0xe7, 0x60, 0xd4, 0xa3, 0xba, 0xd9, 0xd0, 0x03, 0x63, 0x8b, 0xbb, 0x7a, 0x17, 0xb8, 0x6f, 0xf6,
- 0xc9, 0xfd, 0xbd, 0xc9, 0x51, 0x8c, 0x67, 0x60, 0x92, 0x8e, 0xe8, 0x50, 0x67, 0x09, 0x6b, 0x56,
- 0x9b, 0xba, 0xdd, 0x60, 0x40, 0xab, 0x29, 0xdf, 0xb0, 0x60, 0x04, 0x83, 0x71, 0x4c, 0xed, 0x9d,
- 0x02, 0x8c, 0xc5, 0x2b, 0x7c, 0xec, 0x16, 0xb5, 0xad, 0xa4, 0x45, 0x6d, 0xee, 0x08, 0xda, 0xa4,
- 0x8f, 0x15, 0xed, 0xc7, 0xd5, 0xf8, 0xa7, 0x71, 0xcb, 0x59, 0xdc, 0x58, 0x50, 0xb8, 0xab, 0xb1,
- 0xe0, 0xbd, 0x1f, 0x35, 0xa6, 0x9f, 0x96, 0x5b, 0x7e, 0x80, 0xb5, 0xdc, 0x77, 0x33, 0xf4, 0x4c,
- 0x2c, 0x7c, 0xca, 0x50, 0x8e, 0xf0, 0x29, 0xed, 0x30, 0x7c, 0xca, 0xf0, 0x91, 0x4d, 0x3a, 0x07,
- 0x09, 0xa1, 0x52, 0xbd, 0xaf, 0x21, 0x54, 0x6a, 0xc7, 0x15, 0x42, 0x05, 0xf2, 0x86, 0x50, 0xf9,
- 0x4a, 0x01, 0xc6, 0xcc, 0xc4, 0x8d, 0x59, 0x6e, 0x5b, 0xc8, 0xb3, 0xd4, 0x24, 0x2f, 0xe0, 0x8a,
- 0x2b, 0x53, 0xc9, 0x34, 0x4c, 0xb1, 0xd4, 0x7e, 0x58, 0x8e, 0xaf, 0x03, 0xf7, 0xdb, 0x54, 0xfd,
- 0x6c, 0xd2, 0x54, 0x7d, 0x31, 0x6d, 0xaa, 0x3e, 0x11, 0xf3, 0x22, 0x8d, 0x9b, 0xab, 0x3f, 0x1c,
- 0x9b, 0x1e, 0xd9, 0x9c, 0x34, 0x1a, 0x49, 0x3a, 0x63, 0x8a, 0xfc, 0x30, 0x54, 0x7d, 0x15, 0x86,
- 0x51, 0x6c, 0x6c, 0xa2, 0x76, 0x51, 0x21, 0x12, 0x43, 0x0a, 0xa6, 0x89, 0x7b, 0x54, 0xf7, 0x5d,
- 0x27, 0xad, 0x89, 0x23, 0x4f, 0x45, 0x99, 0x1b, 0x37, 0x99, 0x0f, 0xdd, 0xc3, 0x64, 0xae, 0x43,
- 0xdd, 0xd6, 0xfd, 0x60, 0xbd, 0x63, 0xea, 0x01, 0x35, 0xe5, 0x78, 0xfb, 0x5f, 0x07, 0x5b, 0xab,
- 0xd8, 0xfa, 0x17, 0x29, 0x84, 0xcb, 0x11, 0x0c, 0xc6, 0x31, 0x89, 0x09, 0x23, 0xec, 0x95, 0x8f,
- 0x06, 0x73, 0x56, 0x85, 0x00, 0x38, 0x0c, 0x8f, 0xd0, 0xd2, 0xb3, 0x1c, 0xc3, 0xc1, 0x04, 0x6a,
- 0x1f, 0xab, 0x7a, 0x6d, 0x20, 0xab, 0xfa, 0x57, 0x6a, 0x50, 0xbf, 0xae, 0x07, 0xd6, 0x0e, 0xe5,
- 0xa7, 0x38, 0xc7, 0x63, 0x4a, 0xff, 0xd5, 0x02, 0x9c, 0x49, 0xba, 0xea, 0x1d, 0xa3, 0x3d, 0x9d,
- 0x07, 0xfe, 0xc0, 0x4c, 0x6e, 0xd8, 0xa7, 0x16, 0xdc, 0xb2, 0xde, 0xe3, 0xf9, 0x77, 0xdc, 0x96,
- 0xf5, 0x66, 0x3f, 0x86, 0xd8, 0xbf, 0x2e, 0xef, 0x15, 0xcb, 0xfa, 0x83, 0x1d, 0x98, 0x2d, 0x65,
- 0xf7, 0x1f, 0x7e, 0x60, 0xec, 0xfe, 0xd5, 0x07, 0x42, 0xd9, 0xea, 0xc4, 0xec, 0xfe, 0xb5, 0x9c,
- 0xfe, 0x27, 0xd2, 0xbb, 0x5d, 0xa0, 0xf5, 0x3b, 0x3f, 0xe0, 0x17, 0xd3, 0x95, 0x3d, 0x96, 0xe9,
- 0x28, 0x1b, 0xba, 0x6f, 0x19, 0x72, 0xd9, 0xcb, 0x11, 0x88, 0x52, 0x45, 0xec, 0x12, 0xc7, 0xd4,
- 0xfc, 0x15, 0x05, 0x76, 0x14, 0x19, 0xac, 0x98, 0x2b, 0x32, 0x18, 0x99, 0x83, 0xb2, 0xc3, 0x76,
- 0xcf, 0xa5, 0x43, 0xc7, 0x02, 0xbb, 0x7e, 0x8d, 0xee, 0x22, 0x2f, 0xac, 0xbd, 0x5d, 0x04, 0x60,
- 0x9f, 0x7f, 0x30, 0x0b, 0xfc, 0x07, 0x61, 0xd8, 0xef, 0xf2, 0xbd, 0xb2, 0x5c, 0xb0, 0x23, 0xa7,
- 0x1d, 0x91, 0x8c, 0x2a, 0x9f, 0x3c, 0x0e, 0x95, 0xd7, 0xbb, 0xb4, 0xab, 0x8e, 0x93, 0x43, 0x75,
- 0xed, 0x53, 0x2c, 0x11, 0x45, 0xde, 0xf1, 0x59, 0xd3, 0x94, 0xa5, 0xbe, 0x72, 0x5c, 0x96, 0xfa,
- 0x1a, 0x0c, 0x5f, 0x77, 0xb9, 0x0f, 0xa0, 0xf6, 0xaf, 0x45, 0x80, 0xc8, 0xc7, 0x8a, 0x7c, 0xbd,
- 0x00, 0x0f, 0x87, 0x03, 0x2e, 0x10, 0x5a, 0xf7, 0x9c, 0xad, 0x5b, 0xed, 0xdc, 0x56, 0xfb, 0xac,
- 0xc1, 0xce, 0x67, 0xa0, 0xd5, 0x2c, 0x76, 0x98, 0x5d, 0x0b, 0x82, 0x50, 0xa5, 0xed, 0x4e, 0xb0,
- 0x3b, 0x6f, 0x79, 0xb2, 0x07, 0x66, 0xba, 0xf2, 0x5d, 0x96, 0x34, 0xa2, 0xa8, 0xdc, 0x1a, 0xf2,
- 0x41, 0xa4, 0x72, 0x30, 0xc4, 0x21, 0x5b, 0x50, 0x75, 0xdc, 0x57, 0x7d, 0x26, 0x0e, 0xd9, 0x1d,
- 0x5f, 0x1c, 0x5c, 0xe4, 0x42, 0xac, 0xc2, 0xca, 0x2b, 0x5f, 0x70, 0xd8, 0x91, 0xc2, 0xfe, 0x5a,
- 0x11, 0x4e, 0x65, 0xc8, 0x81, 0xbc, 0x08, 0xe3, 0xd2, 0x9d, 0x2d, 0x0a, 0x4f, 0x5c, 0x88, 0xc2,
- 0x13, 0x37, 0x53, 0x79, 0xd8, 0x43, 0x4d, 0x5e, 0x05, 0xd0, 0x0d, 0x83, 0xfa, 0xfe, 0x8a, 0x6b,
- 0x2a, 0x7d, 0xf4, 0x85, 0xfd, 0xbd, 0x49, 0x98, 0x0d, 0x53, 0xef, 0xec, 0x4d, 0x7e, 0x24, 0xcb,
- 0x43, 0x35, 0x25, 0xe7, 0xa8, 0x00, 0xc6, 0x20, 0xc9, 0xe7, 0x00, 0xc4, 0xd6, 0x2b, 0xbc, 0x44,
- 0x7f, 0x0f, 0x7b, 0xc5, 0x94, 0x0a, 0x57, 0x34, 0xf5, 0xa9, 0xae, 0xee, 0x04, 0x56, 0xb0, 0x2b,
- 0x62, 0x96, 0xdc, 0x0c, 0x51, 0x30, 0x86, 0xa8, 0xfd, 0x69, 0x11, 0xaa, 0xca, 0x52, 0x7a, 0x1f,
- 0xcc, 0x63, 0xad, 0x84, 0x79, 0xec, 0x88, 0x7c, 0x52, 0xb3, 0x8c, 0x63, 0x6e, 0xca, 0x38, 0xb6,
- 0x98, 0x9f, 0xd5, 0xdd, 0x4d, 0x63, 0xdf, 0x2a, 0xc2, 0x98, 0x22, 0xcd, 0x6b, 0x18, 0xfb, 0x04,
- 0x9c, 0x10, 0x67, 0xc9, 0x2b, 0xfa, 0x6d, 0x11, 0xbe, 0x85, 0x0b, 0xac, 0x2c, 0xdc, 0x40, 0x1b,
- 0xc9, 0x2c, 0x4c, 0xd3, 0xb2, 0x6e, 0x2d, 0x92, 0xd6, 0xd9, 0x3e, 0x42, 0x9c, 0x3e, 0x89, 0xfd,
- 0x0e, 0xef, 0xd6, 0x8d, 0x54, 0x1e, 0xf6, 0x50, 0xa7, 0x2d, 0x73, 0xe5, 0x63, 0xb0, 0xcc, 0xfd,
- 0x6d, 0x01, 0x46, 0x22, 0x79, 0x1d, 0xbb, 0x5d, 0x6e, 0x33, 0x69, 0x97, 0x9b, 0xcd, 0xdd, 0x1d,
- 0xfa, 0x58, 0xe5, 0x7e, 0x71, 0x18, 0x12, 0xae, 0xd1, 0x64, 0x03, 0xce, 0x59, 0x99, 0x0e, 0x5e,
- 0xb1, 0xd9, 0x26, 0xbc, 0xeb, 0xbb, 0xd4, 0x97, 0x12, 0xef, 0x82, 0x42, 0xba, 0x50, 0xdd, 0xa1,
- 0x5e, 0x60, 0x19, 0x54, 0x7d, 0xdf, 0x62, 0x6e, 0x95, 0x4c, 0xda, 0x1e, 0x43, 0x99, 0xde, 0x94,
- 0x0c, 0x30, 0x64, 0x45, 0x36, 0xa0, 0x42, 0xcd, 0x16, 0x55, 0x01, 0x75, 0x72, 0x86, 0xab, 0x0c,
- 0xe5, 0xc9, 0xde, 0x7c, 0x14, 0xd0, 0xc4, 0x87, 0x9a, 0xad, 0xce, 0x96, 0x64, 0x3f, 0x1c, 0x5c,
- 0xc1, 0x0a, 0x4f, 0xa9, 0xa2, 0xbb, 0xf6, 0x61, 0x12, 0x46, 0x7c, 0xc8, 0x76, 0x68, 0xe4, 0xaa,
- 0x1c, 0xd1, 0xe4, 0x71, 0x17, 0x13, 0x97, 0x0f, 0xb5, 0x5b, 0x7a, 0x40, 0xbd, 0xb6, 0xee, 0x6d,
- 0xcb, 0xdd, 0xc6, 0xe0, 0x5f, 0xf8, 0x92, 0x42, 0x8a, 0xbe, 0x30, 0x4c, 0xc2, 0x88, 0x0f, 0x71,
- 0xa1, 0x16, 0x48, 0xf5, 0x59, 0x59, 0xf2, 0x06, 0x67, 0xaa, 0x14, 0x71, 0x5f, 0xba, 0x48, 0xab,
- 0x57, 0x8c, 0x78, 0x90, 0x9d, 0x44, 0x28, 0x5f, 0x11, 0xc0, 0xb9, 0x91, 0xc3, 0x22, 0x2c, 0xa1,
- 0xa2, 0xe5, 0x26, 0x3b, 0x24, 0xb0, 0xf6, 0x76, 0x25, 0x9a, 0x96, 0xef, 0xb7, 0x9d, 0xea, 0xe9,
- 0xa4, 0x9d, 0xea, 0x42, 0xda, 0x4e, 0x95, 0x3a, 0xa2, 0x3c, 0xbc, 0x53, 0x65, 0xca, 0x42, 0x54,
- 0x3e, 0x06, 0x0b, 0xd1, 0x53, 0x50, 0xdf, 0xe1, 0x33, 0x81, 0x88, 0xce, 0x53, 0xe1, 0xcb, 0x08,
- 0x9f, 0xd9, 0x6f, 0x46, 0xc9, 0x18, 0xa7, 0x61, 0x45, 0x84, 0x06, 0x12, 0x85, 0x37, 0x95, 0x45,
- 0x9a, 0x51, 0x32, 0xc6, 0x69, 0xb8, 0x3f, 0x96, 0xe5, 0x6c, 0x8b, 0x02, 0xc3, 0xbc, 0x80, 0xf0,
- 0xc7, 0x52, 0x89, 0x18, 0xe5, 0x93, 0x4b, 0x50, 0xed, 0x9a, 0x9b, 0x82, 0xb6, 0xca, 0x69, 0xb9,
- 0x86, 0xb9, 0x3e, 0xbf, 0x20, 0xa3, 0x05, 0xa9, 0x5c, 0x56, 0x93, 0xb6, 0xde, 0x51, 0x19, 0x7c,
- 0x6f, 0x28, 0x6b, 0xb2, 0x12, 0x25, 0x63, 0x9c, 0x86, 0x7c, 0x0c, 0xc6, 0x3c, 0x6a, 0x76, 0x0d,
- 0x1a, 0x96, 0x02, 0x5e, 0x8a, 0x5b, 0x45, 0x31, 0x91, 0x83, 0x29, 0xca, 0x3e, 0x76, 0xae, 0xfa,
- 0x40, 0x76, 0xae, 0xef, 0x15, 0x80, 0xf4, 0xfa, 0x2f, 0x93, 0x2d, 0x18, 0x72, 0xb8, 0xf5, 0x2b,
- 0x77, 0x40, 0xe4, 0x98, 0x11, 0x4d, 0x4c, 0x4b, 0x32, 0x41, 0xe2, 0x13, 0x07, 0xaa, 0xf4, 0x76,
- 0x40, 0x3d, 0x27, 0xbc, 0xcf, 0x70, 0x34, 0xc1, 0x97, 0xc5, 0x6e, 0x40, 0x22, 0x63, 0xc8, 0x43,
- 0xfb, 0x41, 0x11, 0xea, 0x31, 0xba, 0x7b, 0x6d, 0x2a, 0xf9, 0x95, 0x6a, 0x61, 0x74, 0x5a, 0xf7,
- 0x6c, 0x39, 0xc2, 0x62, 0x57, 0xaa, 0x65, 0x16, 0x2e, 0x63, 0x9c, 0x8e, 0xcc, 0x00, 0xb4, 0x75,
- 0x3f, 0xa0, 0x1e, 0x5f, 0x7d, 0x53, 0x17, 0x99, 0x57, 0xc2, 0x1c, 0x8c, 0x51, 0x91, 0x8b, 0x32,
- 0x7c, 0x76, 0x39, 0x19, 0x78, 0xae, 0x4f, 0x6c, 0xec, 0xca, 0x11, 0xc4, 0xc6, 0x26, 0x2d, 0x18,
- 0x57, 0xb5, 0x56, 0xb9, 0x87, 0x0b, 0x4b, 0x26, 0xf6, 0x2f, 0x29, 0x08, 0xec, 0x01, 0xd5, 0xde,
- 0x2e, 0xc0, 0x68, 0xc2, 0xe4, 0x21, 0x42, 0xc6, 0x29, 0xef, 0xfb, 0x44, 0xc8, 0xb8, 0x98, 0xd3,
- 0xfc, 0x93, 0x30, 0x24, 0x04, 0x94, 0x76, 0xaa, 0x13, 0x22, 0x44, 0x99, 0xcb, 0xe6, 0x32, 0x69,
- 0x54, 0x4d, 0xcf, 0x65, 0xd2, 0xea, 0x8a, 0x2a, 0x5f, 0x98, 0xdb, 0x45, 0xed, 0x7a, 0xcd, 0xed,
- 0x22, 0x1d, 0x43, 0x0a, 0xed, 0x87, 0x25, 0xe0, 0x2e, 0x28, 0xe4, 0x39, 0xa8, 0xb5, 0xa9, 0xb1,
- 0xa5, 0x3b, 0x96, 0xaf, 0x42, 0x46, 0xb2, 0xdd, 0x6d, 0x6d, 0x45, 0x25, 0xde, 0x61, 0x00, 0xb3,
- 0xcd, 0x65, 0xee, 0xe5, 0x1d, 0xd1, 0x12, 0x03, 0x86, 0x5a, 0xbe, 0xaf, 0x77, 0xac, 0xdc, 0x27,
- 0xa0, 0x22, 0x44, 0x9f, 0x18, 0x44, 0xe2, 0x19, 0x25, 0x34, 0x31, 0xa0, 0xd2, 0xb1, 0x75, 0xcb,
- 0xc9, 0xfd, 0x8f, 0x12, 0xf6, 0x05, 0xab, 0x0c, 0x49, 0x98, 0x74, 0xf8, 0x23, 0x0a, 0x6c, 0xd2,
- 0x85, 0xba, 0x6f, 0x78, 0x7a, 0xdb, 0xdf, 0xd2, 0x67, 0x9e, 0x79, 0x36, 0xb7, 0x92, 0x14, 0xb1,
- 0x12, 0x73, 0xf6, 0x1c, 0xce, 0xae, 0x34, 0xaf, 0xcc, 0xce, 0x3c, 0xf3, 0x2c, 0xc6, 0xf9, 0xc4,
- 0xd9, 0x3e, 0xf3, 0xd4, 0x8c, 0xec, 0xf7, 0x47, 0xce, 0xf6, 0x99, 0xa7, 0x66, 0x30, 0xce, 0x47,
- 0xfb, 0x8f, 0x02, 0xd4, 0x42, 0x5a, 0xb2, 0x0e, 0xc0, 0x46, 0xa0, 0x0c, 0xaa, 0x77, 0xa8, 0x00,
- 0xf7, 0x7c, 0x57, 0xbc, 0x1e, 0x16, 0xc6, 0x18, 0x50, 0x46, 0xd4, 0xc1, 0xe2, 0x51, 0x47, 0x1d,
- 0x9c, 0x86, 0xda, 0x96, 0xee, 0x98, 0xfe, 0x96, 0xbe, 0x2d, 0x26, 0xa2, 0x58, 0x1c, 0xce, 0x2b,
- 0x2a, 0x03, 0x23, 0x1a, 0xed, 0x8f, 0x87, 0x40, 0x1c, 0x5b, 0xb2, 0xa1, 0x62, 0x5a, 0xbe, 0xf0,
- 0x9b, 0x2d, 0xf0, 0x92, 0xe1, 0x50, 0x99, 0x97, 0xe9, 0x18, 0x52, 0x90, 0xb3, 0x50, 0x6a, 0x5b,
- 0x8e, 0x3c, 0xf1, 0xe0, 0x06, 0xaf, 0x15, 0xcb, 0x41, 0x96, 0xc6, 0xb3, 0xf4, 0xdb, 0xd2, 0xe5,
- 0x49, 0x64, 0xe9, 0xb7, 0x91, 0xa5, 0xb1, 0x2d, 0xa8, 0xed, 0xba, 0xdb, 0x1b, 0xba, 0xb1, 0xad,
- 0x3c, 0xa3, 0xca, 0x7c, 0x21, 0xe4, 0x5b, 0xd0, 0xe5, 0x64, 0x16, 0xa6, 0x69, 0xc9, 0x3a, 0x3c,
- 0xf2, 0x06, 0xf5, 0x5c, 0x39, 0xca, 0x9b, 0x36, 0xa5, 0x1d, 0x05, 0x23, 0x54, 0x08, 0xee, 0x60,
- 0xf5, 0x99, 0x6c, 0x12, 0xec, 0x57, 0x96, 0xbb, 0x6a, 0xea, 0x5e, 0x8b, 0x06, 0xab, 0x9e, 0x6b,
- 0x50, 0xdf, 0xb7, 0x9c, 0x96, 0x82, 0x1d, 0x8a, 0x60, 0xd7, 0xb2, 0x49, 0xb0, 0x5f, 0x59, 0xf2,
- 0x32, 0x4c, 0x88, 0x2c, 0xb1, 0xd8, 0xce, 0xee, 0xe8, 0x96, 0xad, 0x6f, 0x58, 0xb6, 0xfa, 0xe9,
- 0xd6, 0xa8, 0x38, 0x57, 0x58, 0xeb, 0x43, 0x83, 0x7d, 0x4b, 0x93, 0xab, 0x30, 0xae, 0x4e, 0x95,
- 0x56, 0xa9, 0xd7, 0x0c, 0x8f, 0xb2, 0x47, 0x1b, 0x17, 0xd8, 0x7e, 0x6f, 0x9e, 0x76, 0x3c, 0x6a,
- 0x70, 0xad, 0x2b, 0x45, 0x85, 0x3d, 0xe5, 0x08, 0xc2, 0x19, 0x7e, 0x5e, 0xbd, 0xde, 0x99, 0x73,
- 0x5d, 0xdb, 0x74, 0x6f, 0x39, 0xea, 0xdb, 0x85, 0x62, 0xc3, 0x0f, 0x92, 0x9a, 0x99, 0x14, 0xd8,
- 0xa7, 0x24, 0xfb, 0x72, 0x9e, 0x33, 0xef, 0xde, 0x72, 0xd2, 0xa8, 0x10, 0x7d, 0x79, 0xb3, 0x0f,
- 0x0d, 0xf6, 0x2d, 0x4d, 0x16, 0x80, 0xa4, 0xbf, 0x60, 0xbd, 0xc3, 0x95, 0xa1, 0xd1, 0xc6, 0x19,
- 0x11, 0x1f, 0x23, 0x9d, 0x8b, 0x19, 0x25, 0xc8, 0x32, 0x9c, 0x4e, 0xa7, 0x32, 0x76, 0xdc, 0x49,
- 0x7e, 0x54, 0x44, 0xc6, 0xc4, 0x8c, 0x7c, 0xcc, 0x2c, 0xa5, 0xfd, 0x49, 0x11, 0x46, 0x13, 0x17,
- 0xaa, 0x1f, 0xb8, 0x8b, 0xab, 0x4c, 0x03, 0x6d, 0xfb, 0xad, 0xa5, 0xf9, 0x2b, 0x54, 0x37, 0xa9,
- 0x77, 0x8d, 0xaa, 0xcb, 0xef, 0x7c, 0x52, 0x59, 0x49, 0xe4, 0x60, 0x8a, 0x92, 0x6c, 0x42, 0x45,
- 0xd8, 0x53, 0xf3, 0xfe, 0x2a, 0x41, 0xc9, 0x88, 0x1b, 0x55, 0xf9, 0x92, 0x23, 0x4c, 0xaa, 0x02,
- 0x5e, 0x0b, 0x60, 0x24, 0x4e, 0xc1, 0x26, 0x92, 0x48, 0x59, 0x1b, 0x4e, 0x28, 0x6a, 0x4b, 0x50,
- 0x0a, 0x82, 0x41, 0xaf, 0xc4, 0x0a, 0xfb, 0xfc, 0xda, 0x32, 0x32, 0x0c, 0x6d, 0x93, 0xb5, 0x9d,
- 0xef, 0x5b, 0xae, 0x23, 0xe3, 0x23, 0xaf, 0xc3, 0x70, 0x20, 0x4d, 0x54, 0x83, 0x5d, 0xe9, 0xe5,
- 0xe6, 0x62, 0x65, 0x9e, 0x52, 0x58, 0xda, 0xdf, 0x15, 0xa1, 0x16, 0x6e, 0x27, 0x0f, 0x10, 0x77,
- 0xd8, 0x85, 0x5a, 0xe8, 0x6f, 0x93, 0xfb, 0xb7, 0x67, 0x91, 0x1b, 0x08, 0xdf, 0x01, 0x85, 0xaf,
- 0x18, 0xf1, 0x88, 0xfb, 0xf2, 0x94, 0x72, 0xf8, 0xf2, 0x74, 0x60, 0x38, 0xf0, 0xac, 0x56, 0x4b,
- 0xea, 0xb6, 0x79, 0x9c, 0x79, 0x42, 0x71, 0xad, 0x09, 0x40, 0x29, 0x59, 0xf1, 0x82, 0x8a, 0x8d,
- 0xf6, 0x1a, 0x8c, 0xa7, 0x29, 0xb9, 0xe2, 0x67, 0x6c, 0x51, 0xb3, 0x6b, 0x2b, 0x19, 0x47, 0x8a,
- 0x9f, 0x4c, 0xc7, 0x90, 0x82, 0x6d, 0xfe, 0x58, 0x33, 0xbd, 0xe1, 0x3a, 0x6a, 0x5b, 0xcd, 0x75,
- 0xe8, 0x35, 0x99, 0x86, 0x61, 0xae, 0xf6, 0x2f, 0x25, 0x38, 0x1b, 0x19, 0x05, 0x56, 0x74, 0x47,
- 0x6f, 0x1d, 0xe0, 0x5f, 0x57, 0xef, 0x5f, 0x92, 0x38, 0x6c, 0xf0, 0xf8, 0xd2, 0x03, 0x10, 0x3c,
- 0xfe, 0x47, 0x05, 0xe0, 0xbe, 0x81, 0xe4, 0x0b, 0x30, 0xa2, 0xc7, 0x7e, 0x73, 0x28, 0x9b, 0xf3,
- 0x72, 0xee, 0xe6, 0xe4, 0x2e, 0x88, 0xa1, 0xaf, 0x4b, 0x3c, 0x15, 0x13, 0x0c, 0x89, 0x0b, 0xd5,
- 0x4d, 0xdd, 0xb6, 0x99, 0x2e, 0x94, 0xfb, 0x90, 0x23, 0xc1, 0x9c, 0x77, 0xf3, 0x05, 0x09, 0x8d,
- 0x21, 0x13, 0xed, 0x9f, 0x0b, 0x30, 0xda, 0xb4, 0x2d, 0xd3, 0x72, 0x5a, 0xc7, 0x18, 0x35, 0xfe,
- 0x06, 0x54, 0x7c, 0xdb, 0x32, 0xe9, 0x80, 0xf3, 0xb8, 0x58, 0x41, 0x18, 0x00, 0x0a, 0x9c, 0x64,
- 0x18, 0xfa, 0xd2, 0x01, 0xc2, 0xd0, 0xff, 0x64, 0x08, 0xa4, 0x7f, 0x29, 0xe9, 0x42, 0xad, 0xa5,
- 0xa2, 0x5b, 0xcb, 0x6f, 0xbc, 0x92, 0x23, 0x32, 0x5a, 0x22, 0x4e, 0xb6, 0x98, 0x75, 0xc3, 0x44,
- 0x8c, 0x38, 0x11, 0x9a, 0xfc, 0xb3, 0xe5, 0x7c, 0xce, 0x3f, 0x5b, 0x0a, 0x76, 0xbd, 0xff, 0xb6,
- 0xd4, 0xa1, 0xbc, 0x15, 0x04, 0x1d, 0x39, 0xae, 0x06, 0x77, 0x20, 0x8e, 0x82, 0x73, 0x08, 0x6d,
- 0x84, 0xbd, 0x23, 0x87, 0x66, 0x2c, 0x1c, 0x3d, 0xfc, 0xa1, 0xd2, 0x5c, 0xae, 0x83, 0xee, 0x38,
- 0x0b, 0xf6, 0x8e, 0x1c, 0x9a, 0x7c, 0x1e, 0xea, 0x81, 0xa7, 0x3b, 0xfe, 0xa6, 0xeb, 0xb5, 0xa9,
- 0x27, 0x77, 0x87, 0x0b, 0x39, 0x7e, 0xee, 0xb8, 0x16, 0xa1, 0x89, 0x13, 0xb4, 0x44, 0x12, 0xc6,
- 0xb9, 0x91, 0x6d, 0xa8, 0x76, 0x4d, 0x51, 0x31, 0x69, 0x36, 0x99, 0xcd, 0xf3, 0xbf, 0xce, 0xd8,
- 0x31, 0xb6, 0x7a, 0xc3, 0x90, 0x41, 0xf2, 0xdf, 0x61, 0xc3, 0x47, 0xf5, 0xef, 0xb0, 0x78, 0x6f,
- 0xcc, 0x8a, 0x1c, 0x40, 0xda, 0x52, 0xa3, 0x74, 0x5a, 0xd2, 0x0b, 0x67, 0x21, 0xb7, 0xb2, 0x27,
- 0x58, 0xd6, 0x43, 0xad, 0xd4, 0x69, 0xa1, 0xe2, 0xa1, 0xb5, 0x41, 0x5a, 0xb7, 0x89, 0x91, 0xf8,
- 0xc3, 0x86, 0xb8, 0xce, 0x32, 0x7d, 0xb0, 0xf9, 0x20, 0xfc, 0xd5, 0x43, 0x2c, 0xc2, 0x6f, 0xe6,
- 0xaf, 0x34, 0xb4, 0xbf, 0x2f, 0x42, 0x69, 0x6d, 0xb9, 0x29, 0xa2, 0xf6, 0xf1, 0xdf, 0xd7, 0xd0,
- 0xe6, 0xb6, 0xd5, 0xb9, 0x49, 0x3d, 0x6b, 0x73, 0x57, 0x6e, 0x7a, 0x63, 0x51, 0xfb, 0xd2, 0x14,
- 0x98, 0x51, 0x8a, 0xbc, 0x02, 0x23, 0x86, 0x3e, 0x47, 0xbd, 0x60, 0x90, 0x2d, 0x3d, 0xbf, 0xb7,
- 0x37, 0x37, 0x1b, 0x15, 0xc7, 0x04, 0x18, 0x59, 0x07, 0x30, 0x22, 0xe8, 0xd2, 0xa1, 0x0d, 0x11,
- 0x31, 0xe0, 0x18, 0x10, 0x41, 0xa8, 0x6d, 0x33, 0x52, 0x8e, 0x5a, 0x3e, 0x0c, 0x2a, 0xef, 0x39,
- 0xd7, 0x54, 0x59, 0x8c, 0x60, 0x34, 0x07, 0x46, 0x13, 0xbf, 0xdd, 0x20, 0x1f, 0x85, 0xaa, 0xdb,
- 0x89, 0x4d, 0xa7, 0x35, 0xee, 0xef, 0x57, 0xbd, 0x21, 0xd3, 0xee, 0xec, 0x4d, 0x8e, 0x2e, 0xbb,
- 0x2d, 0xcb, 0x50, 0x09, 0x18, 0x92, 0x13, 0x0d, 0x86, 0xf8, 0x65, 0x1b, 0xf5, 0xd3, 0x0d, 0xbe,
- 0x76, 0xf0, 0xb8, 0xf8, 0x3e, 0xca, 0x1c, 0xed, 0x8b, 0x65, 0x88, 0xce, 0x84, 0x88, 0x0f, 0x43,
- 0xc2, 0x99, 0x58, 0xce, 0xdc, 0xc7, 0xea, 0xb7, 0x2c, 0x59, 0x91, 0x16, 0x94, 0x5e, 0x73, 0x37,
- 0x72, 0x4f, 0xdc, 0xb1, 0x5b, 0xb6, 0xc2, 0x4a, 0x15, 0x4b, 0x40, 0xc6, 0x81, 0xfc, 0x5a, 0x01,
- 0x4e, 0xfa, 0x69, 0xa5, 0x53, 0x76, 0x07, 0xcc, 0xaf, 0x5d, 0xa7, 0xd5, 0x58, 0xe9, 0x98, 0xd9,
- 0x2f, 0x1b, 0x7b, 0xeb, 0xc2, 0xe4, 0x2f, 0x0e, 0x6b, 0x64, 0x77, 0x5a, 0xcc, 0xf9, 0xab, 0xb8,
- 0xa4, 0xfc, 0x93, 0x69, 0x28, 0x59, 0x69, 0x5f, 0x2e, 0x42, 0x3d, 0x36, 0x5b, 0xe7, 0xfe, 0x97,
- 0xcb, 0xed, 0xd4, 0xbf, 0x5c, 0x56, 0x07, 0x3f, 0xbb, 0x8c, 0x6a, 0x75, 0xdc, 0xbf, 0x73, 0xf9,
- 0xf3, 0x22, 0x94, 0xd6, 0xe7, 0x17, 0x92, 0xdb, 0xc5, 0xc2, 0x7d, 0xd8, 0x2e, 0x6e, 0xc1, 0xf0,
- 0x46, 0xd7, 0xb2, 0x03, 0xcb, 0xc9, 0x1d, 0x07, 0x40, 0xfd, 0xfa, 0x46, 0x5e, 0xa7, 0x15, 0xa8,
- 0xa8, 0xe0, 0x49, 0x0b, 0x86, 0x5b, 0x22, 0x10, 0x5b, 0x6e, 0x8f, 0x2e, 0x19, 0xd0, 0x4d, 0x30,
- 0x92, 0x2f, 0xa8, 0xd0, 0xb5, 0x5d, 0x90, 0x3f, 0xcf, 0xbe, 0xef, 0xd2, 0xd4, 0x3e, 0x0f, 0xa1,
- 0x16, 0x70, 0xff, 0x99, 0xff, 0x5b, 0x01, 0x92, 0x8a, 0xcf, 0xfd, 0xef, 0x4d, 0xdb, 0xe9, 0xde,
- 0x34, 0x7f, 0x14, 0x83, 0x2f, 0xbb, 0x43, 0x69, 0x7f, 0x58, 0x84, 0xa1, 0xfb, 0x76, 0x77, 0x93,
- 0x26, 0x9c, 0xd3, 0xe6, 0x72, 0x4e, 0x8c, 0x7d, 0x5d, 0xd3, 0xda, 0x29, 0xd7, 0xb4, 0xbc, 0x3f,
- 0xeb, 0xbc, 0x87, 0x63, 0xda, 0x5f, 0x17, 0x40, 0x4e, 0xcb, 0x4b, 0x8e, 0x1f, 0xe8, 0x8e, 0xc1,
- 0xff, 0x19, 0x2f, 0xd7, 0x80, 0xbc, 0x1e, 0x10, 0xd2, 0x4b, 0x48, 0x2c, 0xfb, 0xfc, 0x59, 0xcd,
- 0xf9, 0xe4, 0xc3, 0x50, 0xdd, 0x72, 0xfd, 0x80, 0xcf, 0xf3, 0xc5, 0xa4, 0x5d, 0xe7, 0x8a, 0x4c,
- 0xc7, 0x90, 0x22, 0x7d, 0x52, 0x58, 0xe9, 0x7f, 0x52, 0xa8, 0x7d, 0xb3, 0x08, 0x23, 0xef, 0x95,
- 0x0b, 0xa8, 0x59, 0xae, 0x7c, 0xa5, 0x9c, 0xae, 0x7c, 0xe5, 0xc3, 0xb8, 0xf2, 0x69, 0xdf, 0x29,
- 0x00, 0xdc, 0xb7, 0xdb, 0xaf, 0x66, 0xd2, 0xcb, 0x2e, 0x77, 0xbf, 0xca, 0xf6, 0xb1, 0xfb, 0xbd,
- 0x8a, 0xfa, 0x24, 0xee, 0x61, 0xf7, 0x66, 0x01, 0xc6, 0xf4, 0x84, 0xd7, 0x5a, 0x6e, 0xd5, 0x32,
- 0xe5, 0x04, 0x17, 0xde, 0xf4, 0x4b, 0xa6, 0x63, 0x8a, 0x2d, 0x79, 0x3e, 0x8a, 0xbc, 0x7a, 0x3d,
- 0xea, 0xf6, 0x3d, 0x21, 0x53, 0xb9, 0x9a, 0x93, 0xa0, 0xbc, 0x87, 0x97, 0x60, 0xe9, 0x48, 0xbc,
- 0x04, 0xe3, 0xf7, 0x9f, 0xca, 0x77, 0xbd, 0xff, 0xb4, 0x03, 0xb5, 0x4d, 0xcf, 0x6d, 0x73, 0x47,
- 0x3c, 0xf9, 0x9b, 0xcf, 0xcb, 0x39, 0xd6, 0x94, 0xe8, 0x07, 0xd7, 0x91, 0x8d, 0x67, 0x41, 0xe1,
- 0x63, 0xc4, 0x8a, 0x1b, 0xa4, 0x5d, 0xc1, 0x75, 0xe8, 0x28, 0xb9, 0x86, 0x73, 0xc9, 0x9a, 0x40,
- 0x47, 0xc5, 0x26, 0xe9, 0x7c, 0x37, 0x7c, 0x7f, 0x9c, 0xef, 0xb4, 0x5f, 0x28, 0xab, 0x09, 0xec,
- 0x81, 0x0b, 0xf2, 0xf7, 0xde, 0xbf, 0x35, 0x99, 0xbe, 0xd2, 0x38, 0x7c, 0x1f, 0xaf, 0x34, 0x56,
- 0x07, 0x72, 0xf5, 0xda, 0x2b, 0x41, 0x6a, 0xdf, 0xf4, 0xfe, 0xe9, 0xc4, 0x7f, 0xa9, 0xd3, 0x89,
- 0xb7, 0x8a, 0x10, 0x4d, 0x04, 0x87, 0xf4, 0xde, 0x78, 0x19, 0xaa, 0x6d, 0xfd, 0xf6, 0x3c, 0xb5,
- 0xf5, 0xdd, 0x3c, 0xff, 0x66, 0x5c, 0x91, 0x18, 0x18, 0xa2, 0x11, 0x1f, 0xc0, 0x0a, 0xe3, 0x23,
- 0xe7, 0xb6, 0x36, 0x47, 0xa1, 0x96, 0x85, 0x3d, 0x2b, 0x7a, 0xc7, 0x18, 0x1b, 0xed, 0xaf, 0x8a,
- 0x20, 0x03, 0x69, 0x13, 0x0a, 0x95, 0x4d, 0xeb, 0x36, 0x35, 0x73, 0x7b, 0x32, 0xc6, 0xfe, 0x98,
- 0x2b, 0xcc, 0xe9, 0x3c, 0x01, 0x05, 0x3a, 0xb7, 0x93, 0x8a, 0xe3, 0x11, 0x29, 0xbf, 0x1c, 0x76,
- 0xd2, 0xf8, 0x31, 0x8b, 0xb4, 0x93, 0x8a, 0x24, 0x54, 0x3c, 0x84, 0x59, 0x96, 0x9f, 0x51, 0x4b,
- 0x91, 0xe6, 0x31, 0xcb, 0xc6, 0xce, 0xba, 0x95, 0x59, 0xd6, 0x17, 0x77, 0x9a, 0x25, 0x8f, 0xc6,
- 0x67, 0xbf, 0xfd, 0xdd, 0x0b, 0x0f, 0x7d, 0xe7, 0xbb, 0x17, 0x1e, 0x7a, 0xe7, 0xbb, 0x17, 0x1e,
- 0xfa, 0xe2, 0xfe, 0x85, 0xc2, 0xb7, 0xf7, 0x2f, 0x14, 0xbe, 0xb3, 0x7f, 0xa1, 0xf0, 0xce, 0xfe,
- 0x85, 0xc2, 0x3f, 0xee, 0x5f, 0x28, 0xfc, 0xf2, 0x3f, 0x5d, 0x78, 0xe8, 0x33, 0xcf, 0x45, 0x55,
- 0x98, 0x56, 0x55, 0x98, 0x56, 0x0c, 0xa7, 0x3b, 0xdb, 0xad, 0x69, 0x56, 0x85, 0x28, 0x45, 0x55,
- 0xe1, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x9c, 0x8e, 0xe2, 0xbf, 0x92, 0x00, 0x00,
+ // 7464 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x1d, 0xd7,
+ 0x75, 0xae, 0xcf, 0x1f, 0x79, 0xce, 0x3a, 0x24, 0x45, 0x6d, 0xc9, 0x32, 0x25, 0xcb, 0xa2, 0x32,
+ 0x8e, 0x7d, 0x95, 0x9b, 0x84, 0xbc, 0xe6, 0xf5, 0x5f, 0x72, 0x93, 0xd8, 0x3c, 0xa4, 0x48, 0x51,
+ 0x22, 0x25, 0x66, 0x1d, 0x52, 0x76, 0xe2, 0x9b, 0xf8, 0x0e, 0x67, 0x36, 0x0f, 0xc7, 0x9c, 0x33,
+ 0x73, 0x3c, 0x33, 0x87, 0x12, 0x9d, 0x7b, 0x91, 0xbf, 0x07, 0xfb, 0xa2, 0x2d, 0x5a, 0xe4, 0x29,
+ 0x40, 0x91, 0x16, 0x2d, 0x0a, 0xe4, 0x21, 0x48, 0x1f, 0x0a, 0xb8, 0x0f, 0x05, 0xfa, 0x93, 0xa2,
+ 0x68, 0xd3, 0xa2, 0x3f, 0x79, 0x28, 0x50, 0xf7, 0x85, 0x68, 0x58, 0xf4, 0xa1, 0x05, 0x1a, 0x04,
+ 0x0d, 0xd0, 0x24, 0x42, 0x80, 0x14, 0xfb, 0x6f, 0xfe, 0xce, 0x1c, 0x89, 0x3c, 0x43, 0xca, 0x72,
+ 0xeb, 0xb7, 0x99, 0xbd, 0xd7, 0xfe, 0xd6, 0xde, 0x6b, 0xf6, 0xcf, 0xda, 0x6b, 0xaf, 0xbd, 0x06,
+ 0x16, 0x5b, 0x56, 0xb0, 0xd5, 0xdd, 0x98, 0x32, 0xdc, 0xf6, 0xb4, 0xd3, 0x6d, 0xeb, 0x1d, 0xcf,
+ 0x7d, 0x8d, 0x3f, 0x6c, 0xda, 0xee, 0xad, 0xe9, 0xce, 0x76, 0x6b, 0x5a, 0xef, 0x58, 0x7e, 0x94,
+ 0xb2, 0xf3, 0x94, 0x6e, 0x77, 0xb6, 0xf4, 0xa7, 0xa6, 0x5b, 0xd4, 0xa1, 0x9e, 0x1e, 0x50, 0x73,
+ 0xaa, 0xe3, 0xb9, 0x81, 0x4b, 0x9e, 0x8b, 0x80, 0xa6, 0x14, 0xd0, 0x94, 0x2a, 0x36, 0xd5, 0xd9,
+ 0x6e, 0x4d, 0x31, 0xa0, 0x28, 0x45, 0x01, 0x9d, 0xfb, 0x68, 0xac, 0x06, 0x2d, 0xb7, 0xe5, 0x4e,
+ 0x73, 0xbc, 0x8d, 0xee, 0x26, 0x7f, 0xe3, 0x2f, 0xfc, 0x49, 0xf0, 0x39, 0xa7, 0x6d, 0x3f, 0xef,
+ 0x4f, 0x59, 0x2e, 0xab, 0xd6, 0xb4, 0xe1, 0x7a, 0x74, 0x7a, 0xa7, 0xa7, 0x2e, 0xe7, 0x9e, 0x8e,
+ 0x68, 0xda, 0xba, 0xb1, 0x65, 0x39, 0xd4, 0xdb, 0x55, 0x6d, 0x99, 0xf6, 0xa8, 0xef, 0x76, 0x3d,
+ 0x83, 0x1e, 0xaa, 0x94, 0x3f, 0xdd, 0xa6, 0x81, 0x9e, 0xc5, 0x6b, 0xba, 0x5f, 0x29, 0xaf, 0xeb,
+ 0x04, 0x56, 0xbb, 0x97, 0xcd, 0xb3, 0xf7, 0x2a, 0xe0, 0x1b, 0x5b, 0xb4, 0xad, 0xa7, 0xcb, 0x69,
+ 0xdf, 0x01, 0x38, 0x35, 0xbb, 0xe1, 0x07, 0x9e, 0x6e, 0x04, 0xab, 0xae, 0xb9, 0x46, 0xdb, 0x1d,
+ 0x5b, 0x0f, 0x28, 0xd9, 0x86, 0x2a, 0xab, 0x9b, 0xa9, 0x07, 0xfa, 0x44, 0xe1, 0x62, 0xe1, 0x52,
+ 0x7d, 0x66, 0x76, 0x6a, 0xc0, 0x6f, 0x31, 0xb5, 0x22, 0x81, 0x1a, 0x23, 0xfb, 0x7b, 0x93, 0x55,
+ 0xf5, 0x86, 0x21, 0x03, 0xf2, 0xf5, 0x02, 0x8c, 0x38, 0xae, 0x49, 0x9b, 0xd4, 0xa6, 0x46, 0xe0,
+ 0x7a, 0x13, 0xc5, 0x8b, 0xa5, 0x4b, 0xf5, 0x99, 0xcf, 0x0f, 0xcc, 0x31, 0xa3, 0x45, 0x53, 0xd7,
+ 0x63, 0x0c, 0x2e, 0x3b, 0x81, 0xb7, 0xdb, 0x38, 0xfd, 0xdd, 0xbd, 0xc9, 0x87, 0xf6, 0xf7, 0x26,
+ 0x47, 0xe2, 0x59, 0x98, 0xa8, 0x09, 0x59, 0x87, 0x7a, 0xe0, 0xda, 0x4c, 0x64, 0x96, 0xeb, 0xf8,
+ 0x13, 0x25, 0x5e, 0xb1, 0x0b, 0x53, 0x42, 0xda, 0x8c, 0xfd, 0x14, 0xeb, 0x2e, 0x53, 0x3b, 0x4f,
+ 0x4d, 0xad, 0x85, 0x64, 0x8d, 0x53, 0x12, 0xb8, 0x1e, 0xa5, 0xf9, 0x18, 0xc7, 0x21, 0x14, 0x4e,
+ 0xf8, 0xd4, 0xe8, 0x7a, 0x56, 0xb0, 0x3b, 0xe7, 0x3a, 0x01, 0xbd, 0x1d, 0x4c, 0x94, 0xb9, 0x94,
+ 0x9f, 0xcc, 0x82, 0x5e, 0x75, 0xcd, 0x66, 0x92, 0xba, 0x71, 0x6a, 0x7f, 0x6f, 0xf2, 0x44, 0x2a,
+ 0x11, 0xd3, 0x98, 0xc4, 0x81, 0x71, 0xab, 0xad, 0xb7, 0xe8, 0x6a, 0xd7, 0xb6, 0x9b, 0xd4, 0xf0,
+ 0x68, 0xe0, 0x4f, 0x54, 0x78, 0x13, 0x2e, 0x65, 0xf1, 0x59, 0x76, 0x0d, 0xdd, 0xbe, 0xb1, 0xf1,
+ 0x1a, 0x35, 0x02, 0xa4, 0x9b, 0xd4, 0xa3, 0x8e, 0x41, 0x1b, 0x13, 0xb2, 0x31, 0xe3, 0x4b, 0x29,
+ 0x24, 0xec, 0xc1, 0x26, 0x8b, 0x70, 0xb2, 0xe3, 0x59, 0x2e, 0xaf, 0x82, 0xad, 0xfb, 0xfe, 0x75,
+ 0xbd, 0x4d, 0x27, 0x86, 0x2e, 0x16, 0x2e, 0xd5, 0x1a, 0x67, 0x25, 0xcc, 0xc9, 0xd5, 0x34, 0x01,
+ 0xf6, 0x96, 0x21, 0x97, 0xa0, 0xaa, 0x12, 0x27, 0x86, 0x2f, 0x16, 0x2e, 0x55, 0x44, 0xdf, 0x51,
+ 0x65, 0x31, 0xcc, 0x25, 0x0b, 0x50, 0xd5, 0x37, 0x37, 0x2d, 0x87, 0x51, 0x56, 0xb9, 0x08, 0xcf,
+ 0x67, 0x35, 0x6d, 0x56, 0xd2, 0x08, 0x1c, 0xf5, 0x86, 0x61, 0x59, 0x72, 0x15, 0x88, 0x4f, 0xbd,
+ 0x1d, 0xcb, 0xa0, 0xb3, 0x86, 0xe1, 0x76, 0x9d, 0x80, 0xd7, 0xbd, 0xc6, 0xeb, 0x7e, 0x4e, 0xd6,
+ 0x9d, 0x34, 0x7b, 0x28, 0x30, 0xa3, 0x14, 0x79, 0x11, 0xc6, 0xe5, 0xb0, 0x8b, 0xa4, 0x00, 0x1c,
+ 0xe9, 0x34, 0x13, 0x24, 0xa6, 0xf2, 0xb0, 0x87, 0x9a, 0x98, 0x70, 0x5e, 0xef, 0x06, 0x6e, 0x9b,
+ 0x41, 0x26, 0x99, 0xae, 0xb9, 0xdb, 0xd4, 0x99, 0xa8, 0x5f, 0x2c, 0x5c, 0xaa, 0x36, 0x2e, 0xee,
+ 0xef, 0x4d, 0x9e, 0x9f, 0xbd, 0x0b, 0x1d, 0xde, 0x15, 0x85, 0xdc, 0x80, 0x9a, 0xe9, 0xf8, 0xab,
+ 0xae, 0x6d, 0x19, 0xbb, 0x13, 0x23, 0xbc, 0x82, 0x4f, 0xc9, 0xa6, 0xd6, 0xe6, 0xaf, 0x37, 0x45,
+ 0xc6, 0x9d, 0xbd, 0xc9, 0xf3, 0xbd, 0xb3, 0xe3, 0x54, 0x98, 0x8f, 0x11, 0x06, 0x59, 0xe1, 0x80,
+ 0x73, 0xae, 0xb3, 0x69, 0xb5, 0x26, 0x46, 0xf9, 0xd7, 0xb8, 0xd8, 0xa7, 0x43, 0xcf, 0x5f, 0x6f,
+ 0x0a, 0xba, 0xc6, 0xa8, 0x64, 0x27, 0x5e, 0x31, 0x42, 0x20, 0x26, 0x8c, 0xa9, 0x79, 0x75, 0xce,
+ 0xd6, 0xad, 0xb6, 0x3f, 0x31, 0xc6, 0x3b, 0xef, 0x07, 0xfb, 0x60, 0x62, 0x9c, 0xb8, 0x71, 0x46,
+ 0x36, 0x65, 0x2c, 0x91, 0xec, 0x63, 0x0a, 0xf3, 0xdc, 0x0b, 0x70, 0xb2, 0x67, 0x6e, 0x20, 0xe3,
+ 0x50, 0xda, 0xa6, 0xbb, 0x7c, 0xea, 0xab, 0x21, 0x7b, 0x24, 0xa7, 0xa1, 0xb2, 0xa3, 0xdb, 0x5d,
+ 0x3a, 0x51, 0xe4, 0x69, 0xe2, 0xe5, 0xe3, 0xc5, 0xe7, 0x0b, 0xda, 0x6f, 0x96, 0x60, 0x44, 0xcd,
+ 0x38, 0x4d, 0xcb, 0xd9, 0x26, 0x2f, 0x41, 0xc9, 0x76, 0x5b, 0x72, 0xde, 0xfc, 0xc4, 0xc0, 0xb3,
+ 0xd8, 0xb2, 0xdb, 0x6a, 0x0c, 0xef, 0xef, 0x4d, 0x96, 0x96, 0xdd, 0x16, 0x32, 0x44, 0x62, 0x40,
+ 0x65, 0x5b, 0xdf, 0xdc, 0xd6, 0x79, 0x1d, 0xea, 0x33, 0x8d, 0x81, 0xa1, 0xaf, 0x31, 0x14, 0x56,
+ 0xd7, 0x46, 0x6d, 0x7f, 0x6f, 0xb2, 0xc2, 0x5f, 0x51, 0x60, 0x13, 0x17, 0x6a, 0x1b, 0xb6, 0x6e,
+ 0x6c, 0x6f, 0xb9, 0x36, 0x9d, 0x28, 0xe5, 0x64, 0xd4, 0x50, 0x48, 0xe2, 0x33, 0x87, 0xaf, 0x18,
+ 0xf1, 0x20, 0x06, 0x0c, 0x75, 0x4d, 0xdf, 0x72, 0xb6, 0xe5, 0x1c, 0xf8, 0xc2, 0xc0, 0xdc, 0xd6,
+ 0xe7, 0x79, 0x9b, 0x60, 0x7f, 0x6f, 0x72, 0x48, 0x3c, 0xa3, 0x84, 0xd6, 0x7e, 0x50, 0x87, 0x31,
+ 0xf5, 0x91, 0x6e, 0x52, 0x2f, 0xa0, 0xb7, 0xc9, 0x45, 0x28, 0x3b, 0x6c, 0x68, 0xf2, 0x8f, 0xdc,
+ 0x18, 0x91, 0xdd, 0xa5, 0xcc, 0x87, 0x24, 0xcf, 0x61, 0x35, 0x13, 0x5d, 0x45, 0x0a, 0x7c, 0xf0,
+ 0x9a, 0x35, 0x39, 0x8c, 0xa8, 0x99, 0x78, 0x46, 0x09, 0x4d, 0x5e, 0x81, 0x32, 0x6f, 0xbc, 0x10,
+ 0xf5, 0x27, 0x07, 0x67, 0xc1, 0x9a, 0x5e, 0x65, 0x2d, 0xe0, 0x0d, 0xe7, 0xa0, 0xac, 0x2b, 0x76,
+ 0xcd, 0x4d, 0x29, 0xd8, 0x4f, 0xe4, 0x10, 0xec, 0x82, 0xe8, 0x8a, 0xeb, 0xf3, 0x0b, 0xc8, 0x10,
+ 0xc9, 0x2f, 0x17, 0xe0, 0xa4, 0xe1, 0x3a, 0x81, 0xce, 0x54, 0x0d, 0xb5, 0xc8, 0x4e, 0x54, 0x38,
+ 0x9f, 0xab, 0x03, 0xf3, 0x99, 0x4b, 0x23, 0x36, 0x1e, 0x66, 0x6b, 0x46, 0x4f, 0x32, 0xf6, 0xf2,
+ 0x26, 0xbf, 0x5a, 0x80, 0x87, 0xd9, 0x5c, 0xde, 0x43, 0xcc, 0x57, 0xa0, 0xa3, 0xad, 0xd5, 0xd9,
+ 0xfd, 0xbd, 0xc9, 0x87, 0x97, 0xb2, 0x98, 0x61, 0x76, 0x1d, 0x58, 0xed, 0x4e, 0xe9, 0xbd, 0x6a,
+ 0x09, 0x5f, 0xdd, 0xea, 0x33, 0xcb, 0x47, 0xa9, 0xea, 0x34, 0x1e, 0x95, 0x5d, 0x39, 0x4b, 0xb3,
+ 0xc3, 0xac, 0x5a, 0x90, 0xcb, 0x30, 0xbc, 0xe3, 0xda, 0xdd, 0x36, 0xf5, 0x27, 0xaa, 0x7c, 0x8a,
+ 0x3d, 0x97, 0x35, 0xc5, 0xde, 0xe4, 0x24, 0x8d, 0x13, 0x12, 0x7e, 0x58, 0xbc, 0xfb, 0xa8, 0xca,
+ 0x12, 0x0b, 0x86, 0x6c, 0xab, 0x6d, 0x05, 0x3e, 0x5f, 0x38, 0xeb, 0x33, 0x97, 0x07, 0x6e, 0x96,
+ 0x18, 0xa2, 0xcb, 0x1c, 0x4c, 0x8c, 0x1a, 0xf1, 0x8c, 0x92, 0x01, 0x9b, 0x0a, 0x7d, 0x43, 0xb7,
+ 0xc5, 0xc2, 0x5a, 0x9f, 0xf9, 0xd4, 0xe0, 0xc3, 0x86, 0xa1, 0x34, 0x46, 0x65, 0x9b, 0x2a, 0xfc,
+ 0x15, 0x05, 0x36, 0xf9, 0x1c, 0x8c, 0x25, 0xbe, 0xa6, 0x3f, 0x51, 0xe7, 0xd2, 0x79, 0x2c, 0x4b,
+ 0x3a, 0x21, 0x55, 0xb4, 0xf2, 0x24, 0x7a, 0x88, 0x8f, 0x29, 0x30, 0x72, 0x0d, 0xaa, 0xbe, 0x65,
+ 0x52, 0x43, 0xf7, 0xfc, 0x89, 0x91, 0x83, 0x00, 0x8f, 0x4b, 0xe0, 0x6a, 0x53, 0x16, 0xc3, 0x10,
+ 0x80, 0x4c, 0x01, 0x74, 0x74, 0x2f, 0xb0, 0x84, 0xa2, 0x3a, 0xca, 0x95, 0xa6, 0xb1, 0xfd, 0xbd,
+ 0x49, 0x58, 0x0d, 0x53, 0x31, 0x46, 0xc1, 0xe8, 0x59, 0xd9, 0x25, 0xa7, 0xd3, 0x0d, 0xc4, 0xc2,
+ 0x5a, 0x13, 0xf4, 0xcd, 0x30, 0x15, 0x63, 0x14, 0xe4, 0xdb, 0x05, 0x78, 0x34, 0x7a, 0xed, 0x1d,
+ 0x64, 0x27, 0x8e, 0x7c, 0x90, 0x4d, 0xee, 0xef, 0x4d, 0x3e, 0xda, 0xec, 0xcf, 0x12, 0xef, 0x56,
+ 0x1f, 0xed, 0x25, 0x18, 0x9d, 0xed, 0x06, 0x5b, 0xae, 0x67, 0xbd, 0xc1, 0x95, 0x6e, 0xb2, 0x00,
+ 0x95, 0x80, 0x2b, 0x4f, 0x62, 0x5d, 0x7e, 0x22, 0x4b, 0xd4, 0x42, 0x91, 0xbd, 0x46, 0x77, 0x95,
+ 0x36, 0x20, 0xd6, 0x47, 0xa1, 0x4c, 0x89, 0xe2, 0xda, 0x6f, 0x14, 0xa0, 0xd6, 0xd0, 0x7d, 0xcb,
+ 0x60, 0xf0, 0x64, 0x0e, 0xca, 0x5d, 0x9f, 0x7a, 0x87, 0x03, 0xe5, 0xb3, 0xf4, 0xba, 0x4f, 0x3d,
+ 0xe4, 0x85, 0xc9, 0x0d, 0xa8, 0x76, 0x74, 0xdf, 0xbf, 0xe5, 0x7a, 0xa6, 0x5c, 0x69, 0x0e, 0x08,
+ 0x24, 0xb4, 0x62, 0x59, 0x14, 0x43, 0x10, 0xad, 0x0e, 0xd1, 0x52, 0xab, 0xfd, 0xa8, 0x00, 0xa7,
+ 0x1a, 0xdd, 0xcd, 0x4d, 0xea, 0x49, 0x25, 0x50, 0xaa, 0x57, 0x14, 0x2a, 0x1e, 0x35, 0x2d, 0x5f,
+ 0xd6, 0x7d, 0x7e, 0xe0, 0x4f, 0x87, 0x0c, 0x45, 0x6a, 0x73, 0x5c, 0x5e, 0x3c, 0x01, 0x05, 0x3a,
+ 0xe9, 0x42, 0xed, 0x35, 0x1a, 0xf8, 0x81, 0x47, 0xf5, 0xb6, 0x6c, 0xdd, 0x95, 0x81, 0x59, 0x5d,
+ 0xa5, 0x41, 0x93, 0x23, 0xc5, 0x95, 0xc7, 0x30, 0x11, 0x23, 0x4e, 0xda, 0x77, 0x2a, 0x30, 0x32,
+ 0xe7, 0xb6, 0x37, 0x2c, 0x87, 0x9a, 0x97, 0xcd, 0x16, 0x25, 0xaf, 0x42, 0x99, 0x9a, 0x2d, 0x2a,
+ 0x5b, 0x3b, 0xf8, 0x3a, 0xcb, 0xc0, 0x22, 0x6d, 0x81, 0xbd, 0x21, 0x07, 0x26, 0xcb, 0x30, 0xb6,
+ 0xe9, 0xb9, 0x6d, 0x31, 0x75, 0xad, 0xed, 0x76, 0xa4, 0xaa, 0xd8, 0xf8, 0xa0, 0x9a, 0x0e, 0x16,
+ 0x12, 0xb9, 0x77, 0xf6, 0x26, 0x21, 0x7a, 0xc3, 0x54, 0x59, 0xf2, 0x32, 0x4c, 0x44, 0x29, 0xe1,
+ 0x18, 0x9e, 0x63, 0xda, 0x3b, 0x57, 0x15, 0x2a, 0x8d, 0xf3, 0xfb, 0x7b, 0x93, 0x13, 0x0b, 0x7d,
+ 0x68, 0xb0, 0x6f, 0x69, 0xf2, 0x66, 0x01, 0xc6, 0xa3, 0x4c, 0x31, 0xaf, 0x4a, 0x0d, 0xe1, 0x88,
+ 0x26, 0x6c, 0xbe, 0xcd, 0x59, 0x48, 0xb1, 0xc0, 0x1e, 0xa6, 0x64, 0x01, 0x46, 0x02, 0x37, 0x26,
+ 0xaf, 0x0a, 0x97, 0x97, 0xa6, 0xf6, 0xe5, 0x6b, 0x6e, 0x5f, 0x69, 0x25, 0xca, 0x11, 0x84, 0x33,
+ 0xea, 0x3d, 0x25, 0xa9, 0x21, 0x2e, 0xa9, 0x73, 0xfb, 0x7b, 0x93, 0x67, 0xd6, 0x32, 0x29, 0xb0,
+ 0x4f, 0x49, 0xf2, 0xe5, 0x02, 0x8c, 0xa9, 0x2c, 0x29, 0xa3, 0xe1, 0xa3, 0x94, 0x11, 0x61, 0x3d,
+ 0x62, 0x2d, 0xc1, 0x00, 0x53, 0x0c, 0xb5, 0x9f, 0x94, 0xa1, 0x16, 0xce, 0x6c, 0xe4, 0x71, 0xa8,
+ 0xf0, 0x1d, 0xb7, 0x54, 0x58, 0xc3, 0x25, 0x8b, 0x6f, 0xcc, 0x51, 0xe4, 0x91, 0x27, 0x60, 0xd8,
+ 0x70, 0xdb, 0x6d, 0xdd, 0x31, 0xb9, 0x15, 0xa5, 0xd6, 0xa8, 0xb3, 0x95, 0x7a, 0x4e, 0x24, 0xa1,
+ 0xca, 0x23, 0xe7, 0xa1, 0xac, 0x7b, 0x2d, 0x61, 0xd0, 0xa8, 0x89, 0xf9, 0x68, 0xd6, 0x6b, 0xf9,
+ 0xc8, 0x53, 0xc9, 0xc7, 0xa0, 0x44, 0x9d, 0x9d, 0x89, 0x72, 0x7f, 0x55, 0xe0, 0xb2, 0xb3, 0x73,
+ 0x53, 0xf7, 0x1a, 0x75, 0x59, 0x87, 0xd2, 0x65, 0x67, 0x07, 0x59, 0x19, 0xb2, 0x0c, 0xc3, 0xd4,
+ 0xd9, 0x61, 0xdf, 0x5e, 0x5a, 0x1a, 0x3e, 0xd0, 0xa7, 0x38, 0x23, 0x91, 0x5a, 0x71, 0xa8, 0x50,
+ 0xc8, 0x64, 0x54, 0x10, 0xe4, 0x33, 0x30, 0x22, 0x74, 0x8b, 0x15, 0xf6, 0x4d, 0xfc, 0x89, 0x21,
+ 0x0e, 0x39, 0xd9, 0x5f, 0x39, 0xe1, 0x74, 0x91, 0x65, 0x27, 0x96, 0xe8, 0x63, 0x02, 0x8a, 0x7c,
+ 0x06, 0x6a, 0x6a, 0x23, 0xa8, 0xbe, 0x6c, 0xa6, 0x51, 0x44, 0xed, 0x1e, 0x91, 0xbe, 0xde, 0xb5,
+ 0x3c, 0xda, 0xa6, 0x4e, 0xe0, 0x37, 0x4e, 0xaa, 0x6d, 0xb2, 0xca, 0xf5, 0x31, 0x42, 0x23, 0x1b,
+ 0xbd, 0xd6, 0x1d, 0x61, 0x9a, 0x78, 0xbc, 0xcf, 0xac, 0x3e, 0x80, 0x69, 0xe7, 0xf3, 0x70, 0x22,
+ 0x34, 0xbf, 0xc8, 0x1d, 0xbc, 0x30, 0x56, 0x3c, 0xcd, 0x8a, 0x2f, 0x25, 0xb3, 0xee, 0xec, 0x4d,
+ 0x3e, 0x96, 0xb1, 0x87, 0x8f, 0x08, 0x30, 0x0d, 0xa6, 0xfd, 0x61, 0x09, 0x7a, 0xd5, 0xee, 0xa4,
+ 0xd0, 0x0a, 0x47, 0x2d, 0xb4, 0x74, 0x83, 0xc4, 0xf4, 0xf9, 0xbc, 0x2c, 0x96, 0xbf, 0x51, 0x59,
+ 0x1f, 0xa6, 0x74, 0xd4, 0x1f, 0xe6, 0x41, 0x19, 0x3b, 0xda, 0x5b, 0x65, 0x18, 0x9b, 0xd7, 0x69,
+ 0xdb, 0x75, 0xee, 0xb9, 0x09, 0x29, 0x3c, 0x10, 0x9b, 0x90, 0x4b, 0x50, 0xf5, 0x68, 0xc7, 0xb6,
+ 0x0c, 0xdd, 0xe7, 0x9f, 0x5e, 0x1a, 0xfd, 0x50, 0xa6, 0x61, 0x98, 0xdb, 0x67, 0xf3, 0x59, 0x7a,
+ 0x20, 0x37, 0x9f, 0xe5, 0x77, 0x7f, 0xf3, 0xa9, 0x7d, 0xb9, 0x08, 0x5c, 0x51, 0x21, 0x17, 0xa1,
+ 0xcc, 0x16, 0xe1, 0xb4, 0xc9, 0x83, 0x77, 0x1c, 0x9e, 0x43, 0xce, 0x41, 0x31, 0x70, 0xe5, 0xc8,
+ 0x03, 0x99, 0x5f, 0x5c, 0x73, 0xb1, 0x18, 0xb8, 0xe4, 0x0d, 0x00, 0xc3, 0x75, 0x4c, 0x4b, 0xd9,
+ 0xc2, 0xf3, 0x35, 0x6c, 0xc1, 0xf5, 0x6e, 0xe9, 0x9e, 0x39, 0x17, 0x22, 0x8a, 0xed, 0x47, 0xf4,
+ 0x8e, 0x31, 0x6e, 0xe4, 0x05, 0x18, 0x72, 0x9d, 0x85, 0xae, 0x6d, 0x73, 0x81, 0xd6, 0x1a, 0xff,
+ 0x8d, 0xed, 0x09, 0x6f, 0xf0, 0x94, 0x3b, 0x7b, 0x93, 0x67, 0x85, 0x7e, 0xcb, 0xde, 0x5e, 0xf2,
+ 0xac, 0xc0, 0x72, 0x5a, 0xcd, 0xc0, 0xd3, 0x03, 0xda, 0xda, 0x45, 0x59, 0x4c, 0xfb, 0x5a, 0x01,
+ 0xea, 0x0b, 0xd6, 0x6d, 0x6a, 0xbe, 0x64, 0x39, 0xa6, 0x7b, 0x8b, 0x20, 0x0c, 0xd9, 0xd4, 0x69,
+ 0x05, 0x5b, 0xb2, 0xf7, 0x4f, 0xc5, 0xc6, 0x5a, 0x78, 0x84, 0x12, 0xd5, 0xbf, 0x4d, 0x03, 0x9d,
+ 0x8d, 0xbe, 0xf9, 0xae, 0x34, 0xf2, 0x8b, 0x4d, 0x29, 0x47, 0x40, 0x89, 0x44, 0xa6, 0xa1, 0x26,
+ 0xb4, 0x4f, 0xcb, 0x69, 0x71, 0x19, 0x56, 0xa3, 0x49, 0xaf, 0xa9, 0x32, 0x30, 0xa2, 0xd1, 0x76,
+ 0xe1, 0x64, 0x8f, 0x18, 0x88, 0x09, 0xe5, 0x40, 0x6f, 0xa9, 0xf9, 0x75, 0x61, 0x60, 0x01, 0xaf,
+ 0xe9, 0xad, 0x98, 0x70, 0xf9, 0x1a, 0xbf, 0xa6, 0xb3, 0x35, 0x9e, 0xa1, 0x6b, 0x3f, 0x2b, 0x40,
+ 0x75, 0xa1, 0xeb, 0x18, 0x7c, 0x6f, 0x74, 0x6f, 0x53, 0x98, 0x52, 0x18, 0x8a, 0x99, 0x0a, 0x43,
+ 0x17, 0x86, 0xb6, 0x6f, 0x85, 0x0a, 0x45, 0x7d, 0x66, 0x65, 0xf0, 0x5e, 0x21, 0xab, 0x34, 0x75,
+ 0x8d, 0xe3, 0x89, 0x93, 0x9a, 0x31, 0x59, 0xa1, 0xa1, 0x6b, 0x2f, 0x71, 0xa6, 0x92, 0xd9, 0xb9,
+ 0x8f, 0x41, 0x3d, 0x46, 0x76, 0x28, 0xa3, 0xed, 0xef, 0x96, 0x61, 0x68, 0xb1, 0xd9, 0x9c, 0x5d,
+ 0x5d, 0x22, 0xcf, 0x40, 0x5d, 0x1a, 0xf1, 0xaf, 0x47, 0x32, 0x08, 0xcf, 0x70, 0x9a, 0x51, 0x16,
+ 0xc6, 0xe9, 0x98, 0x3a, 0xe6, 0x51, 0xdd, 0x6e, 0xcb, 0xc1, 0x12, 0xaa, 0x63, 0xc8, 0x12, 0x51,
+ 0xe4, 0x11, 0x1d, 0xc6, 0xd8, 0x0e, 0x8f, 0x89, 0x50, 0xec, 0xde, 0xe4, 0xb0, 0x39, 0xe0, 0xfe,
+ 0x8e, 0x2b, 0x89, 0xeb, 0x09, 0x00, 0x4c, 0x01, 0x92, 0xe7, 0xa1, 0xaa, 0x77, 0x83, 0x2d, 0xae,
+ 0x40, 0x8b, 0xb1, 0x71, 0x9e, 0x9f, 0x71, 0xc8, 0xb4, 0x3b, 0x7b, 0x93, 0x23, 0xd7, 0xb0, 0xf1,
+ 0x8c, 0x7a, 0xc7, 0x90, 0x9a, 0x55, 0x4e, 0xed, 0x18, 0x65, 0xe5, 0x2a, 0x87, 0xae, 0xdc, 0x6a,
+ 0x02, 0x00, 0x53, 0x80, 0xe4, 0x15, 0x18, 0xd9, 0xa6, 0xbb, 0x81, 0xbe, 0x21, 0x19, 0x0c, 0x1d,
+ 0x86, 0xc1, 0x38, 0x53, 0xe1, 0xae, 0xc5, 0x8a, 0x63, 0x02, 0x8c, 0xf8, 0x70, 0x7a, 0x9b, 0x7a,
+ 0x1b, 0xd4, 0x73, 0xe5, 0xee, 0x53, 0x32, 0x19, 0x3e, 0x0c, 0x93, 0x89, 0xfd, 0xbd, 0xc9, 0xd3,
+ 0xd7, 0x32, 0x60, 0x30, 0x13, 0x5c, 0xfb, 0x69, 0x11, 0x4e, 0x2c, 0x8a, 0x53, 0x54, 0xd7, 0x13,
+ 0x8b, 0x30, 0x39, 0x0b, 0x25, 0xaf, 0xd3, 0xe5, 0x3d, 0xa7, 0x24, 0xec, 0xa4, 0xb8, 0xba, 0x8e,
+ 0x2c, 0x8d, 0xbc, 0x0c, 0x55, 0x53, 0x4e, 0x19, 0x72, 0xf3, 0x7b, 0xd8, 0x89, 0x86, 0x2f, 0x82,
+ 0xea, 0x0d, 0x43, 0x34, 0xa6, 0xe9, 0xb7, 0xfd, 0x56, 0xd3, 0x7a, 0x83, 0xca, 0xfd, 0x20, 0xd7,
+ 0xf4, 0x57, 0x44, 0x12, 0xaa, 0x3c, 0xb6, 0xaa, 0x6e, 0xd3, 0x5d, 0xb1, 0x1b, 0x2a, 0x47, 0xab,
+ 0xea, 0x35, 0x99, 0x86, 0x61, 0x2e, 0x99, 0x54, 0x83, 0x85, 0xf5, 0x82, 0xb2, 0xd8, 0xc9, 0xdf,
+ 0x64, 0x09, 0x72, 0xdc, 0xb0, 0x29, 0xf3, 0x35, 0x2b, 0x08, 0xa8, 0x27, 0x3f, 0xe3, 0x40, 0x53,
+ 0xe6, 0x55, 0x8e, 0x80, 0x12, 0x89, 0x7c, 0x18, 0x6a, 0x1c, 0xbc, 0x61, 0xbb, 0x1b, 0xfc, 0xc3,
+ 0xd5, 0xc4, 0x9e, 0xfe, 0xa6, 0x4a, 0xc4, 0x28, 0x5f, 0xfb, 0x79, 0x11, 0xce, 0x2c, 0xd2, 0x40,
+ 0x68, 0x35, 0xf3, 0xb4, 0x63, 0xbb, 0xbb, 0x4c, 0xb5, 0x44, 0xfa, 0x3a, 0x79, 0x11, 0xc0, 0xf2,
+ 0x37, 0x9a, 0x3b, 0x06, 0x1f, 0x07, 0x62, 0x0c, 0x5f, 0x94, 0x43, 0x12, 0x96, 0x9a, 0x0d, 0x99,
+ 0x73, 0x27, 0xf1, 0x86, 0xb1, 0x32, 0xd1, 0xf6, 0xaa, 0x78, 0x97, 0xed, 0x55, 0x13, 0xa0, 0x13,
+ 0x29, 0xa8, 0x25, 0x4e, 0xf9, 0x3f, 0x15, 0x9b, 0xc3, 0xe8, 0xa6, 0x31, 0x98, 0x3c, 0x2a, 0xa3,
+ 0x03, 0xe3, 0x26, 0xdd, 0xd4, 0xbb, 0x76, 0x10, 0x2a, 0xd5, 0x72, 0x10, 0x1f, 0x5c, 0x2f, 0x0f,
+ 0x4f, 0x78, 0xe7, 0x53, 0x48, 0xd8, 0x83, 0xad, 0xfd, 0x5e, 0x09, 0xce, 0x2d, 0xd2, 0x20, 0xb4,
+ 0xb8, 0xc8, 0xd9, 0xb1, 0xd9, 0xa1, 0x06, 0xfb, 0x0a, 0x6f, 0x16, 0x60, 0xc8, 0xd6, 0x37, 0xa8,
+ 0xcd, 0x56, 0x2f, 0xd6, 0x9a, 0x57, 0x07, 0x5e, 0x08, 0xfa, 0x73, 0x99, 0x5a, 0xe6, 0x1c, 0x52,
+ 0x4b, 0x83, 0x48, 0x44, 0xc9, 0x9e, 0x4d, 0xea, 0x86, 0xdd, 0xf5, 0x03, 0xea, 0xad, 0xba, 0x5e,
+ 0x20, 0xf5, 0xc9, 0x70, 0x52, 0x9f, 0x8b, 0xb2, 0x30, 0x4e, 0x47, 0x66, 0x00, 0x0c, 0xdb, 0xa2,
+ 0x4e, 0xc0, 0x4b, 0x89, 0x71, 0x45, 0xd4, 0xf7, 0x9d, 0x0b, 0x73, 0x30, 0x46, 0xc5, 0x58, 0xb5,
+ 0x5d, 0xc7, 0x0a, 0x5c, 0xc1, 0xaa, 0x9c, 0x64, 0xb5, 0x12, 0x65, 0x61, 0x9c, 0x8e, 0x17, 0xa3,
+ 0x81, 0x67, 0x19, 0x3e, 0x2f, 0x56, 0x49, 0x15, 0x8b, 0xb2, 0x30, 0x4e, 0xc7, 0xd6, 0xbc, 0x58,
+ 0xfb, 0x0f, 0xb5, 0xe6, 0x7d, 0xab, 0x06, 0x17, 0x12, 0x62, 0x0d, 0xf4, 0x80, 0x6e, 0x76, 0xed,
+ 0x26, 0x0d, 0xd4, 0x07, 0x1c, 0x70, 0x2d, 0xfc, 0x85, 0xe8, 0xbb, 0x0b, 0xdf, 0x0d, 0xe3, 0x68,
+ 0xbe, 0x7b, 0x4f, 0x05, 0x0f, 0xf4, 0xed, 0xa7, 0xa1, 0xe6, 0xe8, 0x81, 0xcf, 0x07, 0xae, 0x1c,
+ 0xa3, 0xa1, 0x1a, 0x76, 0x5d, 0x65, 0x60, 0x44, 0x43, 0x56, 0xe1, 0xb4, 0x14, 0xf1, 0xe5, 0xdb,
+ 0x1d, 0xd7, 0x0b, 0xa8, 0x27, 0xca, 0xca, 0xe5, 0x54, 0x96, 0x3d, 0xbd, 0x92, 0x41, 0x83, 0x99,
+ 0x25, 0xc9, 0x0a, 0x9c, 0x32, 0xc4, 0x79, 0x36, 0xb5, 0x5d, 0xdd, 0x54, 0x80, 0xc2, 0xc0, 0x15,
+ 0x6e, 0x8d, 0xe6, 0x7a, 0x49, 0x30, 0xab, 0x5c, 0xba, 0x37, 0x0f, 0x0d, 0xd4, 0x9b, 0x87, 0x07,
+ 0xe9, 0xcd, 0xd5, 0xc1, 0x7a, 0x73, 0xed, 0x60, 0xbd, 0x99, 0x49, 0x9e, 0xf5, 0x23, 0xea, 0x31,
+ 0xf5, 0x44, 0xac, 0xb0, 0x31, 0x77, 0x89, 0x50, 0xf2, 0xcd, 0x0c, 0x1a, 0xcc, 0x2c, 0x49, 0x36,
+ 0xe0, 0x9c, 0x48, 0xbf, 0xec, 0x18, 0xde, 0x6e, 0x87, 0x2d, 0x3c, 0x31, 0xdc, 0x7a, 0xc2, 0xc2,
+ 0x78, 0xae, 0xd9, 0x97, 0x12, 0xef, 0x82, 0x42, 0xfe, 0x17, 0x8c, 0x8a, 0xaf, 0xb4, 0xa2, 0x77,
+ 0x38, 0xac, 0x70, 0x9e, 0x78, 0x58, 0xc2, 0x8e, 0xce, 0xc5, 0x33, 0x31, 0x49, 0x4b, 0x66, 0xe1,
+ 0x44, 0x67, 0xc7, 0x60, 0x8f, 0x4b, 0x9b, 0xd7, 0x29, 0x35, 0xa9, 0xc9, 0x4f, 0x6b, 0x6a, 0x8d,
+ 0x47, 0x94, 0xa1, 0x63, 0x35, 0x99, 0x8d, 0x69, 0x7a, 0xf2, 0x3c, 0x8c, 0xf8, 0x81, 0xee, 0x05,
+ 0xd2, 0xac, 0x37, 0x31, 0x26, 0x9c, 0x4b, 0x94, 0xd5, 0xab, 0x19, 0xcb, 0xc3, 0x04, 0x65, 0xe6,
+ 0x7a, 0x71, 0xe2, 0xf8, 0xd6, 0x8b, 0x3c, 0xb3, 0xd5, 0x9f, 0x15, 0xe1, 0xe2, 0x22, 0x0d, 0x56,
+ 0x5c, 0x47, 0x1a, 0x45, 0xb3, 0x96, 0xfd, 0x03, 0xd9, 0x44, 0x93, 0x8b, 0x76, 0xf1, 0x48, 0x17,
+ 0xed, 0xd2, 0x11, 0x2d, 0xda, 0xe5, 0x63, 0x5c, 0xb4, 0xff, 0xa0, 0x08, 0x8f, 0x24, 0x24, 0xb9,
+ 0xea, 0x9a, 0x6a, 0xc2, 0x7f, 0x5f, 0x80, 0x07, 0x10, 0xe0, 0x1d, 0xa1, 0x77, 0xf2, 0x63, 0xad,
+ 0x94, 0xc6, 0xf3, 0xd5, 0xb4, 0xc6, 0xf3, 0x4a, 0x9e, 0x95, 0x2f, 0x83, 0xc3, 0x81, 0x56, 0xbc,
+ 0xab, 0x40, 0x3c, 0x79, 0x08, 0x27, 0x4c, 0x3f, 0x31, 0xa5, 0x27, 0xf4, 0x5e, 0xc3, 0x1e, 0x0a,
+ 0xcc, 0x28, 0x45, 0x9a, 0xf0, 0xb0, 0x4f, 0x9d, 0xc0, 0x72, 0xa8, 0x9d, 0x84, 0x13, 0xda, 0xd0,
+ 0x63, 0x12, 0xee, 0xe1, 0x66, 0x16, 0x11, 0x66, 0x97, 0xcd, 0x33, 0x0f, 0xfc, 0x25, 0x70, 0x95,
+ 0x53, 0x88, 0xe6, 0xc8, 0x34, 0x96, 0x37, 0xd3, 0x1a, 0xcb, 0xab, 0xf9, 0xbf, 0xdb, 0x60, 0xda,
+ 0xca, 0x0c, 0x00, 0xff, 0x0a, 0x71, 0x75, 0x25, 0x5c, 0xa4, 0x31, 0xcc, 0xc1, 0x18, 0x15, 0x5b,
+ 0x80, 0x94, 0x9c, 0xe3, 0x9a, 0x4a, 0xb8, 0x00, 0x35, 0xe3, 0x99, 0x98, 0xa4, 0xed, 0xab, 0xed,
+ 0x54, 0x06, 0xd6, 0x76, 0xae, 0x02, 0x49, 0x18, 0x1e, 0x05, 0xde, 0x50, 0xd2, 0x79, 0x72, 0xa9,
+ 0x87, 0x02, 0x33, 0x4a, 0xf5, 0xe9, 0xca, 0xc3, 0x47, 0xdb, 0x95, 0xab, 0x83, 0x77, 0x65, 0xf2,
+ 0x2a, 0x9c, 0xe5, 0xac, 0xa4, 0x7c, 0x92, 0xc0, 0x42, 0xef, 0xf9, 0x80, 0x04, 0x3e, 0x8b, 0xfd,
+ 0x08, 0xb1, 0x3f, 0x06, 0xfb, 0x3e, 0x86, 0x47, 0x4d, 0xc6, 0x5c, 0xb7, 0xfb, 0xeb, 0x44, 0x73,
+ 0x19, 0x34, 0x98, 0x59, 0x92, 0x75, 0xb1, 0x80, 0x75, 0x43, 0x7d, 0xc3, 0xa6, 0xa6, 0x74, 0x1e,
+ 0x0d, 0xbb, 0xd8, 0xda, 0x72, 0x53, 0xe6, 0x60, 0x8c, 0x2a, 0x4b, 0x4d, 0x19, 0x39, 0xa4, 0x9a,
+ 0xb2, 0xc8, 0xad, 0xf4, 0x9b, 0x09, 0x6d, 0x48, 0xea, 0x3a, 0xa1, 0x3b, 0xf0, 0x5c, 0x9a, 0x00,
+ 0x7b, 0xcb, 0x70, 0x2d, 0xd1, 0xf0, 0xac, 0x4e, 0xe0, 0x27, 0xb1, 0xc6, 0x52, 0x5a, 0x62, 0x06,
+ 0x0d, 0x66, 0x96, 0x64, 0xfa, 0xf9, 0x16, 0xd5, 0xed, 0x60, 0x2b, 0x09, 0x78, 0x22, 0xa9, 0x9f,
+ 0x5f, 0xe9, 0x25, 0xc1, 0xac, 0x72, 0x99, 0x0b, 0xd2, 0xf8, 0x83, 0xa9, 0x56, 0x7d, 0xa5, 0x04,
+ 0x67, 0x17, 0x69, 0x10, 0xfa, 0xd5, 0xbc, 0x6f, 0x46, 0x79, 0x17, 0xcc, 0x28, 0xdf, 0xac, 0xc0,
+ 0xa9, 0x45, 0x1a, 0xf4, 0x68, 0x63, 0xff, 0x45, 0xc5, 0xbf, 0x02, 0xa7, 0x22, 0x57, 0xae, 0x66,
+ 0xe0, 0x7a, 0x62, 0x2d, 0x4f, 0xed, 0x96, 0x9b, 0xbd, 0x24, 0x98, 0x55, 0x8e, 0x7c, 0x06, 0x1e,
+ 0xe1, 0x4b, 0xbd, 0xd3, 0x12, 0xf6, 0x59, 0x61, 0x4c, 0x88, 0x5d, 0x46, 0x98, 0x94, 0x90, 0x8f,
+ 0x34, 0xb3, 0xc9, 0xb0, 0x5f, 0x79, 0xf2, 0x45, 0x18, 0xe9, 0x58, 0x1d, 0x6a, 0x5b, 0x0e, 0xd7,
+ 0xcf, 0x72, 0xbb, 0x84, 0xac, 0xc6, 0xc0, 0xa2, 0x0d, 0x5c, 0x3c, 0x15, 0x13, 0x0c, 0x33, 0x7b,
+ 0x6a, 0xf5, 0x18, 0x7b, 0xea, 0xbf, 0x15, 0x61, 0x78, 0xd1, 0x73, 0xbb, 0x9d, 0xc6, 0x2e, 0x69,
+ 0xc1, 0xd0, 0x2d, 0x7e, 0x78, 0x26, 0x8f, 0xa6, 0x06, 0x77, 0x87, 0x16, 0x67, 0x70, 0x91, 0x4a,
+ 0x24, 0xde, 0x51, 0xc2, 0xb3, 0x4e, 0xbc, 0x4d, 0x77, 0xa9, 0x29, 0xcf, 0xd0, 0xc2, 0x4e, 0x7c,
+ 0x8d, 0x25, 0xa2, 0xc8, 0x23, 0x6d, 0x38, 0xa1, 0xdb, 0xb6, 0x7b, 0x8b, 0x9a, 0xcb, 0x7a, 0x40,
+ 0x1d, 0xea, 0xab, 0x23, 0xc9, 0xc3, 0x9a, 0xa5, 0xf9, 0xb9, 0xfe, 0x6c, 0x12, 0x0a, 0xd3, 0xd8,
+ 0xe4, 0x35, 0x18, 0xf6, 0x03, 0xd7, 0x53, 0xca, 0x56, 0x7d, 0x66, 0x6e, 0xf0, 0x8f, 0xde, 0xf8,
+ 0x74, 0x53, 0x40, 0x09, 0x9b, 0xbd, 0x7c, 0x41, 0xc5, 0x40, 0xfb, 0x46, 0x01, 0xe0, 0xca, 0xda,
+ 0xda, 0xaa, 0x3c, 0x5e, 0x30, 0xa1, 0xac, 0x77, 0xc3, 0x83, 0xca, 0xc1, 0x0f, 0x04, 0x13, 0xfe,
+ 0x90, 0xf2, 0x0c, 0xaf, 0x1b, 0x6c, 0x21, 0x47, 0x27, 0x1f, 0x82, 0x61, 0xa9, 0x20, 0x4b, 0xb1,
+ 0x87, 0xae, 0x05, 0x52, 0x89, 0x46, 0x95, 0xaf, 0xfd, 0x4e, 0x11, 0x60, 0xc9, 0xb4, 0x69, 0x53,
+ 0x79, 0xb0, 0xd7, 0x82, 0x2d, 0x8f, 0xfa, 0x5b, 0xae, 0x6d, 0x0e, 0x78, 0x9a, 0xca, 0x6d, 0xfe,
+ 0x6b, 0x0a, 0x04, 0x23, 0x3c, 0x62, 0xc2, 0x88, 0x1f, 0xd0, 0xce, 0x92, 0x13, 0x50, 0x6f, 0x47,
+ 0xb7, 0x07, 0x3c, 0x44, 0x19, 0x17, 0x76, 0x91, 0x08, 0x07, 0x13, 0xa8, 0x44, 0x87, 0xba, 0xe5,
+ 0x18, 0x62, 0x80, 0x34, 0x76, 0x07, 0xec, 0x48, 0x27, 0xd8, 0x8e, 0x63, 0x29, 0x82, 0xc1, 0x38,
+ 0xa6, 0xf6, 0xc3, 0x22, 0x9c, 0xe1, 0xfc, 0x58, 0x35, 0x12, 0xfe, 0x98, 0xe4, 0xff, 0xf4, 0xdc,
+ 0xb6, 0xfb, 0x1f, 0x07, 0x63, 0x2d, 0x2e, 0x6b, 0xad, 0xd0, 0x40, 0x8f, 0xf4, 0xb9, 0x28, 0x2d,
+ 0x76, 0xc5, 0xae, 0x0b, 0x65, 0x9f, 0xcd, 0x57, 0x42, 0x7a, 0xcd, 0x81, 0xbb, 0x50, 0x76, 0x03,
+ 0xf8, 0xec, 0x15, 0x9e, 0x1a, 0xf3, 0x59, 0x8b, 0xb3, 0x23, 0xff, 0x0f, 0x86, 0xfc, 0x40, 0x0f,
+ 0xba, 0x6a, 0x68, 0xae, 0x1f, 0x35, 0x63, 0x0e, 0x1e, 0xcd, 0x23, 0xe2, 0x1d, 0x25, 0x53, 0xed,
+ 0x87, 0x05, 0x38, 0x97, 0x5d, 0x70, 0xd9, 0xf2, 0x03, 0xf2, 0xbf, 0x7b, 0xc4, 0x7e, 0xc0, 0x2f,
+ 0xce, 0x4a, 0x73, 0xa1, 0x87, 0x0e, 0xd9, 0x2a, 0x25, 0x26, 0xf2, 0x00, 0x2a, 0x56, 0x40, 0xdb,
+ 0x6a, 0x7f, 0x79, 0xe3, 0x88, 0x9b, 0x1e, 0x5b, 0xda, 0x19, 0x17, 0x14, 0xcc, 0xb4, 0xb7, 0x8a,
+ 0xfd, 0x9a, 0xcc, 0x97, 0x0f, 0x3b, 0xe9, 0xf3, 0x7b, 0x2d, 0x9f, 0xcf, 0x6f, 0xb2, 0x42, 0xbd,
+ 0xae, 0xbf, 0xff, 0xb7, 0xd7, 0xf5, 0xf7, 0x46, 0x7e, 0xd7, 0xdf, 0x94, 0x18, 0xfa, 0x7a, 0x00,
+ 0xbf, 0x53, 0x82, 0xf3, 0x77, 0xeb, 0x36, 0x6c, 0x3d, 0x93, 0xbd, 0x33, 0xef, 0x7a, 0x76, 0xf7,
+ 0x7e, 0x48, 0x66, 0xa0, 0xd2, 0xd9, 0xd2, 0x7d, 0xa5, 0x94, 0xa9, 0x0d, 0x4b, 0x65, 0x95, 0x25,
+ 0xde, 0x61, 0x93, 0x06, 0x57, 0xe6, 0xf8, 0x2b, 0x0a, 0x52, 0x36, 0x1d, 0xb7, 0xa9, 0xef, 0x47,
+ 0x36, 0x81, 0x70, 0x3a, 0x5e, 0x11, 0xc9, 0xa8, 0xf2, 0x49, 0x00, 0x43, 0xc2, 0xc4, 0x2c, 0x57,
+ 0xa6, 0xc1, 0x1d, 0xb9, 0x32, 0xdc, 0xc4, 0xa3, 0x46, 0xc9, 0xd3, 0x0a, 0xc9, 0x8b, 0x4c, 0x41,
+ 0x39, 0x88, 0x9c, 0x76, 0xd5, 0xd6, 0xbc, 0x9c, 0xa1, 0x9f, 0x72, 0x3a, 0xb6, 0xb1, 0x77, 0x37,
+ 0xb8, 0x51, 0xdd, 0x94, 0xe7, 0xe7, 0x96, 0xeb, 0x70, 0x85, 0xac, 0x14, 0x6d, 0xec, 0x6f, 0xf4,
+ 0x50, 0x60, 0x46, 0x29, 0xed, 0x6f, 0xaa, 0x70, 0x26, 0xbb, 0x3f, 0x30, 0xb9, 0xed, 0x50, 0xcf,
+ 0x67, 0xd8, 0x85, 0xa4, 0xdc, 0x6e, 0x8a, 0x64, 0x54, 0xf9, 0xef, 0x69, 0x87, 0xb3, 0x6f, 0x16,
+ 0xe0, 0xac, 0x27, 0xcf, 0x88, 0xee, 0x87, 0xd3, 0xd9, 0x63, 0xc2, 0x9c, 0xd1, 0x87, 0x21, 0xf6,
+ 0xaf, 0x0b, 0xf9, 0xad, 0x02, 0x4c, 0xb4, 0x53, 0x76, 0x8e, 0x63, 0xbc, 0x30, 0xc6, 0xbd, 0xe2,
+ 0x57, 0xfa, 0xf0, 0xc3, 0xbe, 0x35, 0x21, 0x5f, 0x84, 0x7a, 0x87, 0xf5, 0x0b, 0x3f, 0xa0, 0x8e,
+ 0xa1, 0xee, 0x8c, 0x0d, 0x3e, 0x92, 0x56, 0x23, 0x2c, 0xe5, 0x8a, 0x26, 0xf4, 0x83, 0x58, 0x06,
+ 0xc6, 0x39, 0x3e, 0xe0, 0x37, 0xc4, 0x2e, 0x41, 0xd5, 0xa7, 0x41, 0x60, 0x39, 0x2d, 0xb1, 0xdf,
+ 0xa8, 0x89, 0xb1, 0xd2, 0x94, 0x69, 0x18, 0xe6, 0x92, 0x0f, 0x43, 0x8d, 0x1f, 0x39, 0xcd, 0x7a,
+ 0x2d, 0x7f, 0xa2, 0xc6, 0xdd, 0xc5, 0x46, 0x85, 0x03, 0x9c, 0x4c, 0xc4, 0x28, 0x9f, 0x3c, 0x0d,
+ 0x23, 0x1b, 0x7c, 0xf8, 0xca, 0x4b, 0xc3, 0xc2, 0xc6, 0xc5, 0xb5, 0xb5, 0x46, 0x2c, 0x1d, 0x13,
+ 0x54, 0x64, 0x06, 0x80, 0x86, 0xe7, 0x72, 0x69, 0x7b, 0x56, 0x74, 0x62, 0x87, 0x31, 0x2a, 0xf2,
+ 0x18, 0x94, 0x02, 0xdb, 0xe7, 0x36, 0xac, 0x6a, 0xb4, 0x05, 0x5d, 0x5b, 0x6e, 0x22, 0x4b, 0xd7,
+ 0x7e, 0x5e, 0x80, 0x13, 0xa9, 0xcb, 0x25, 0xac, 0x48, 0xd7, 0xb3, 0xe5, 0x34, 0x12, 0x16, 0x59,
+ 0xc7, 0x65, 0x64, 0xe9, 0xe4, 0x55, 0xa9, 0x96, 0x17, 0x73, 0xc6, 0x47, 0xb8, 0xae, 0x07, 0x3e,
+ 0xd3, 0xc3, 0x7b, 0x34, 0x72, 0x7e, 0xcc, 0x17, 0xd5, 0x47, 0xae, 0x03, 0xb1, 0x63, 0xbe, 0x28,
+ 0x0f, 0x13, 0x94, 0x29, 0x83, 0x5f, 0xf9, 0x20, 0x06, 0x3f, 0xed, 0x6b, 0xc5, 0x98, 0x04, 0xa4,
+ 0x66, 0x7f, 0x0f, 0x09, 0x3c, 0xc9, 0x16, 0xd0, 0x70, 0x71, 0xaf, 0xc5, 0xd7, 0x3f, 0xbe, 0x18,
+ 0xcb, 0x5c, 0xf2, 0x92, 0x90, 0x7d, 0x29, 0xe7, 0x2d, 0xd4, 0xb5, 0xe5, 0xa6, 0xf0, 0xae, 0x52,
+ 0x5f, 0x2d, 0xfc, 0x04, 0xe5, 0x63, 0xfa, 0x04, 0xda, 0x5f, 0x94, 0xa0, 0x7e, 0xd5, 0xdd, 0x78,
+ 0x8f, 0x78, 0x50, 0x67, 0x2f, 0x53, 0xc5, 0x77, 0x71, 0x99, 0x5a, 0x87, 0x47, 0x82, 0xc0, 0x6e,
+ 0x52, 0xc3, 0x75, 0x4c, 0x7f, 0x76, 0x33, 0xa0, 0xde, 0x82, 0xe5, 0x58, 0xfe, 0x16, 0x35, 0xe5,
+ 0x71, 0xd2, 0xa3, 0xfb, 0x7b, 0x93, 0x8f, 0xac, 0xad, 0x2d, 0x67, 0x91, 0x60, 0xbf, 0xb2, 0x7c,
+ 0xda, 0xd0, 0x8d, 0x6d, 0x77, 0x73, 0x93, 0xdf, 0x94, 0x91, 0x3e, 0x37, 0x62, 0xda, 0x88, 0xa5,
+ 0x63, 0x82, 0x4a, 0x7b, 0xbb, 0x08, 0xb5, 0xf0, 0xe6, 0x3b, 0x79, 0x02, 0x86, 0x37, 0x3c, 0x77,
+ 0x9b, 0x7a, 0xe2, 0xe4, 0x4e, 0xde, 0x94, 0x69, 0x88, 0x24, 0x54, 0x79, 0xe4, 0x71, 0xa8, 0x04,
+ 0x6e, 0xc7, 0x32, 0xd2, 0x06, 0xb5, 0x35, 0x96, 0x88, 0x22, 0xef, 0xf8, 0x3a, 0xf8, 0x93, 0x09,
+ 0xd5, 0xae, 0xd6, 0x57, 0x19, 0x7b, 0x05, 0xca, 0xbe, 0xee, 0xdb, 0x72, 0x3d, 0xcd, 0x71, 0x89,
+ 0x7c, 0xb6, 0xb9, 0x2c, 0x2f, 0x91, 0xcf, 0x36, 0x97, 0x91, 0x83, 0x6a, 0x3f, 0x29, 0x42, 0x5d,
+ 0xc8, 0x4d, 0xcc, 0x0a, 0x47, 0x29, 0xb9, 0x17, 0xb8, 0x2b, 0x85, 0xdf, 0x6d, 0x53, 0x8f, 0x9b,
+ 0x99, 0xe4, 0x24, 0x17, 0x3f, 0x1f, 0x88, 0x32, 0x43, 0x77, 0x8a, 0x28, 0x49, 0x89, 0xbe, 0x7c,
+ 0x8c, 0xa2, 0xaf, 0x1c, 0x48, 0xf4, 0x43, 0xc7, 0x21, 0xfa, 0x37, 0x8b, 0x50, 0x5b, 0xb6, 0x36,
+ 0xa9, 0xb1, 0x6b, 0xd8, 0xfc, 0x4e, 0xa0, 0x49, 0x6d, 0x1a, 0xd0, 0x45, 0x4f, 0x37, 0xe8, 0x2a,
+ 0xf5, 0x2c, 0x1e, 0x19, 0x86, 0x8d, 0x0f, 0x3e, 0x03, 0xc9, 0x3b, 0x81, 0xf3, 0x7d, 0x68, 0xb0,
+ 0x6f, 0x69, 0xb2, 0x04, 0x23, 0x26, 0xf5, 0x2d, 0x8f, 0x9a, 0xab, 0xb1, 0x8d, 0xca, 0x13, 0x6a,
+ 0xa9, 0x99, 0x8f, 0xe5, 0xdd, 0xd9, 0x9b, 0x1c, 0x55, 0x06, 0x4a, 0xb1, 0x63, 0x49, 0x14, 0x65,
+ 0x43, 0xbe, 0xa3, 0x77, 0xfd, 0xac, 0x3a, 0xc6, 0x86, 0xfc, 0x6a, 0x36, 0x09, 0xf6, 0x2b, 0xab,
+ 0x55, 0xa0, 0xb4, 0xec, 0xb6, 0xb4, 0xb7, 0x4a, 0x10, 0x86, 0x10, 0x22, 0xff, 0xbf, 0x00, 0x75,
+ 0xdd, 0x71, 0xdc, 0x40, 0x86, 0xe7, 0x11, 0x27, 0xf0, 0x98, 0x3b, 0x52, 0xd1, 0xd4, 0x6c, 0x04,
+ 0x2a, 0x0e, 0x6f, 0xc3, 0x03, 0xe5, 0x58, 0x0e, 0xc6, 0x79, 0x93, 0x6e, 0xea, 0x3c, 0x79, 0x25,
+ 0x7f, 0x2d, 0x0e, 0x70, 0x7a, 0x7c, 0xee, 0x53, 0x30, 0x9e, 0xae, 0xec, 0x61, 0x8e, 0x83, 0x72,
+ 0x1d, 0xcc, 0x17, 0x01, 0x22, 0x9f, 0x92, 0xfb, 0x60, 0xc4, 0xb2, 0x12, 0x46, 0xac, 0xc5, 0xc1,
+ 0x05, 0x1c, 0x56, 0xba, 0xaf, 0xe1, 0xea, 0xf5, 0x94, 0xe1, 0x6a, 0xe9, 0x28, 0x98, 0xdd, 0xdd,
+ 0x58, 0xf5, 0xdb, 0x05, 0x18, 0x8f, 0x88, 0xe5, 0x0d, 0xd9, 0xe7, 0x60, 0xd4, 0xa3, 0xba, 0xd9,
+ 0xd0, 0x03, 0x63, 0x8b, 0xbb, 0x7a, 0x17, 0xb8, 0x6f, 0xf6, 0xc9, 0xfd, 0xbd, 0xc9, 0x51, 0x8c,
+ 0x67, 0x60, 0x92, 0x8e, 0xe8, 0x50, 0x67, 0x09, 0x6b, 0x56, 0x9b, 0xba, 0xdd, 0x60, 0x40, 0xab,
+ 0x29, 0xdf, 0xb0, 0x60, 0x04, 0x83, 0x71, 0x4c, 0xed, 0x9d, 0x02, 0x8c, 0xc5, 0x2b, 0x7c, 0xec,
+ 0x16, 0xb5, 0xad, 0xa4, 0x45, 0x6d, 0xee, 0x08, 0xbe, 0x49, 0x1f, 0x2b, 0xda, 0x4f, 0xab, 0xf1,
+ 0xa6, 0x71, 0xcb, 0x59, 0xdc, 0x58, 0x50, 0xb8, 0xab, 0xb1, 0xe0, 0xbd, 0x1f, 0x35, 0xa6, 0x9f,
+ 0x96, 0x5b, 0x7e, 0x80, 0xb5, 0xdc, 0x77, 0x33, 0xf4, 0x4c, 0x2c, 0x7c, 0xca, 0x50, 0x8e, 0xf0,
+ 0x29, 0xed, 0x30, 0x7c, 0xca, 0xf0, 0x91, 0x4d, 0x3a, 0x07, 0x09, 0xa1, 0x52, 0xbd, 0xaf, 0x21,
+ 0x54, 0x6a, 0xc7, 0x15, 0x42, 0x05, 0xf2, 0x86, 0x50, 0xf9, 0x6a, 0x01, 0xc6, 0xcc, 0xc4, 0x8d,
+ 0x59, 0x6e, 0x5b, 0xc8, 0xb3, 0xd4, 0x24, 0x2f, 0xe0, 0x8a, 0x2b, 0x53, 0xc9, 0x34, 0x4c, 0xb1,
+ 0xd4, 0x7e, 0x5c, 0x8e, 0xaf, 0x03, 0xf7, 0xdb, 0x54, 0xfd, 0x6c, 0xd2, 0x54, 0x7d, 0x31, 0x6d,
+ 0xaa, 0x3e, 0x11, 0xf3, 0x22, 0x8d, 0x9b, 0xab, 0x3f, 0x12, 0x9b, 0x1e, 0xd9, 0x9c, 0x34, 0x1a,
+ 0x49, 0x3a, 0x63, 0x8a, 0xfc, 0x08, 0x54, 0x7d, 0x15, 0xec, 0x51, 0x6c, 0x6c, 0xa2, 0xef, 0xa2,
+ 0x02, 0x31, 0x86, 0x14, 0x4c, 0x13, 0xf7, 0xa8, 0xee, 0xbb, 0x4e, 0x5a, 0x13, 0x47, 0x9e, 0x8a,
+ 0x32, 0x37, 0x6e, 0x32, 0x1f, 0xba, 0x87, 0xc9, 0x5c, 0x87, 0xba, 0xad, 0xfb, 0xc1, 0x7a, 0xc7,
+ 0xd4, 0x03, 0x6a, 0xca, 0xf1, 0xf6, 0xdf, 0x0f, 0xb6, 0x56, 0xb1, 0xf5, 0x2f, 0x52, 0x08, 0x97,
+ 0x23, 0x18, 0x8c, 0x63, 0x12, 0x13, 0x46, 0xd8, 0x2b, 0x1f, 0x0d, 0xe6, 0xac, 0x0a, 0x01, 0x70,
+ 0x18, 0x1e, 0xa1, 0xa5, 0x67, 0x39, 0x86, 0x83, 0x09, 0xd4, 0x3e, 0x56, 0xf5, 0xda, 0x40, 0x56,
+ 0xf5, 0xaf, 0xd6, 0xa0, 0x7e, 0x5d, 0x0f, 0xac, 0x1d, 0xca, 0x4f, 0x71, 0x8e, 0xc7, 0x94, 0xfe,
+ 0x6b, 0x05, 0x38, 0x93, 0x74, 0xd5, 0x3b, 0x46, 0x7b, 0x3a, 0x0f, 0xfc, 0x81, 0x99, 0xdc, 0xb0,
+ 0x4f, 0x2d, 0xb8, 0x65, 0xbd, 0xc7, 0xf3, 0xef, 0xb8, 0x2d, 0xeb, 0xcd, 0x7e, 0x0c, 0xb1, 0x7f,
+ 0x5d, 0xde, 0x2b, 0x96, 0xf5, 0x07, 0x3b, 0x30, 0x5b, 0xca, 0xee, 0x3f, 0xfc, 0xc0, 0xd8, 0xfd,
+ 0xab, 0x0f, 0x84, 0xb2, 0xd5, 0x89, 0xd9, 0xfd, 0x6b, 0x39, 0xfd, 0x4f, 0xa4, 0x77, 0xbb, 0x40,
+ 0xeb, 0x77, 0x7e, 0xc0, 0x2f, 0xa6, 0x2b, 0x7b, 0x2c, 0xd3, 0x51, 0x36, 0x74, 0xdf, 0x32, 0xe4,
+ 0xb2, 0x97, 0x23, 0x10, 0xa5, 0x8a, 0xd8, 0x25, 0x8e, 0xa9, 0xf9, 0x2b, 0x0a, 0xec, 0x28, 0x32,
+ 0x58, 0x31, 0x57, 0x64, 0x30, 0x32, 0x07, 0x65, 0x87, 0xed, 0x9e, 0x4b, 0x87, 0x8e, 0x05, 0x76,
+ 0xfd, 0x1a, 0xdd, 0x45, 0x5e, 0x58, 0x7b, 0xbb, 0x08, 0xc0, 0x9a, 0x7f, 0x30, 0x0b, 0xfc, 0x87,
+ 0x60, 0xd8, 0xef, 0xf2, 0xbd, 0xb2, 0x5c, 0xb0, 0x23, 0xa7, 0x1d, 0x91, 0x8c, 0x2a, 0x9f, 0x3c,
+ 0x0e, 0x95, 0xd7, 0xbb, 0xb4, 0xab, 0x8e, 0x93, 0x43, 0x75, 0xed, 0xd3, 0x2c, 0x11, 0x45, 0xde,
+ 0xf1, 0x59, 0xd3, 0x94, 0xa5, 0xbe, 0x72, 0x5c, 0x96, 0xfa, 0x1a, 0x0c, 0x5f, 0x77, 0xb9, 0x0f,
+ 0xa0, 0xf6, 0x2f, 0x45, 0x80, 0xc8, 0xc7, 0x8a, 0x7c, 0xa3, 0x00, 0x0f, 0x87, 0x03, 0x2e, 0x10,
+ 0x5a, 0x37, 0x8f, 0xfd, 0x9a, 0xdb, 0x6a, 0x9f, 0x35, 0xd8, 0xf9, 0x0c, 0xb4, 0x9a, 0xc5, 0x0e,
+ 0xb3, 0x6b, 0x41, 0x10, 0xaa, 0xb4, 0xdd, 0x09, 0x76, 0xe7, 0x2d, 0x4f, 0xf6, 0xc0, 0x4c, 0x57,
+ 0xbe, 0xcb, 0x92, 0x46, 0x14, 0x95, 0x5b, 0x43, 0x3e, 0x88, 0x54, 0x0e, 0x86, 0x38, 0x64, 0x0b,
+ 0xaa, 0x8e, 0xfb, 0xaa, 0xcf, 0xc4, 0x21, 0xbb, 0xe3, 0x8b, 0x83, 0x8b, 0x5c, 0x88, 0x55, 0x58,
+ 0x79, 0xe5, 0x0b, 0x0e, 0x3b, 0x52, 0xd8, 0x5f, 0x2f, 0xc2, 0xa9, 0x0c, 0x39, 0x90, 0x17, 0x61,
+ 0x5c, 0xba, 0xb3, 0x45, 0x41, 0x90, 0x0b, 0x51, 0x10, 0xe4, 0x66, 0x2a, 0x0f, 0x7b, 0xa8, 0xc9,
+ 0xab, 0x00, 0xba, 0x61, 0x50, 0xdf, 0x5f, 0x71, 0x4d, 0xa5, 0x8f, 0xbe, 0xb0, 0xbf, 0x37, 0x09,
+ 0xb3, 0x61, 0xea, 0x9d, 0xbd, 0xc9, 0x8f, 0x66, 0x79, 0xa8, 0xa6, 0xe4, 0x1c, 0x15, 0xc0, 0x18,
+ 0x24, 0xf9, 0x3c, 0x80, 0xd8, 0x7a, 0x85, 0x97, 0xe8, 0xef, 0x61, 0xaf, 0x98, 0x52, 0xe1, 0x8a,
+ 0xa6, 0x3e, 0xdd, 0xd5, 0x9d, 0xc0, 0x0a, 0x76, 0x45, 0xcc, 0x92, 0x9b, 0x21, 0x0a, 0xc6, 0x10,
+ 0xb5, 0x3f, 0x2d, 0x42, 0x55, 0x59, 0x4a, 0xef, 0x83, 0x79, 0xac, 0x95, 0x30, 0x8f, 0x1d, 0x91,
+ 0x4f, 0x6a, 0x96, 0x71, 0xcc, 0x4d, 0x19, 0xc7, 0x16, 0xf3, 0xb3, 0xba, 0xbb, 0x69, 0xec, 0xdb,
+ 0x45, 0x18, 0x53, 0xa4, 0x79, 0x0d, 0x63, 0x9f, 0x84, 0x13, 0xe2, 0x2c, 0x79, 0x45, 0xbf, 0x2d,
+ 0xc2, 0xb7, 0x70, 0x81, 0x95, 0x85, 0x1b, 0x68, 0x23, 0x99, 0x85, 0x69, 0x5a, 0xd6, 0xad, 0x45,
+ 0xd2, 0x3a, 0xdb, 0x47, 0x88, 0xd3, 0x27, 0xb1, 0xdf, 0xe1, 0xdd, 0xba, 0x91, 0xca, 0xc3, 0x1e,
+ 0xea, 0xb4, 0x65, 0xae, 0x7c, 0x0c, 0x96, 0xb9, 0xbf, 0x2d, 0xc0, 0x48, 0x24, 0xaf, 0x63, 0xb7,
+ 0xcb, 0x6d, 0x26, 0xed, 0x72, 0xb3, 0xb9, 0xbb, 0x43, 0x1f, 0xab, 0xdc, 0x2f, 0x0d, 0x43, 0xc2,
+ 0x35, 0x9a, 0x6c, 0xc0, 0x39, 0x2b, 0xd3, 0xc1, 0x2b, 0x36, 0xdb, 0x84, 0x77, 0x7d, 0x97, 0xfa,
+ 0x52, 0xe2, 0x5d, 0x50, 0x48, 0x17, 0xaa, 0x3b, 0xd4, 0x0b, 0x2c, 0x83, 0xaa, 0xf6, 0x2d, 0xe6,
+ 0x56, 0xc9, 0xa4, 0xed, 0x31, 0x94, 0xe9, 0x4d, 0xc9, 0x00, 0x43, 0x56, 0x64, 0x03, 0x2a, 0xd4,
+ 0x6c, 0x51, 0x15, 0x50, 0x27, 0x67, 0xb8, 0xca, 0x50, 0x9e, 0xec, 0xcd, 0x47, 0x01, 0x4d, 0x7c,
+ 0xa8, 0xd9, 0xea, 0x6c, 0x49, 0xf6, 0xc3, 0xc1, 0x15, 0xac, 0xf0, 0x94, 0x2a, 0xba, 0x6b, 0x1f,
+ 0x26, 0x61, 0xc4, 0x87, 0x6c, 0x87, 0x46, 0xae, 0xca, 0x11, 0x4d, 0x1e, 0x77, 0x31, 0x71, 0xf9,
+ 0x50, 0xbb, 0xa5, 0x07, 0xd4, 0x6b, 0xeb, 0xde, 0xb6, 0xdc, 0x6d, 0x0c, 0xde, 0xc2, 0x97, 0x14,
+ 0x52, 0xd4, 0xc2, 0x30, 0x09, 0x23, 0x3e, 0xc4, 0x85, 0x5a, 0x20, 0xd5, 0x67, 0x65, 0xc9, 0x1b,
+ 0x9c, 0xa9, 0x52, 0xc4, 0x7d, 0xe9, 0x22, 0xad, 0x5e, 0x31, 0xe2, 0x41, 0x76, 0x12, 0xa1, 0x7c,
+ 0x45, 0x00, 0xe7, 0x46, 0x0e, 0x8b, 0xb0, 0x84, 0x8a, 0x96, 0x9b, 0xec, 0x90, 0xc0, 0xda, 0xdb,
+ 0x95, 0x68, 0x5a, 0xbe, 0xdf, 0x76, 0xaa, 0xa7, 0x93, 0x76, 0xaa, 0x0b, 0x69, 0x3b, 0x55, 0xea,
+ 0x88, 0xf2, 0xf0, 0x4e, 0x95, 0x29, 0x0b, 0x51, 0xf9, 0x18, 0x2c, 0x44, 0x4f, 0x41, 0x7d, 0x87,
+ 0xcf, 0x04, 0x22, 0x3a, 0x4f, 0x85, 0x2f, 0x23, 0x7c, 0x66, 0xbf, 0x19, 0x25, 0x63, 0x9c, 0x86,
+ 0x15, 0x91, 0x3f, 0x2f, 0x08, 0xc3, 0x9b, 0xca, 0x22, 0xcd, 0x28, 0x19, 0xe3, 0x34, 0xdc, 0x1f,
+ 0xcb, 0x72, 0xb6, 0x45, 0x81, 0x61, 0x5e, 0x40, 0xf8, 0x63, 0xa9, 0x44, 0x8c, 0xf2, 0xc9, 0x25,
+ 0xa8, 0x76, 0xcd, 0x4d, 0x41, 0x5b, 0xe5, 0xb4, 0x5c, 0xc3, 0x5c, 0x9f, 0x5f, 0x90, 0xd1, 0x82,
+ 0x54, 0x2e, 0xab, 0x49, 0x5b, 0xef, 0xa8, 0x0c, 0xbe, 0x37, 0x94, 0x35, 0x59, 0x89, 0x92, 0x31,
+ 0x4e, 0x43, 0x3e, 0x0e, 0x63, 0x1e, 0x35, 0xbb, 0x06, 0x0d, 0x4b, 0x01, 0x2f, 0x45, 0xc4, 0x5f,
+ 0x1a, 0xe2, 0x39, 0x98, 0xa2, 0xec, 0x63, 0xe7, 0xaa, 0x0f, 0x64, 0xe7, 0xfa, 0x41, 0x01, 0x48,
+ 0xaf, 0xff, 0x32, 0xd9, 0x82, 0x21, 0x87, 0x5b, 0xbf, 0x72, 0x07, 0x44, 0x8e, 0x19, 0xd1, 0xc4,
+ 0xb4, 0x24, 0x13, 0x24, 0x3e, 0x71, 0xa0, 0x4a, 0x6f, 0x07, 0xd4, 0x73, 0xc2, 0xfb, 0x0c, 0x47,
+ 0x13, 0x7c, 0x59, 0xec, 0x06, 0x24, 0x32, 0x86, 0x3c, 0xb4, 0x1f, 0x15, 0xa1, 0x1e, 0xa3, 0xbb,
+ 0xd7, 0xa6, 0x92, 0x5f, 0xa9, 0x16, 0x46, 0xa7, 0x75, 0xcf, 0x96, 0x23, 0x2c, 0x76, 0xa5, 0x5a,
+ 0x66, 0xe1, 0x32, 0xc6, 0xe9, 0xc8, 0x0c, 0x40, 0x5b, 0xf7, 0x03, 0xea, 0xf1, 0xd5, 0x37, 0x75,
+ 0x91, 0x79, 0x25, 0xcc, 0xc1, 0x18, 0x15, 0xb9, 0x28, 0xc3, 0x67, 0x97, 0x93, 0x81, 0xe7, 0xfa,
+ 0xc4, 0xc6, 0xae, 0x1c, 0x41, 0x6c, 0x6c, 0xd2, 0x82, 0x71, 0x55, 0x6b, 0x95, 0x7b, 0xb8, 0xb0,
+ 0x64, 0x62, 0xff, 0x92, 0x82, 0xc0, 0x1e, 0x50, 0xed, 0xed, 0x02, 0x8c, 0x26, 0x4c, 0x1e, 0x22,
+ 0x64, 0x9c, 0xf2, 0xbe, 0x4f, 0x84, 0x8c, 0x8b, 0x39, 0xcd, 0x3f, 0x09, 0x43, 0x42, 0x40, 0x69,
+ 0xa7, 0x3a, 0x21, 0x42, 0x94, 0xb9, 0x6c, 0x2e, 0x93, 0x46, 0xd5, 0xf4, 0x5c, 0x26, 0xad, 0xae,
+ 0xa8, 0xf2, 0x85, 0xb9, 0x5d, 0xd4, 0xae, 0xd7, 0xdc, 0x2e, 0xd2, 0x31, 0xa4, 0xd0, 0x7e, 0x5c,
+ 0x02, 0xee, 0x82, 0x42, 0x9e, 0x83, 0x5a, 0x9b, 0x1a, 0x5b, 0xba, 0x63, 0xf9, 0x2a, 0x64, 0x24,
+ 0xdb, 0xdd, 0xd6, 0x56, 0x54, 0xe2, 0x1d, 0x06, 0x30, 0xdb, 0x5c, 0xe6, 0x5e, 0xde, 0x11, 0x2d,
+ 0x31, 0x60, 0xa8, 0xe5, 0xfb, 0x7a, 0xc7, 0xca, 0x7d, 0x02, 0x2a, 0x42, 0xf4, 0x89, 0x41, 0x24,
+ 0x9e, 0x51, 0x42, 0x13, 0x03, 0x2a, 0x1d, 0x5b, 0xb7, 0x9c, 0xdc, 0xff, 0x28, 0x61, 0x2d, 0x58,
+ 0x65, 0x48, 0xc2, 0xa4, 0xc3, 0x1f, 0x51, 0x60, 0x93, 0x2e, 0xd4, 0x7d, 0xc3, 0xd3, 0xdb, 0xfe,
+ 0x96, 0x3e, 0xf3, 0xcc, 0xb3, 0xb9, 0x95, 0xa4, 0x88, 0x95, 0x98, 0xb3, 0xe7, 0x70, 0x76, 0xa5,
+ 0x79, 0x65, 0x76, 0xe6, 0x99, 0x67, 0x31, 0xce, 0x27, 0xce, 0xf6, 0x99, 0xa7, 0x66, 0x64, 0xbf,
+ 0x3f, 0x72, 0xb6, 0xcf, 0x3c, 0x35, 0x83, 0x71, 0x3e, 0xda, 0xbf, 0x17, 0xa0, 0x16, 0xd2, 0x92,
+ 0x75, 0x00, 0x36, 0x02, 0x65, 0x50, 0xbd, 0x43, 0x05, 0xb8, 0xe7, 0xbb, 0xe2, 0xf5, 0xb0, 0x30,
+ 0xc6, 0x80, 0x32, 0xa2, 0x0e, 0x16, 0x8f, 0x3a, 0xea, 0xe0, 0x34, 0xd4, 0xb6, 0x74, 0xc7, 0xf4,
+ 0xb7, 0xf4, 0x6d, 0x31, 0x11, 0xc5, 0xe2, 0x70, 0x5e, 0x51, 0x19, 0x18, 0xd1, 0x68, 0x7f, 0x3c,
+ 0x04, 0xe2, 0xd8, 0x92, 0x0d, 0x15, 0xd3, 0xf2, 0x85, 0xdf, 0x6c, 0x81, 0x97, 0x0c, 0x87, 0xca,
+ 0xbc, 0x4c, 0xc7, 0x90, 0x82, 0x9c, 0x85, 0x52, 0xdb, 0x72, 0xe4, 0x89, 0x07, 0x37, 0x78, 0xad,
+ 0x58, 0x0e, 0xb2, 0x34, 0x9e, 0xa5, 0xdf, 0x96, 0x2e, 0x4f, 0x22, 0x4b, 0xbf, 0x8d, 0x2c, 0x8d,
+ 0x6d, 0x41, 0x6d, 0xd7, 0xdd, 0xde, 0xd0, 0x8d, 0x6d, 0xe5, 0x19, 0x55, 0xe6, 0x0b, 0x21, 0xdf,
+ 0x82, 0x2e, 0x27, 0xb3, 0x30, 0x4d, 0x4b, 0xd6, 0xe1, 0x91, 0x37, 0xa8, 0xe7, 0xca, 0x51, 0xde,
+ 0xb4, 0x29, 0xed, 0x28, 0x18, 0xa1, 0x42, 0x70, 0x07, 0xab, 0xcf, 0x66, 0x93, 0x60, 0xbf, 0xb2,
+ 0xdc, 0x55, 0x53, 0xf7, 0x5a, 0x34, 0x58, 0xf5, 0x5c, 0x83, 0xfa, 0xbe, 0xe5, 0xb4, 0x14, 0xec,
+ 0x50, 0x04, 0xbb, 0x96, 0x4d, 0x82, 0xfd, 0xca, 0x92, 0x97, 0x61, 0x42, 0x64, 0x89, 0xc5, 0x76,
+ 0x76, 0x47, 0xb7, 0x6c, 0x7d, 0xc3, 0xb2, 0xd5, 0xaf, 0xbd, 0x46, 0xc5, 0xb9, 0xc2, 0x5a, 0x1f,
+ 0x1a, 0xec, 0x5b, 0x9a, 0x5c, 0x85, 0x71, 0x75, 0xaa, 0xb4, 0x4a, 0xbd, 0x66, 0x78, 0x94, 0x3d,
+ 0xda, 0xb8, 0xc0, 0xf6, 0x7b, 0xf3, 0xb4, 0xe3, 0x51, 0x83, 0x6b, 0x5d, 0x29, 0x2a, 0xec, 0x29,
+ 0x47, 0x10, 0xce, 0xf0, 0xf3, 0xea, 0xf5, 0xce, 0x9c, 0xeb, 0xda, 0xa6, 0x7b, 0xcb, 0x51, 0x6d,
+ 0x17, 0x8a, 0x0d, 0x3f, 0x48, 0x6a, 0x66, 0x52, 0x60, 0x9f, 0x92, 0xac, 0xe5, 0x3c, 0x67, 0xde,
+ 0xbd, 0xe5, 0xa4, 0x51, 0x21, 0x6a, 0x79, 0xb3, 0x0f, 0x0d, 0xf6, 0x2d, 0x4d, 0x16, 0x80, 0xa4,
+ 0x5b, 0xb0, 0xde, 0xe1, 0xca, 0xd0, 0x68, 0xe3, 0x8c, 0x88, 0x8f, 0x91, 0xce, 0xc5, 0x8c, 0x12,
+ 0x64, 0x19, 0x4e, 0xa7, 0x53, 0x19, 0x3b, 0xee, 0x24, 0x3f, 0x2a, 0x22, 0x63, 0x62, 0x46, 0x3e,
+ 0x66, 0x96, 0xd2, 0xfe, 0xa4, 0x08, 0xa3, 0x89, 0x0b, 0xd5, 0x0f, 0xdc, 0xc5, 0x55, 0xa6, 0x81,
+ 0xb6, 0xfd, 0xd6, 0xd2, 0xfc, 0x15, 0xaa, 0x9b, 0xd4, 0xbb, 0x46, 0xd5, 0xe5, 0x77, 0x3e, 0xa9,
+ 0xac, 0x24, 0x72, 0x30, 0x45, 0x49, 0x36, 0xa1, 0x22, 0xec, 0xa9, 0x79, 0x7f, 0x95, 0xa0, 0x64,
+ 0xc4, 0x8d, 0xaa, 0x7c, 0xc9, 0x11, 0x26, 0x55, 0x01, 0xaf, 0x05, 0x30, 0x12, 0xa7, 0x60, 0x13,
+ 0x49, 0xa4, 0xac, 0x0d, 0x27, 0x14, 0xb5, 0x25, 0x28, 0x05, 0xc1, 0xa0, 0x57, 0x62, 0x85, 0x7d,
+ 0x7e, 0x6d, 0x19, 0x19, 0x86, 0xb6, 0xc9, 0xbe, 0x9d, 0xef, 0x5b, 0xae, 0x23, 0xe3, 0x23, 0xaf,
+ 0xc3, 0x70, 0x20, 0x4d, 0x54, 0x83, 0x5d, 0xe9, 0xe5, 0xe6, 0x62, 0x65, 0x9e, 0x52, 0x58, 0xda,
+ 0xdf, 0x15, 0xa1, 0x16, 0x6e, 0x27, 0x0f, 0x10, 0x77, 0xd8, 0x85, 0x5a, 0xe8, 0x6f, 0x93, 0xfb,
+ 0xb7, 0x67, 0x91, 0x1b, 0x08, 0xdf, 0x01, 0x85, 0xaf, 0x18, 0xf1, 0x88, 0xfb, 0xf2, 0x94, 0x72,
+ 0xf8, 0xf2, 0x74, 0x60, 0x38, 0xf0, 0xac, 0x56, 0x4b, 0xea, 0xb6, 0x79, 0x9c, 0x79, 0x42, 0x71,
+ 0xad, 0x09, 0x40, 0x29, 0x59, 0xf1, 0x82, 0x8a, 0x8d, 0xf6, 0x1a, 0x8c, 0xa7, 0x29, 0xb9, 0xe2,
+ 0x67, 0x6c, 0x51, 0xb3, 0x6b, 0x2b, 0x19, 0x47, 0x8a, 0x9f, 0x4c, 0xc7, 0x90, 0x82, 0x6d, 0xfe,
+ 0xd8, 0x67, 0x7a, 0xc3, 0x75, 0xd4, 0xb6, 0x9a, 0xeb, 0xd0, 0x6b, 0x32, 0x0d, 0xc3, 0x5c, 0xed,
+ 0x9f, 0x4b, 0x70, 0x36, 0x32, 0x0a, 0xac, 0xe8, 0x8e, 0xde, 0x3a, 0xc0, 0xbf, 0xae, 0xde, 0xbf,
+ 0x24, 0x71, 0xd8, 0xe0, 0xf1, 0xa5, 0x07, 0x20, 0x78, 0xfc, 0x4f, 0x0a, 0xc0, 0x7d, 0x03, 0xc9,
+ 0x17, 0x61, 0x44, 0x8f, 0xfd, 0xe6, 0x50, 0x7e, 0xce, 0xcb, 0xb9, 0x3f, 0x27, 0x77, 0x41, 0x0c,
+ 0x7d, 0x5d, 0xe2, 0xa9, 0x98, 0x60, 0x48, 0x5c, 0xa8, 0x6e, 0xea, 0xb6, 0xcd, 0x74, 0xa1, 0xdc,
+ 0x87, 0x1c, 0x09, 0xe6, 0xbc, 0x9b, 0x2f, 0x48, 0x68, 0x0c, 0x99, 0x68, 0xff, 0x54, 0x80, 0xd1,
+ 0xa6, 0x6d, 0x99, 0x96, 0xd3, 0x3a, 0xc6, 0xa8, 0xf1, 0x37, 0xa0, 0xe2, 0xdb, 0x96, 0x49, 0x07,
+ 0x9c, 0xc7, 0xc5, 0x0a, 0xc2, 0x00, 0x50, 0xe0, 0x24, 0xc3, 0xd0, 0x97, 0x0e, 0x10, 0x86, 0xfe,
+ 0x67, 0x43, 0x20, 0xfd, 0x4b, 0x49, 0x17, 0x6a, 0x2d, 0x15, 0xdd, 0x5a, 0xb6, 0xf1, 0x4a, 0x8e,
+ 0xc8, 0x68, 0x89, 0x38, 0xd9, 0x62, 0xd6, 0x0d, 0x13, 0x31, 0xe2, 0x44, 0x68, 0xf2, 0xcf, 0x96,
+ 0xf3, 0x39, 0xff, 0x6c, 0x29, 0xd8, 0xf5, 0xfe, 0xdb, 0x52, 0x87, 0xf2, 0x56, 0x10, 0x74, 0xe4,
+ 0xb8, 0x1a, 0xdc, 0x81, 0x38, 0x0a, 0xce, 0x21, 0xb4, 0x11, 0xf6, 0x8e, 0x1c, 0x9a, 0xb1, 0x70,
+ 0xf4, 0xf0, 0x87, 0x4a, 0x73, 0xb9, 0x0e, 0xba, 0xe3, 0x2c, 0xd8, 0x3b, 0x72, 0x68, 0xf2, 0x05,
+ 0xa8, 0x07, 0x9e, 0xee, 0xf8, 0x9b, 0xae, 0xd7, 0xa6, 0x9e, 0xdc, 0x1d, 0x2e, 0xe4, 0xf8, 0xb9,
+ 0xe3, 0x5a, 0x84, 0x26, 0x4e, 0xd0, 0x12, 0x49, 0x18, 0xe7, 0x46, 0xb6, 0xa1, 0xda, 0x35, 0x45,
+ 0xc5, 0xa4, 0xd9, 0x64, 0x36, 0xcf, 0xff, 0x3a, 0x63, 0xc7, 0xd8, 0xea, 0x0d, 0x43, 0x06, 0xc9,
+ 0x7f, 0x87, 0x0d, 0x1f, 0xd5, 0xbf, 0xc3, 0xe2, 0xbd, 0x31, 0x2b, 0x72, 0x00, 0x69, 0x4b, 0x8d,
+ 0xd2, 0x69, 0x49, 0x2f, 0x9c, 0x85, 0xdc, 0xca, 0x9e, 0x60, 0x59, 0x0f, 0xb5, 0x52, 0xa7, 0x85,
+ 0x8a, 0x87, 0xd6, 0x06, 0x69, 0xdd, 0x26, 0x46, 0xe2, 0x0f, 0x1b, 0xe2, 0x3a, 0xcb, 0xf4, 0xc1,
+ 0xe6, 0x83, 0xf0, 0x57, 0x0f, 0xb1, 0x08, 0xbf, 0x99, 0xbf, 0xd2, 0xd0, 0xfe, 0xbe, 0x08, 0xa5,
+ 0xb5, 0xe5, 0xa6, 0x88, 0xda, 0xc7, 0x7f, 0x5f, 0x43, 0x9b, 0xdb, 0x56, 0xe7, 0x26, 0xf5, 0xac,
+ 0xcd, 0x5d, 0xb9, 0xe9, 0x8d, 0x45, 0xed, 0x4b, 0x53, 0x60, 0x46, 0x29, 0xf2, 0x0a, 0x8c, 0x18,
+ 0xfa, 0x1c, 0xf5, 0x82, 0x41, 0xb6, 0xf4, 0xfc, 0xde, 0xde, 0xdc, 0x6c, 0x54, 0x1c, 0x13, 0x60,
+ 0x64, 0x1d, 0xc0, 0x88, 0xa0, 0x4b, 0x87, 0x36, 0x44, 0xc4, 0x80, 0x63, 0x40, 0x04, 0xa1, 0xb6,
+ 0xcd, 0x48, 0x39, 0x6a, 0xf9, 0x30, 0xa8, 0xbc, 0xe7, 0x5c, 0x53, 0x65, 0x31, 0x82, 0xd1, 0x1c,
+ 0x18, 0x4d, 0xfc, 0x76, 0x83, 0x7c, 0x0c, 0xaa, 0x6e, 0x27, 0x36, 0x9d, 0xd6, 0xb8, 0xbf, 0x5f,
+ 0xf5, 0x86, 0x4c, 0xbb, 0xb3, 0x37, 0x39, 0xba, 0xec, 0xb6, 0x2c, 0x43, 0x25, 0x60, 0x48, 0x4e,
+ 0x34, 0x18, 0xe2, 0x97, 0x6d, 0xd4, 0x4f, 0x37, 0xf8, 0xda, 0xc1, 0xe3, 0xe2, 0xfb, 0x28, 0x73,
+ 0xb4, 0x2f, 0x95, 0x21, 0x3a, 0x13, 0x22, 0x3e, 0x0c, 0x09, 0x67, 0x62, 0x39, 0x73, 0x1f, 0xab,
+ 0xdf, 0xb2, 0x64, 0x45, 0x5a, 0x50, 0x7a, 0xcd, 0xdd, 0xc8, 0x3d, 0x71, 0xc7, 0x6e, 0xd9, 0x0a,
+ 0x2b, 0x55, 0x2c, 0x01, 0x19, 0x07, 0xf2, 0xeb, 0x05, 0x38, 0xe9, 0xa7, 0x95, 0x4e, 0xd9, 0x1d,
+ 0x30, 0xbf, 0x76, 0x9d, 0x56, 0x63, 0xa5, 0x63, 0x66, 0xbf, 0x6c, 0xec, 0xad, 0x0b, 0x93, 0xbf,
+ 0x38, 0xac, 0x91, 0xdd, 0x69, 0x31, 0xe7, 0xaf, 0xe2, 0x92, 0xf2, 0x4f, 0xa6, 0xa1, 0x64, 0xa5,
+ 0x7d, 0xa5, 0x08, 0xf5, 0xd8, 0x6c, 0x9d, 0xfb, 0x5f, 0x2e, 0xb7, 0x53, 0xff, 0x72, 0x59, 0x1d,
+ 0xfc, 0xec, 0x32, 0xaa, 0xd5, 0x71, 0xff, 0xce, 0xe5, 0xcf, 0x8b, 0x50, 0x5a, 0x9f, 0x5f, 0x48,
+ 0x6e, 0x17, 0x0b, 0xf7, 0x61, 0xbb, 0xb8, 0x05, 0xc3, 0x1b, 0x5d, 0xcb, 0x0e, 0x2c, 0x27, 0x77,
+ 0x1c, 0x00, 0xf5, 0xeb, 0x1b, 0x79, 0x9d, 0x56, 0xa0, 0xa2, 0x82, 0x27, 0x2d, 0x18, 0x6e, 0x89,
+ 0x40, 0x6c, 0xb9, 0x3d, 0xba, 0x64, 0x40, 0x37, 0xc1, 0x48, 0xbe, 0xa0, 0x42, 0xd7, 0x76, 0x41,
+ 0xfe, 0x3c, 0xfb, 0xbe, 0x4b, 0x53, 0xfb, 0x02, 0x84, 0x5a, 0xc0, 0xfd, 0x67, 0xfe, 0xaf, 0x05,
+ 0x48, 0x2a, 0x3e, 0xf7, 0xbf, 0x37, 0x6d, 0xa7, 0x7b, 0xd3, 0xfc, 0x51, 0x0c, 0xbe, 0xec, 0x0e,
+ 0xa5, 0xfd, 0x51, 0x11, 0x86, 0xee, 0xdb, 0xdd, 0x4d, 0x9a, 0x70, 0x4e, 0x9b, 0xcb, 0x39, 0x31,
+ 0xf6, 0x75, 0x4d, 0x6b, 0xa7, 0x5c, 0xd3, 0xf2, 0xfe, 0xac, 0xf3, 0x1e, 0x8e, 0x69, 0x7f, 0x5d,
+ 0x00, 0x39, 0x2d, 0x2f, 0x39, 0x7e, 0xa0, 0x3b, 0x06, 0xff, 0x67, 0xbc, 0x5c, 0x03, 0xf2, 0x7a,
+ 0x40, 0x48, 0x2f, 0x21, 0xb1, 0xec, 0xf3, 0x67, 0x35, 0xe7, 0x93, 0x8f, 0x40, 0x75, 0xcb, 0xf5,
+ 0x03, 0x3e, 0xcf, 0x17, 0x93, 0x76, 0x9d, 0x2b, 0x32, 0x1d, 0x43, 0x8a, 0xf4, 0x49, 0x61, 0xa5,
+ 0xff, 0x49, 0xa1, 0xf6, 0xad, 0x22, 0x8c, 0xbc, 0x57, 0x2e, 0xa0, 0x66, 0xb9, 0xf2, 0x95, 0x72,
+ 0xba, 0xf2, 0x95, 0x0f, 0xe3, 0xca, 0xa7, 0x7d, 0xaf, 0x00, 0x70, 0xdf, 0x6e, 0xbf, 0x9a, 0x49,
+ 0x2f, 0xbb, 0xdc, 0xfd, 0x2a, 0xdb, 0xc7, 0xee, 0xf7, 0x2b, 0xaa, 0x49, 0xdc, 0xc3, 0xee, 0xcd,
+ 0x02, 0x8c, 0xe9, 0x09, 0xaf, 0xb5, 0xdc, 0xaa, 0x65, 0xca, 0x09, 0x2e, 0xbc, 0xe9, 0x97, 0x4c,
+ 0xc7, 0x14, 0x5b, 0xf2, 0x7c, 0x14, 0x79, 0xf5, 0x7a, 0xd4, 0xed, 0x7b, 0x42, 0xa6, 0x72, 0x35,
+ 0x27, 0x41, 0x79, 0x0f, 0x2f, 0xc1, 0xd2, 0x91, 0x78, 0x09, 0xc6, 0xef, 0x3f, 0x95, 0xef, 0x7a,
+ 0xff, 0x69, 0x07, 0x6a, 0x9b, 0x9e, 0xdb, 0xe6, 0x8e, 0x78, 0xf2, 0x37, 0x9f, 0x97, 0x73, 0xac,
+ 0x29, 0xd1, 0x0f, 0xae, 0x23, 0x1b, 0xcf, 0x82, 0xc2, 0xc7, 0x88, 0x15, 0x37, 0x48, 0xbb, 0x82,
+ 0xeb, 0xd0, 0x51, 0x72, 0x0d, 0xe7, 0x92, 0x35, 0x81, 0x8e, 0x8a, 0x4d, 0xd2, 0xf9, 0x6e, 0xf8,
+ 0xfe, 0x38, 0xdf, 0x69, 0xbf, 0x58, 0x56, 0x13, 0xd8, 0x03, 0x17, 0xe4, 0xef, 0xbd, 0x7f, 0x6b,
+ 0x32, 0x7d, 0xa5, 0x71, 0xf8, 0x3e, 0x5e, 0x69, 0xac, 0x0e, 0xe4, 0xea, 0xb5, 0x57, 0x82, 0xd4,
+ 0xbe, 0xe9, 0xfd, 0xd3, 0x89, 0xff, 0x54, 0xa7, 0x13, 0x6f, 0x15, 0x21, 0x9a, 0x08, 0x0e, 0xe9,
+ 0xbd, 0xf1, 0x32, 0x54, 0xdb, 0xfa, 0xed, 0x79, 0x6a, 0xeb, 0xbb, 0x79, 0xfe, 0xcd, 0xb8, 0x22,
+ 0x31, 0x30, 0x44, 0x23, 0x3e, 0x80, 0x15, 0xc6, 0x47, 0xce, 0x6d, 0x6d, 0x8e, 0x42, 0x2d, 0x0b,
+ 0x7b, 0x56, 0xf4, 0x8e, 0x31, 0x36, 0xda, 0x5f, 0x15, 0x41, 0x06, 0xd2, 0x26, 0x14, 0x2a, 0x9b,
+ 0xd6, 0x6d, 0x6a, 0xe6, 0xf6, 0x64, 0x8c, 0xfd, 0x31, 0x57, 0x98, 0xd3, 0x79, 0x02, 0x0a, 0x74,
+ 0x6e, 0x27, 0x15, 0xc7, 0x23, 0x52, 0x7e, 0x39, 0xec, 0xa4, 0xf1, 0x63, 0x16, 0x69, 0x27, 0x15,
+ 0x49, 0xa8, 0x78, 0x08, 0xb3, 0x2c, 0x3f, 0xa3, 0x96, 0x22, 0xcd, 0x63, 0x96, 0x8d, 0x9d, 0x75,
+ 0x2b, 0xb3, 0xac, 0x2f, 0xee, 0x34, 0x4b, 0x1e, 0x8d, 0xcf, 0x7d, 0xf7, 0xfb, 0x17, 0x1e, 0xfa,
+ 0xde, 0xf7, 0x2f, 0x3c, 0xf4, 0xce, 0xf7, 0x2f, 0x3c, 0xf4, 0xa5, 0xfd, 0x0b, 0x85, 0xef, 0xee,
+ 0x5f, 0x28, 0x7c, 0x6f, 0xff, 0x42, 0xe1, 0x9d, 0xfd, 0x0b, 0x85, 0x7f, 0xd8, 0xbf, 0x50, 0xf8,
+ 0x95, 0x7f, 0xbc, 0xf0, 0xd0, 0x67, 0x9f, 0x8b, 0xaa, 0x30, 0xad, 0xaa, 0x30, 0xad, 0x18, 0x4e,
+ 0x77, 0xb6, 0x5b, 0xd3, 0xac, 0x0a, 0x51, 0x8a, 0xaa, 0xc2, 0x7f, 0x04, 0x00, 0x00, 0xff, 0xff,
+ 0xb2, 0x71, 0xfd, 0x11, 0x25, 0x93, 0x00, 0x00,
}
func (m *AbstractPodTemplate) Marshal() (dAtA []byte, err error) {
@@ -3192,6 +3194,20 @@ func (m *AbstractPodTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.ResourceClaims) > 0 {
+ for iNdEx := len(m.ResourceClaims) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.ResourceClaims[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x72
+ }
+ }
if m.DNSConfig != nil {
{
size, err := m.DNSConfig.MarshalToSizedBuffer(dAtA[:i])
@@ -9058,6 +9074,12 @@ func (m *AbstractPodTemplate) Size() (n int) {
l = m.DNSConfig.Size()
n += 1 + l + sovGenerated(uint64(l))
}
+ if len(m.ResourceClaims) > 0 {
+ for _, e := range m.ResourceClaims {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
return n
}
@@ -11162,6 +11184,11 @@ func (this *AbstractPodTemplate) String() string {
repeatedStringForImagePullSecrets += fmt.Sprintf("%v", f) + ","
}
repeatedStringForImagePullSecrets += "}"
+ repeatedStringForResourceClaims := "[]PodResourceClaim{"
+ for _, f := range this.ResourceClaims {
+ repeatedStringForResourceClaims += fmt.Sprintf("%v", f) + ","
+ }
+ repeatedStringForResourceClaims += "}"
keysForNodeSelector := make([]string, 0, len(this.NodeSelector))
for k := range this.NodeSelector {
keysForNodeSelector = append(keysForNodeSelector, k)
@@ -11186,6 +11213,7 @@ func (this *AbstractPodTemplate) String() string {
`AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`,
`DNSPolicy:` + fmt.Sprintf("%v", this.DNSPolicy) + `,`,
`DNSConfig:` + strings.Replace(fmt.Sprintf("%v", this.DNSConfig), "PodDNSConfig", "v1.PodDNSConfig", 1) + `,`,
+ `ResourceClaims:` + repeatedStringForResourceClaims + `,`,
`}`,
}, "")
return s
@@ -13157,6 +13185,40 @@ func (m *AbstractPodTemplate) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ResourceClaims", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ResourceClaims = append(m.ResourceClaims, v1.PodResourceClaim{})
+ if err := m.ResourceClaims[len(m.ResourceClaims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
diff --git a/pkg/apis/numaflow/v1alpha1/generated.proto b/pkg/apis/numaflow/v1alpha1/generated.proto
index 588b26c9af..b8935365e6 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.proto
+++ b/pkg/apis/numaflow/v1alpha1/generated.proto
@@ -114,6 +114,14 @@ message AbstractPodTemplate {
// configuration based on DNSPolicy.
// +optional
optional k8s.io.api.core.v1.PodDNSConfig dnsConfig = 13;
+
+ // ResourceClaims defines which ResourceClaims must be allocated and reserved
+ // before the Pod is allowed to start. The resources will be made available to those
+ // containers which consume them by name.
+ // +patchMergeKey=name
+ // +patchStrategy=merge,retainKeys
+ // +optional
+ repeated k8s.io.api.core.v1.PodResourceClaim resourceClaims = 14;
}
message AbstractSink {
diff --git a/pkg/apis/numaflow/v1alpha1/openapi_generated.go b/pkg/apis/numaflow/v1alpha1/openapi_generated.go
index 7189543f3b..0d129cdab1 100644
--- a/pkg/apis/numaflow/v1alpha1/openapi_generated.go
+++ b/pkg/apis/numaflow/v1alpha1/openapi_generated.go
@@ -249,11 +249,31 @@ func schema_pkg_apis_numaflow_v1alpha1_AbstractPodTemplate(ref common.ReferenceC
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
}
}
@@ -451,6 +471,26 @@ func schema_pkg_apis_numaflow_v1alpha1_AbstractVertex(ref common.ReferenceCallba
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"volumes": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
@@ -544,7 +584,7 @@ func schema_pkg_apis_numaflow_v1alpha1_AbstractVertex(ref common.ReferenceCallba
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
}
}
@@ -999,6 +1039,26 @@ func schema_pkg_apis_numaflow_v1alpha1_DaemonTemplate(ref common.ReferenceCallba
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"replicas": {
SchemaProps: spec.SchemaProps{
Description: "Replicas is the number of desired replicas of the Deployment. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller",
@@ -1020,7 +1080,7 @@ func schema_pkg_apis_numaflow_v1alpha1_DaemonTemplate(ref common.ReferenceCallba
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
}
}
@@ -2369,6 +2429,26 @@ func schema_pkg_apis_numaflow_v1alpha1_JetStreamBufferService(ref common.Referen
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"settings": {
SchemaProps: spec.SchemaProps{
Description: "Nats/JetStream configuration, if not specified, global settings in numaflow-controller-config will be used. See https://docs.nats.io/running-a-nats-service/configuration#limits and https://docs.nats.io/running-a-nats-service/configuration#jetstream. For limits, only \"max_payload\" is supported for configuration, defaults to 1048576 (1MB), not recommended to use values over 8388608 (8MB) but max_payload can be set up to 67108864 (64MB). For jetstream, only \"max_memory_store\" and \"max_file_store\" are supported for configuration, do not set \"store_dir\" as it has been hardcoded.",
@@ -2416,7 +2496,7 @@ func schema_pkg_apis_numaflow_v1alpha1_JetStreamBufferService(ref common.Referen
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
}
}
@@ -2624,6 +2704,26 @@ func schema_pkg_apis_numaflow_v1alpha1_JobTemplate(ref common.ReferenceCallback)
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"containerTemplate": {
SchemaProps: spec.SchemaProps{
Ref: ref("github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate"),
@@ -2647,7 +2747,7 @@ func schema_pkg_apis_numaflow_v1alpha1_JobTemplate(ref common.ReferenceCallback)
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
}
}
@@ -3110,6 +3210,26 @@ func schema_pkg_apis_numaflow_v1alpha1_MonoVertexSpec(ref common.ReferenceCallba
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"containerTemplate": {
SchemaProps: spec.SchemaProps{
Description: "Container template for the main numa container.",
@@ -3186,7 +3306,7 @@ func schema_pkg_apis_numaflow_v1alpha1_MonoVertexSpec(ref common.ReferenceCallba
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.DaemonTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.DaemonTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
}
}
@@ -3436,6 +3556,26 @@ func schema_pkg_apis_numaflow_v1alpha1_NativeRedis(ref common.ReferenceCallback)
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"settings": {
SchemaProps: spec.SchemaProps{
Description: "Redis configuration, if not specified, global settings in numaflow-controller-config will be used.",
@@ -3446,7 +3586,7 @@ func schema_pkg_apis_numaflow_v1alpha1_NativeRedis(ref common.ReferenceCallback)
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.RedisSettings", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.RedisSettings", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
}
}
@@ -4522,6 +4662,26 @@ func schema_pkg_apis_numaflow_v1alpha1_SideInputsManagerTemplate(ref common.Refe
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"containerTemplate": {
SchemaProps: spec.SchemaProps{
Description: "Template for the side inputs manager numa container",
@@ -4538,7 +4698,7 @@ func schema_pkg_apis_numaflow_v1alpha1_SideInputsManagerTemplate(ref common.Refe
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
}
}
@@ -5286,6 +5446,26 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexSpec(ref common.ReferenceCallback)
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"volumes": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
@@ -5432,7 +5612,7 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexSpec(ref common.ReferenceCallback)
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.CombinedEdge", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Watermark", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.CombinedEdge", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Watermark", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
}
}
@@ -5636,6 +5816,26 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexTemplate(ref common.ReferenceCallba
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
},
},
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
"containerTemplate": {
SchemaProps: spec.SchemaProps{
Description: "Template for the vertex numa container",
@@ -5652,7 +5852,7 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexTemplate(ref common.ReferenceCallba
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
}
}
diff --git a/pkg/apis/numaflow/v1alpha1/pod_template.go b/pkg/apis/numaflow/v1alpha1/pod_template.go
index 442ede947c..553e280efc 100644
--- a/pkg/apis/numaflow/v1alpha1/pod_template.go
+++ b/pkg/apis/numaflow/v1alpha1/pod_template.go
@@ -90,6 +90,13 @@ type AbstractPodTemplate struct {
// configuration based on DNSPolicy.
// +optional
DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty" protobuf:"bytes,13,opt,name=dnsConfig"`
+ // ResourceClaims defines which ResourceClaims must be allocated and reserved
+ // before the Pod is allowed to start. The resources will be made available to those
+ // containers which consume them by name.
+ // +patchMergeKey=name
+ // +patchStrategy=merge,retainKeys
+ // +optional
+ ResourceClaims []corev1.PodResourceClaim `json:"resourceClaims,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name" protobuf:"bytes,14,rep,name=resourceClaims"`
}
// ApplyToPodSpec updates the PodSpec with the values in the AbstractPodTemplate
@@ -130,6 +137,9 @@ func (apt *AbstractPodTemplate) ApplyToPodSpec(ps *corev1.PodSpec) {
if ps.DNSConfig == nil {
ps.DNSConfig = apt.DNSConfig
}
+ if len(ps.ResourceClaims) == 0 {
+ ps.ResourceClaims = apt.ResourceClaims
+ }
}
// ApplyToPodTemplateSpec updates the PodTemplateSpec with the values in the AbstractPodTemplate
diff --git a/pkg/apis/numaflow/v1alpha1/pod_template_test.go b/pkg/apis/numaflow/v1alpha1/pod_template_test.go
index 4a54f4a288..40d6072f45 100644
--- a/pkg/apis/numaflow/v1alpha1/pod_template_test.go
+++ b/pkg/apis/numaflow/v1alpha1/pod_template_test.go
@@ -71,6 +71,11 @@ func TestApplyToPodSpec(t *testing.T) {
},
},
ServiceAccountName: "template-sa",
+ ResourceClaims: []corev1.PodResourceClaim{
+ {
+ Name: "template-resource-claim",
+ },
+ },
}
podSpec := &corev1.PodSpec{
@@ -92,4 +97,5 @@ func TestApplyToPodSpec(t *testing.T) {
assert.Equal(t, podSpec.Priority, abstractPodTemplate.Priority)
assert.Equal(t, podSpec.Affinity, abstractPodTemplate.Affinity)
assert.Equal(t, podSpec.ServiceAccountName, "spec-sa")
+ assert.Equal(t, podSpec.ResourceClaims[0].Name, "template-resource-claim")
}
diff --git a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
index 81d1a53700..a5ee6d9b6f 100644
--- a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
@@ -84,6 +84,13 @@ func (in *AbstractPodTemplate) DeepCopyInto(out *AbstractPodTemplate) {
*out = new(v1.PodDNSConfig)
(*in).DeepCopyInto(*out)
}
+ if in.ResourceClaims != nil {
+ in, out := &in.ResourceClaims, &out.ResourceClaims
+ *out = make([]v1.PodResourceClaim, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
return
}
diff --git a/rust/numaflow-models/Makefile b/rust/numaflow-models/Makefile
index 5ff0bf7e53..3e38249cae 100644
--- a/rust/numaflow-models/Makefile
+++ b/rust/numaflow-models/Makefile
@@ -50,6 +50,7 @@ generate:
--type-mappings CoreV1ContainerResizePolicy="k8s_openapi::api::core::v1::ContainerResizePolicy" \
--type-mappings CoreV1Container="k8s_openapi::api::core::v1::Container" \
--type-mappings CoreV1Volume="k8s_openapi::api::core::v1::Volume" \
+ --type-mappings CoreV1PodResourceClaim="k8s_openapi::api::core::v1::PodResourceClaim" \
--type-mappings CoreV1EmptyDirVolumeSource="k8s_openapi::api::core::v1::EmptyDirVolumeSource" \
--type-mappings MetaV1Duration="kube::core::Duration" \
--type-mappings MetaV1ListMeta="k8s_openapi::apimachinery::pkg::apis::meta::v1::ListMeta" \
diff --git a/rust/numaflow-models/src/models/abstract_pod_template.rs b/rust/numaflow-models/src/models/abstract_pod_template.rs
index 612ade86b6..7315dc4d90 100644
--- a/rust/numaflow-models/src/models/abstract_pod_template.rs
+++ b/rust/numaflow-models/src/models/abstract_pod_template.rs
@@ -47,6 +47,9 @@ pub struct AbstractPodTemplate {
/// If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
#[serde(rename = "priorityClassName", skip_serializing_if = "Option::is_none")]
pub priority_class_name: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -73,6 +76,7 @@ impl AbstractPodTemplate {
node_selector: None,
priority: None,
priority_class_name: None,
+ resource_claims: None,
runtime_class_name: None,
security_context: None,
service_account_name: None,
diff --git a/rust/numaflow-models/src/models/abstract_vertex.rs b/rust/numaflow-models/src/models/abstract_vertex.rs
index a93bcc3ac0..23fb85c813 100644
--- a/rust/numaflow-models/src/models/abstract_vertex.rs
+++ b/rust/numaflow-models/src/models/abstract_vertex.rs
@@ -62,6 +62,9 @@ pub struct AbstractVertex {
/// If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
#[serde(rename = "priorityClassName", skip_serializing_if = "Option::is_none")]
pub priority_class_name: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -114,6 +117,7 @@ impl AbstractVertex {
partitions: None,
priority: None,
priority_class_name: None,
+ resource_claims: None,
runtime_class_name: None,
scale: None,
security_context: None,
diff --git a/rust/numaflow-models/src/models/daemon_template.rs b/rust/numaflow-models/src/models/daemon_template.rs
index 5d03240b86..c6394874fd 100644
--- a/rust/numaflow-models/src/models/daemon_template.rs
+++ b/rust/numaflow-models/src/models/daemon_template.rs
@@ -55,6 +55,9 @@ pub struct DaemonTemplate {
/// Replicas is the number of desired replicas of the Deployment. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
#[serde(rename = "replicas", skip_serializing_if = "Option::is_none")]
pub replicas: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -83,6 +86,7 @@ impl DaemonTemplate {
priority: None,
priority_class_name: None,
replicas: None,
+ resource_claims: None,
runtime_class_name: None,
security_context: None,
service_account_name: None,
diff --git a/rust/numaflow-models/src/models/jet_stream_buffer_service.rs b/rust/numaflow-models/src/models/jet_stream_buffer_service.rs
index 96dce5855c..9d434864e7 100644
--- a/rust/numaflow-models/src/models/jet_stream_buffer_service.rs
+++ b/rust/numaflow-models/src/models/jet_stream_buffer_service.rs
@@ -68,6 +68,9 @@ pub struct JetStreamBufferService {
/// JetStream StatefulSet size
#[serde(rename = "replicas", skip_serializing_if = "Option::is_none")]
pub replicas: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -112,6 +115,7 @@ impl JetStreamBufferService {
priority_class_name: None,
reloader_container_template: None,
replicas: None,
+ resource_claims: None,
runtime_class_name: None,
security_context: None,
service_account_name: None,
diff --git a/rust/numaflow-models/src/models/job_template.rs b/rust/numaflow-models/src/models/job_template.rs
index 6c273d4db0..d41b0d3340 100644
--- a/rust/numaflow-models/src/models/job_template.rs
+++ b/rust/numaflow-models/src/models/job_template.rs
@@ -50,6 +50,9 @@ pub struct JobTemplate {
/// If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
#[serde(rename = "priorityClassName", skip_serializing_if = "Option::is_none")]
pub priority_class_name: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -83,6 +86,7 @@ impl JobTemplate {
node_selector: None,
priority: None,
priority_class_name: None,
+ resource_claims: None,
runtime_class_name: None,
security_context: None,
service_account_name: None,
diff --git a/rust/numaflow-models/src/models/mono_vertex_spec.rs b/rust/numaflow-models/src/models/mono_vertex_spec.rs
index 1041fbafb7..8eadbbdaab 100644
--- a/rust/numaflow-models/src/models/mono_vertex_spec.rs
+++ b/rust/numaflow-models/src/models/mono_vertex_spec.rs
@@ -56,6 +56,9 @@ pub struct MonoVertexSpec {
pub priority_class_name: Option,
#[serde(rename = "replicas", skip_serializing_if = "Option::is_none")]
pub replicas: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -97,6 +100,7 @@ impl MonoVertexSpec {
priority: None,
priority_class_name: None,
replicas: None,
+ resource_claims: None,
runtime_class_name: None,
scale: None,
security_context: None,
diff --git a/rust/numaflow-models/src/models/native_redis.rs b/rust/numaflow-models/src/models/native_redis.rs
index 3200cd7731..2516bd5e23 100644
--- a/rust/numaflow-models/src/models/native_redis.rs
+++ b/rust/numaflow-models/src/models/native_redis.rs
@@ -65,6 +65,9 @@ pub struct NativeRedis {
/// Redis StatefulSet size
#[serde(rename = "replicas", skip_serializing_if = "Option::is_none")]
pub replicas: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -105,6 +108,7 @@ impl NativeRedis {
priority_class_name: None,
redis_container_template: None,
replicas: None,
+ resource_claims: None,
runtime_class_name: None,
security_context: None,
sentinel_container_template: None,
diff --git a/rust/numaflow-models/src/models/side_inputs_manager_template.rs b/rust/numaflow-models/src/models/side_inputs_manager_template.rs
index d1b4fa8cb4..ec9d3f1073 100644
--- a/rust/numaflow-models/src/models/side_inputs_manager_template.rs
+++ b/rust/numaflow-models/src/models/side_inputs_manager_template.rs
@@ -52,6 +52,9 @@ pub struct SideInputsManagerTemplate {
/// If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
#[serde(rename = "priorityClassName", skip_serializing_if = "Option::is_none")]
pub priority_class_name: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -79,6 +82,7 @@ impl SideInputsManagerTemplate {
node_selector: None,
priority: None,
priority_class_name: None,
+ resource_claims: None,
runtime_class_name: None,
security_context: None,
service_account_name: None,
diff --git a/rust/numaflow-models/src/models/vertex_spec.rs b/rust/numaflow-models/src/models/vertex_spec.rs
index 078879d286..a647ecc7ae 100644
--- a/rust/numaflow-models/src/models/vertex_spec.rs
+++ b/rust/numaflow-models/src/models/vertex_spec.rs
@@ -73,6 +73,9 @@ pub struct VertexSpec {
pub priority_class_name: Option,
#[serde(rename = "replicas", skip_serializing_if = "Option::is_none")]
pub replicas: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -133,6 +136,7 @@ impl VertexSpec {
priority: None,
priority_class_name: None,
replicas: None,
+ resource_claims: None,
runtime_class_name: None,
scale: None,
security_context: None,
diff --git a/rust/numaflow-models/src/models/vertex_template.rs b/rust/numaflow-models/src/models/vertex_template.rs
index 85d743546d..b707cd2ed0 100644
--- a/rust/numaflow-models/src/models/vertex_template.rs
+++ b/rust/numaflow-models/src/models/vertex_template.rs
@@ -52,6 +52,9 @@ pub struct VertexTemplate {
/// If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
#[serde(rename = "priorityClassName", skip_serializing_if = "Option::is_none")]
pub priority_class_name: Option,
+ /// ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.
+ #[serde(rename = "resourceClaims", skip_serializing_if = "Option::is_none")]
+ pub resource_claims: Option>,
/// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
#[serde(rename = "runtimeClassName", skip_serializing_if = "Option::is_none")]
pub runtime_class_name: Option,
@@ -79,6 +82,7 @@ impl VertexTemplate {
node_selector: None,
priority: None,
priority_class_name: None,
+ resource_claims: None,
runtime_class_name: None,
security_context: None,
service_account_name: None,