diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index ebfbf85934..0ab8c7eb30 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -68781,7 +68781,7 @@ }, "rbd": { "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource" + "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource" }, "scaleIO": { "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", @@ -69424,6 +69424,50 @@ } } }, + "io.k8s.api.core.v1.RBDPersistentVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], + "properties": { + "fsType": { + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "type": "string" + }, + "image": { + "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "keyring": { + "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "monitors": { + "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "pool": { + "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "boolean" + }, + "secretRef": { + "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" + }, + "user": { + "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + } + }, "io.k8s.api.core.v1.RBDVolumeSource": { "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "required": [ diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index feb1550d3e..25736020e7 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -20529,7 +20529,7 @@ "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" }, "rbd": { - "$ref": "v1.RBDVolumeSource", + "$ref": "v1.RBDPersistentVolumeSource", "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" }, "iscsi": { @@ -20737,8 +20737,8 @@ } } }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", + "v1.RBDPersistentVolumeSource": { + "id": "v1.RBDPersistentVolumeSource", "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "required": [ "monitors", @@ -20773,7 +20773,7 @@ "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, "secretRef": { - "$ref": "v1.LocalObjectReference", + "$ref": "v1.SecretReference", "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, "readOnly": { @@ -20782,13 +20782,17 @@ } } }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "v1.SecretReference": { + "id": "v1.SecretReference", + "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", "properties": { "name": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "Name is unique within a namespace to reference a secret resource." + }, + "namespace": { + "type": "string", + "description": "Namespace defines the space within which the secret name must be unique." } } }, @@ -20851,6 +20855,16 @@ } } }, + "v1.LocalObjectReference": { + "id": "v1.LocalObjectReference", + "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "properties": { + "name": { + "type": "string", + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + } + } + }, "v1.CinderVolumeSource": { "id": "v1.CinderVolumeSource", "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", @@ -20908,20 +20922,6 @@ } } }, - "v1.SecretReference": { - "id": "v1.SecretReference", - "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", - "properties": { - "name": { - "type": "string", - "description": "Name is unique within a namespace to reference a secret resource." - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within which the secret name must be unique." - } - } - }, "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", @@ -21674,6 +21674,51 @@ } } }, + "v1.RBDVolumeSource": { + "id": "v1.RBDVolumeSource", + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], + "properties": { + "monitors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "image": { + "type": "string", + "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "fsType": { + "type": "string", + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd" + }, + "pool": { + "type": "string", + "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "user": { + "type": "string", + "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "keyring": { + "type": "string", + "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + } + } + }, "v1.CephFSVolumeSource": { "id": "v1.CephFSVolumeSource", "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html index f439b9f008..f458e1865b 100755 --- a/docs/api-reference/v1/definitions.html +++ b/docs/api-reference/v1/definitions.html @@ -7636,7 +7636,7 @@ Examples:

rbd

RBD represents a Rados Block Device mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

false

-

v1.RBDVolumeSource

+

v1.RBDPersistentVolumeSource

@@ -8525,6 +8525,89 @@ Examples:
+ +
+

v1.RBDPersistentVolumeSource

+
+

Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

monitors

A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string array

image

The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

false

string

pool

The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

user

The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

keyring

Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

secretRef

SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

v1.SecretReference

readOnly

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

boolean

false

+

v1.CinderVolumeSource

diff --git a/pkg/api/fuzzer/fuzzer.go b/pkg/api/fuzzer/fuzzer.go index ea9a8f7a97..45575fc90e 100644 --- a/pkg/api/fuzzer/fuzzer.go +++ b/pkg/api/fuzzer/fuzzer.go @@ -355,6 +355,20 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { r.Keyring = "/etc/ceph/keyring" } }, + func(r *api.RBDPersistentVolumeSource, c fuzz.Continue) { + r.RBDPool = c.RandString() + if r.RBDPool == "" { + r.RBDPool = "rbd" + } + r.RadosUser = c.RandString() + if r.RadosUser == "" { + r.RadosUser = "admin" + } + r.Keyring = c.RandString() + if r.Keyring == "" { + r.Keyring = "/etc/ceph/keyring" + } + }, func(obj *api.HostPathVolumeSource, c fuzz.Continue) { c.FuzzNoCustom(obj) types := []api.HostPathType{api.HostPathUnset, api.HostPathDirectoryOrCreate, api.HostPathDirectory, diff --git a/pkg/api/persistentvolume/util.go b/pkg/api/persistentvolume/util.go index 0a8de7c5e6..f05d8cf1b9 100644 --- a/pkg/api/persistentvolume/util.go +++ b/pkg/api/persistentvolume/util.go @@ -64,8 +64,16 @@ func VisitPVSecretNames(pv *api.PersistentVolume, visitor Visitor) bool { return false } case source.RBD != nil: - if source.RBD.SecretRef != nil && !visitor(getClaimRefNamespace(pv), source.RBD.SecretRef.Name) { - return false + if source.RBD.SecretRef != nil { + // previously persisted PV objects use claimRef namespace + ns := getClaimRefNamespace(pv) + if len(source.RBD.SecretRef.Namespace) > 0 { + // use the secret namespace if namespace is set + ns = source.RBD.SecretRef.Namespace + } + if !visitor(ns, source.RBD.SecretRef.Name) { + return false + } } case source.ScaleIO != nil: if source.ScaleIO.SecretRef != nil && !visitor(getClaimRefNamespace(pv), source.ScaleIO.SecretRef.Name) { diff --git a/pkg/api/persistentvolume/util_test.go b/pkg/api/persistentvolume/util_test.go index 8e83f0644c..b4e0a73621 100644 --- a/pkg/api/persistentvolume/util_test.go +++ b/pkg/api/persistentvolume/util_test.go @@ -65,9 +65,16 @@ func TestPVSecrets(t *testing.T) { {Spec: api.PersistentVolumeSpec{ ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, PersistentVolumeSource: api.PersistentVolumeSource{ - RBD: &api.RBDVolumeSource{ - SecretRef: &api.LocalObjectReference{ + RBD: &api.RBDPersistentVolumeSource{ + SecretRef: &api.SecretReference{ Name: "Spec.PersistentVolumeSource.RBD.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + RBD: &api.RBDPersistentVolumeSource{ + SecretRef: &api.SecretReference{ + Name: "Spec.PersistentVolumeSource.RBD.SecretRef", + Namespace: "rbdns"}}}}}, {Spec: api.PersistentVolumeSpec{ ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, PersistentVolumeSource: api.PersistentVolumeSource{ @@ -141,6 +148,7 @@ func TestPVSecrets(t *testing.T) { "cephfs/Spec.PersistentVolumeSource.CephFS.SecretRef", "claimrefns/Spec.PersistentVolumeSource.FlexVolume.SecretRef", "claimrefns/Spec.PersistentVolumeSource.RBD.SecretRef", + "rbdns/Spec.PersistentVolumeSource.RBD.SecretRef", "claimrefns/Spec.PersistentVolumeSource.ScaleIO.SecretRef", "claimrefns/Spec.PersistentVolumeSource.ISCSI.SecretRef", "storageosns/Spec.PersistentVolumeSource.StorageOS.SecretRef", diff --git a/pkg/api/types.go b/pkg/api/types.go index d04612291e..2fbcf5d37b 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -343,7 +343,7 @@ type PersistentVolumeSource struct { NFS *NFSVolumeSource // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime // +optional - RBD *RBDVolumeSource + RBD *RBDPersistentVolumeSource // Quobyte represents a Quobyte mount on the host that shares a pod's lifetime // +optional Quobyte *QuobyteVolumeSource @@ -1006,6 +1006,37 @@ type RBDVolumeSource struct { ReadOnly bool } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +type RBDPersistentVolumeSource struct { + // Required: CephMonitors is a collection of Ceph monitors + CephMonitors []string + // Required: RBDImage is the rados image name + RBDImage string + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + FSType string + // Optional: RadosPool is the rados pool name,default is rbd + // +optional + RBDPool string + // Optional: RBDUser is the rados user name, default is admin + // +optional + RadosUser string + // Optional: Keyring is the path to key ring for RBDUser, default is /etc/ceph/keyring + // +optional + Keyring string + // Optional: SecretRef is reference to the authentication secret for User, default is empty. + // +optional + SecretRef *SecretReference + // Optional: Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + ReadOnly bool +} + // Represents a cinder volume resource in Openstack. A Cinder volume // must exist before mounting to a container. The volume must also be // in the same region as the kubelet. Cinder volumes support ownership diff --git a/pkg/api/v1/defaults.go b/pkg/api/v1/defaults.go index 9bf082d3d9..8b57b76f1c 100644 --- a/pkg/api/v1/defaults.go +++ b/pkg/api/v1/defaults.go @@ -368,6 +368,18 @@ func SetDefaults_RBDVolumeSource(obj *v1.RBDVolumeSource) { } } +func SetDefaults_RBDPersistentVolumeSource(obj *v1.RBDPersistentVolumeSource) { + if obj.RBDPool == "" { + obj.RBDPool = "rbd" + } + if obj.RadosUser == "" { + obj.RadosUser = "admin" + } + if obj.Keyring == "" { + obj.Keyring = "/etc/ceph/keyring" + } +} + func SetDefaults_ScaleIOVolumeSource(obj *v1.ScaleIOVolumeSource) { if obj.ProtectionDomain == "" { obj.ProtectionDomain = "default" diff --git a/pkg/api/v1/zz_generated.conversion.go b/pkg/api/v1/zz_generated.conversion.go index 1937a77ea4..be9341c50a 100644 --- a/pkg/api/v1/zz_generated.conversion.go +++ b/pkg/api/v1/zz_generated.conversion.go @@ -305,6 +305,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_api_ProjectedVolumeSource_To_v1_ProjectedVolumeSource, Convert_v1_QuobyteVolumeSource_To_api_QuobyteVolumeSource, Convert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource, + Convert_v1_RBDPersistentVolumeSource_To_api_RBDPersistentVolumeSource, + Convert_api_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource, Convert_v1_RBDVolumeSource_To_api_RBDVolumeSource, Convert_api_RBDVolumeSource_To_v1_RBDVolumeSource, Convert_v1_RangeAllocation_To_api_RangeAllocation, @@ -3124,7 +3126,7 @@ func autoConvert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource(in *v1. out.HostPath = (*api.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) out.Glusterfs = (*api.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) out.NFS = (*api.NFSVolumeSource)(unsafe.Pointer(in.NFS)) - out.RBD = (*api.RBDVolumeSource)(unsafe.Pointer(in.RBD)) + out.RBD = (*api.RBDPersistentVolumeSource)(unsafe.Pointer(in.RBD)) out.ISCSI = (*api.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) out.Cinder = (*api.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) out.CephFS = (*api.CephFSPersistentVolumeSource)(unsafe.Pointer(in.CephFS)) @@ -3154,7 +3156,7 @@ func autoConvert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *api out.HostPath = (*v1.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) out.Glusterfs = (*v1.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) out.NFS = (*v1.NFSVolumeSource)(unsafe.Pointer(in.NFS)) - out.RBD = (*v1.RBDVolumeSource)(unsafe.Pointer(in.RBD)) + out.RBD = (*v1.RBDPersistentVolumeSource)(unsafe.Pointer(in.RBD)) out.Quobyte = (*v1.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) out.ISCSI = (*v1.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) out.FlexVolume = (*v1.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) @@ -4062,6 +4064,40 @@ func Convert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in *api.QuobyteVo return autoConvert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in, out, s) } +func autoConvert_v1_RBDPersistentVolumeSource_To_api_RBDPersistentVolumeSource(in *v1.RBDPersistentVolumeSource, out *api.RBDPersistentVolumeSource, s conversion.Scope) error { + out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) + out.RBDImage = in.RBDImage + out.FSType = in.FSType + out.RBDPool = in.RBDPool + out.RadosUser = in.RadosUser + out.Keyring = in.Keyring + out.SecretRef = (*api.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_RBDPersistentVolumeSource_To_api_RBDPersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_RBDPersistentVolumeSource_To_api_RBDPersistentVolumeSource(in *v1.RBDPersistentVolumeSource, out *api.RBDPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_RBDPersistentVolumeSource_To_api_RBDPersistentVolumeSource(in, out, s) +} + +func autoConvert_api_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in *api.RBDPersistentVolumeSource, out *v1.RBDPersistentVolumeSource, s conversion.Scope) error { + out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) + out.RBDImage = in.RBDImage + out.FSType = in.FSType + out.RBDPool = in.RBDPool + out.RadosUser = in.RadosUser + out.Keyring = in.Keyring + out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_api_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource is an autogenerated conversion function. +func Convert_api_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in *api.RBDPersistentVolumeSource, out *v1.RBDPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_api_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in, out, s) +} + func autoConvert_v1_RBDVolumeSource_To_api_RBDVolumeSource(in *v1.RBDVolumeSource, out *api.RBDVolumeSource, s conversion.Scope) error { out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) out.RBDImage = in.RBDImage diff --git a/pkg/api/v1/zz_generated.defaults.go b/pkg/api/v1/zz_generated.defaults.go index c41d6ae3e3..43c5ff4a71 100644 --- a/pkg/api/v1/zz_generated.defaults.go +++ b/pkg/api/v1/zz_generated.defaults.go @@ -137,7 +137,7 @@ func SetObjectDefaults_PersistentVolume(in *v1.PersistentVolume) { SetDefaults_HostPathVolumeSource(in.Spec.PersistentVolumeSource.HostPath) } if in.Spec.PersistentVolumeSource.RBD != nil { - SetDefaults_RBDVolumeSource(in.Spec.PersistentVolumeSource.RBD) + SetDefaults_RBDPersistentVolumeSource(in.Spec.PersistentVolumeSource.RBD) } if in.Spec.PersistentVolumeSource.ISCSI != nil { SetDefaults_ISCSIVolumeSource(in.Spec.PersistentVolumeSource.ISCSI) diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index fc7c8a0f04..73645c8db1 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -1088,6 +1088,17 @@ func validateRBDVolumeSource(rbd *api.RBDVolumeSource, fldPath *field.Path) fiel return allErrs } +func validateRBDPersistentVolumeSource(rbd *api.RBDPersistentVolumeSource, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if len(rbd.CephMonitors) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), "")) + } + if len(rbd.RBDImage) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("image"), "")) + } + return allErrs +} + func validateCinderVolumeSource(cd *api.CinderVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(cd.VolumeID) == 0 { @@ -1380,7 +1391,7 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { allErrs = append(allErrs, field.Forbidden(specPath.Child("rbd"), "may not specify more than 1 volume type")) } else { numVolumes++ - allErrs = append(allErrs, validateRBDVolumeSource(pv.Spec.RBD, specPath.Child("rbd"))...) + allErrs = append(allErrs, validateRBDPersistentVolumeSource(pv.Spec.RBD, specPath.Child("rbd"))...) } } if pv.Spec.Quobyte != nil { diff --git a/pkg/api/zz_generated.deepcopy.go b/pkg/api/zz_generated.deepcopy.go index 4929278edc..859341fe19 100644 --- a/pkg/api/zz_generated.deepcopy.go +++ b/pkg/api/zz_generated.deepcopy.go @@ -571,6 +571,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*QuobyteVolumeSource).DeepCopyInto(out.(*QuobyteVolumeSource)) return nil }, InType: reflect.TypeOf(&QuobyteVolumeSource{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RBDPersistentVolumeSource).DeepCopyInto(out.(*RBDPersistentVolumeSource)) + return nil + }, InType: reflect.TypeOf(&RBDPersistentVolumeSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*RBDVolumeSource).DeepCopyInto(out.(*RBDVolumeSource)) return nil @@ -3747,7 +3751,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(RBDVolumeSource) + *out = new(RBDPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -4815,6 +4819,36 @@ func (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) { + *out = *in + if in.CephMonitors != nil { + in, out := &in.CephMonitors, &out.CephMonitors + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource. +func (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource { + if in == nil { + return nil + } + out := new(RBDPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) { *out = *in diff --git a/pkg/printers/internalversion/describe.go b/pkg/printers/internalversion/describe.go index ca8dc4fde8..0c74c9a633 100644 --- a/pkg/printers/internalversion/describe.go +++ b/pkg/printers/internalversion/describe.go @@ -898,6 +898,19 @@ func printRBDVolumeSource(rbd *api.RBDVolumeSource, w PrefixWriter) { rbd.CephMonitors, rbd.RBDImage, rbd.FSType, rbd.RBDPool, rbd.RadosUser, rbd.Keyring, rbd.SecretRef, rbd.ReadOnly) } +func printRBDPersistentVolumeSource(rbd *api.RBDPersistentVolumeSource, w PrefixWriter) { + w.Write(LEVEL_2, "Type:\tRBD (a Rados Block Device mount on the host that shares a pod's lifetime)\n"+ + " CephMonitors:\t%v\n"+ + " RBDImage:\t%v\n"+ + " FSType:\t%v\n"+ + " RBDPool:\t%v\n"+ + " RadosUser:\t%v\n"+ + " Keyring:\t%v\n"+ + " SecretRef:\t%v\n"+ + " ReadOnly:\t%v\n", + rbd.CephMonitors, rbd.RBDImage, rbd.FSType, rbd.RBDPool, rbd.RadosUser, rbd.Keyring, rbd.SecretRef, rbd.ReadOnly) +} + func printDownwardAPIVolumeSource(d *api.DownwardAPIVolumeSource, w PrefixWriter) { w.Write(LEVEL_2, "Type:\tDownwardAPI (a volume populated by information about the pod)\n Items:\n") for _, mapping := range d.Items { @@ -1108,7 +1121,7 @@ func describePersistentVolume(pv *api.PersistentVolume, events *api.EventList) ( case pv.Spec.Glusterfs != nil: printGlusterfsVolumeSource(pv.Spec.Glusterfs, w) case pv.Spec.RBD != nil: - printRBDVolumeSource(pv.Spec.RBD, w) + printRBDPersistentVolumeSource(pv.Spec.RBD, w) case pv.Spec.Quobyte != nil: printQuobyteVolumeSource(pv.Spec.Quobyte, w) case pv.Spec.VsphereVolume != nil: diff --git a/pkg/printers/internalversion/describe_test.go b/pkg/printers/internalversion/describe_test.go index 5fb8795286..b07db28c1e 100644 --- a/pkg/printers/internalversion/describe_test.go +++ b/pkg/printers/internalversion/describe_test.go @@ -776,7 +776,7 @@ func TestPersistentVolumeDescriber(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "bar"}, Spec: api.PersistentVolumeSpec{ PersistentVolumeSource: api.PersistentVolumeSource{ - RBD: &api.RBDVolumeSource{}, + RBD: &api.RBDPersistentVolumeSource{}, }, }, }, diff --git a/pkg/volume/rbd/disk_manager.go b/pkg/volume/rbd/disk_manager.go index d219d62ab1..24a090109f 100644 --- a/pkg/volume/rbd/disk_manager.go +++ b/pkg/volume/rbd/disk_manager.go @@ -39,7 +39,7 @@ type diskManager interface { // Detaches the disk from the kubelet's host machine. DetachDisk(disk rbdUnmounter, mntPath string) error // Creates a rbd image - CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDVolumeSource, volumeSizeGB int, err error) + CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDPersistentVolumeSource, volumeSizeGB int, err error) // Deletes a rbd image DeleteImage(deleter *rbdVolumeDeleter) error } diff --git a/pkg/volume/rbd/rbd.go b/pkg/volume/rbd/rbd.go index cc345b22d7..87ca9992f1 100644 --- a/pkg/volume/rbd/rbd.go +++ b/pkg/volume/rbd/rbd.go @@ -78,15 +78,19 @@ func (plugin *rbdPlugin) GetPluginName() string { } func (plugin *rbdPlugin) GetVolumeName(spec *volume.Spec) (string, error) { - volumeSource, _, err := getVolumeSource(spec) + mon, err := getVolumeSourceMonitors(spec) + if err != nil { + return "", err + } + img, err := getVolumeSourceImage(spec) if err != nil { return "", err } return fmt.Sprintf( "%v:%v", - volumeSource.CephMonitors, - volumeSource.RBDImage), nil + mon, + img), nil } func (plugin *rbdPlugin) CanSupport(spec *volume.Spec) bool { @@ -117,55 +121,79 @@ func (plugin *rbdPlugin) GetAccessModes() []v1.PersistentVolumeAccessMode { } func (plugin *rbdPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, _ volume.VolumeOptions) (volume.Mounter, error) { - var secret string - var err error - source, _ := plugin.getRBDVolumeSource(spec) - - if source.SecretRef != nil { - if secret, err = parsePodSecret(pod, source.SecretRef.Name, plugin.host.GetKubeClient()); err != nil { - glog.Errorf("Couldn't get secret from %v/%v", pod.Namespace, source.SecretRef) + secretName, secretNs, err := getSecretNameAndNamespace(spec, pod.Namespace) + if err != nil { + return nil, err + } + secret := "" + if len(secretName) > 0 && len(secretNs) > 0 { + // if secret is provideded, retrieve it + kubeClient := plugin.host.GetKubeClient() + if kubeClient == nil { + return nil, fmt.Errorf("Cannot get kube client") + } + secrets, err := kubeClient.Core().Secrets(secretNs).Get(secretName, metav1.GetOptions{}) + if err != nil { + err = fmt.Errorf("Couldn't get secret %v/%v err: %v", secretNs, secretName, err) return nil, err } + for _, data := range secrets.Data { + secret = string(data) + } } // Inject real implementations here, test through the internal function. return plugin.newMounterInternal(spec, pod.UID, &RBDUtil{}, plugin.host.GetMounter(plugin.GetPluginName()), plugin.host.GetExec(plugin.GetPluginName()), secret) } -func (plugin *rbdPlugin) getRBDVolumeSource(spec *volume.Spec) (*v1.RBDVolumeSource, bool) { - // rbd volumes used directly in a pod have a ReadOnly flag set by the pod author. - // rbd volumes used as a PersistentVolume gets the ReadOnly flag indirectly through the persistent-claim volume used to mount the PV - if spec.Volume != nil && spec.Volume.RBD != nil { - return spec.Volume.RBD, spec.Volume.RBD.ReadOnly - } else { - return spec.PersistentVolume.Spec.RBD, spec.ReadOnly - } -} - func (plugin *rbdPlugin) newMounterInternal(spec *volume.Spec, podUID types.UID, manager diskManager, mounter mount.Interface, exec mount.Exec, secret string) (volume.Mounter, error) { - source, readOnly := plugin.getRBDVolumeSource(spec) - pool := source.RBDPool - id := source.RadosUser - keyring := source.Keyring + mon, err := getVolumeSourceMonitors(spec) + if err != nil { + return nil, err + } + img, err := getVolumeSourceImage(spec) + if err != nil { + return nil, err + } + fstype, err := getVolumeSourceFSType(spec) + if err != nil { + return nil, err + } + pool, err := getVolumeSourcePool(spec) + if err != nil { + return nil, err + } + id, err := getVolumeSourceUser(spec) + if err != nil { + return nil, err + } + keyring, err := getVolumeSourceKeyRing(spec) + if err != nil { + return nil, err + } + ro, err := getVolumeSourceReadOnly(spec) + if err != nil { + return nil, err + } return &rbdMounter{ rbd: &rbd{ podUID: podUID, volName: spec.Name(), - Image: source.RBDImage, + Image: img, Pool: pool, - ReadOnly: readOnly, + ReadOnly: ro, manager: manager, mounter: &mount.SafeFormatAndMount{Interface: mounter, Exec: exec}, exec: exec, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, spec.Name(), plugin.host)), }, - Mon: source.CephMonitors, + Mon: mon, Id: id, Keyring: keyring, Secret: secret, - fsType: source.FSType, + fsType: fstype, mountOptions: volume.MountOptionFromSpec(spec), }, nil } @@ -289,8 +317,9 @@ func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { var err error adminSecretName := "" adminSecretNamespace := rbdDefaultAdminSecretNamespace - secretName := "" secret := "" + secretName := "" + secretNamespace := "" imageFormat := rbdImageFormat2 fstype := "" @@ -313,6 +342,8 @@ func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { r.Pool = v case "usersecretname": secretName = v + case "usersecretnamespace": + secretNamespace = v case "imageformat": imageFormat = v case "imagefeatures": @@ -370,8 +401,9 @@ func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { glog.Infof("successfully created rbd image %q", image) pv := new(v1.PersistentVolume) metav1.SetMetaDataAnnotation(&pv.ObjectMeta, volumehelper.VolumeDynamicallyCreatedByKey, "rbd-dynamic-provisioner") - rbd.SecretRef = new(v1.LocalObjectReference) + rbd.SecretRef = new(v1.SecretReference) rbd.SecretRef.Name = secretName + rbd.SecretRef.Namespace = secretNamespace rbd.RadosUser = r.Id rbd.FSType = fstype pv.Spec.PersistentVolumeSource.RBD = rbd @@ -486,16 +518,83 @@ func (c *rbdUnmounter) TearDownAt(dir string) error { return diskTearDown(c.manager, *c, dir, c.mounter) } -func getVolumeSource( - spec *volume.Spec) (*v1.RBDVolumeSource, bool, error) { +func getVolumeSourceMonitors(spec *volume.Spec) ([]string, error) { if spec.Volume != nil && spec.Volume.RBD != nil { - return spec.Volume.RBD, spec.Volume.RBD.ReadOnly, nil + return spec.Volume.RBD.CephMonitors, nil } else if spec.PersistentVolume != nil && spec.PersistentVolume.Spec.RBD != nil { - return spec.PersistentVolume.Spec.RBD, spec.ReadOnly, nil + return spec.PersistentVolume.Spec.RBD.CephMonitors, nil } - return nil, false, fmt.Errorf("Spec does not reference a RBD volume type") + return nil, fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceImage(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.RBDImage, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.RBDImage, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceFSType(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.FSType, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.FSType, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourcePool(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.RBDPool, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.RBDPool, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceUser(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.RadosUser, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.RadosUser, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceKeyRing(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.Keyring, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.Keyring, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceReadOnly(spec *volume.Spec) (bool, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.ReadOnly, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + // rbd volumes used as a PersistentVolume gets the ReadOnly flag indirectly through + // the persistent-claim volume used to mount the PV + return spec.ReadOnly, nil + } + + return false, fmt.Errorf("Spec does not reference a RBD volume type") } func parsePodSecret(pod *v1.Pod, secretName string, kubeClient clientset.Interface) (string, error) { @@ -531,3 +630,26 @@ func parseSecretMap(secretMap map[string]string) (string, error) { // If not found, the last secret in the map wins as done before return secret, nil } + +func getSecretNameAndNamespace(spec *volume.Spec, defaultNamespace string) (string, string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + localSecretRef := spec.Volume.RBD.SecretRef + if localSecretRef != nil { + return localSecretRef.Name, defaultNamespace, nil + } + return "", "", nil + + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + secretRef := spec.PersistentVolume.Spec.RBD.SecretRef + secretNs := defaultNamespace + if secretRef != nil { + if len(secretRef.Namespace) != 0 { + secretNs = secretRef.Namespace + } + return secretRef.Name, secretNs, nil + } + return "", "", nil + } + return "", "", fmt.Errorf("Spec does not reference an RBD volume type") +} diff --git a/pkg/volume/rbd/rbd_test.go b/pkg/volume/rbd/rbd_test.go index 02f5d324c3..8a0a098de3 100644 --- a/pkg/volume/rbd/rbd_test.go +++ b/pkg/volume/rbd/rbd_test.go @@ -22,6 +22,7 @@ import ( "os" "path/filepath" "reflect" + "strings" "testing" "github.com/stretchr/testify/assert" @@ -92,7 +93,7 @@ func (fake *fakeDiskManager) DetachDisk(c rbdUnmounter, mntPath string) error { return nil } -func (fake *fakeDiskManager) CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDVolumeSource, volumeSizeGB int, err error) { +func (fake *fakeDiskManager) CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDPersistentVolumeSource, volumeSizeGB int, err error) { return nil, 0, fmt.Errorf("not implemented") } @@ -180,7 +181,7 @@ func TestPluginPersistentVolume(t *testing.T) { }, Spec: v1.PersistentVolumeSpec{ PersistentVolumeSource: v1.PersistentVolumeSource{ - RBD: &v1.RBDVolumeSource{ + RBD: &v1.RBDPersistentVolumeSource{ CephMonitors: []string{"a", "b"}, RBDImage: "bar", FSType: "ext4", @@ -205,7 +206,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { }, Spec: v1.PersistentVolumeSpec{ PersistentVolumeSource: v1.PersistentVolumeSource{ - RBD: &v1.RBDVolumeSource{ + RBD: &v1.RBDPersistentVolumeSource{ CephMonitors: []string{"a", "b"}, RBDImage: "bar", FSType: "ext4", @@ -329,3 +330,35 @@ func TestPersistAndLoadRBD(t *testing.T) { } } } + +func TestGetSecretNameAndNamespace(t *testing.T) { + secretName := "test-secret-name" + secretNamespace := "test-secret-namespace" + + volSpec := &volume.Spec{ + PersistentVolume: &v1.PersistentVolume{ + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + RBD: &v1.RBDPersistentVolumeSource{ + CephMonitors: []string{"a", "b"}, + RBDImage: "bar", + FSType: "ext4", + }, + }, + }, + }, + } + + secretRef := new(v1.SecretReference) + secretRef.Name = secretName + secretRef.Namespace = secretNamespace + volSpec.PersistentVolume.Spec.PersistentVolumeSource.RBD.SecretRef = secretRef + + foundSecretName, foundSecretNamespace, err := getSecretNameAndNamespace(volSpec, "default") + if err != nil { + t.Errorf("getSecretNameAndNamespace failed to get Secret's name and namespace: %v", err) + } + if strings.Compare(secretName, foundSecretName) != 0 || strings.Compare(secretNamespace, foundSecretNamespace) != 0 { + t.Errorf("getSecretNameAndNamespace returned incorrect values, expected %s and %s but got %s and %s", secretName, secretNamespace, foundSecretName, foundSecretNamespace) + } +} diff --git a/pkg/volume/rbd/rbd_util.go b/pkg/volume/rbd/rbd_util.go index 1f06f16a4e..89ec3125b8 100644 --- a/pkg/volume/rbd/rbd_util.go +++ b/pkg/volume/rbd/rbd_util.go @@ -362,7 +362,7 @@ func (util *RBDUtil) DetachDisk(c rbdUnmounter, mntPath string) error { return nil } -func (util *RBDUtil) CreateImage(p *rbdVolumeProvisioner) (r *v1.RBDVolumeSource, size int, err error) { +func (util *RBDUtil) CreateImage(p *rbdVolumeProvisioner) (r *v1.RBDPersistentVolumeSource, size int, err error) { var output []byte capacity := p.options.PVC.Spec.Resources.Requests[v1.ResourceName(v1.ResourceStorage)] volSizeBytes := capacity.Value() @@ -400,7 +400,7 @@ func (util *RBDUtil) CreateImage(p *rbdVolumeProvisioner) (r *v1.RBDVolumeSource return nil, 0, fmt.Errorf("failed to create rbd image: %v, command output: %s", err, string(output)) } - return &v1.RBDVolumeSource{ + return &v1.RBDPersistentVolumeSource{ CephMonitors: p.rbdMounter.Mon, RBDImage: p.rbdMounter.Image, RBDPool: p.rbdMounter.Pool, diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index 14075df3cc..2d032b7b64 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -158,6 +158,7 @@ limitations under the License. Probe ProjectedVolumeSource QuobyteVolumeSource + RBDPersistentVolumeSource RBDVolumeSource RangeAllocation ReplicationController @@ -798,198 +799,204 @@ func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSou func (*QuobyteVolumeSource) ProtoMessage() {} func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } +func (m *RBDPersistentVolumeSource) Reset() { *m = RBDPersistentVolumeSource{} } +func (*RBDPersistentVolumeSource) ProtoMessage() {} +func (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{133} +} + func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} -func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{133} } +func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } +func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} -func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } +func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{136} + return fileDescriptorGenerated, []int{137} } func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{137} + return fileDescriptorGenerated, []int{138} } func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{138} + return fileDescriptorGenerated, []int{139} } func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{139} + return fileDescriptorGenerated, []int{140} } func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} -func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } +func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} -func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } +func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} -func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } +func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} -func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } +func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} -func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } +func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} -func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } +func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} -func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } +func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} -func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } +func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} -func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } +func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} -func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } +func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} -func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } +func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} -func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } +func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} -func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } +func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } func (m *SecretReference) Reset() { *m = SecretReference{} } func (*SecretReference) ProtoMessage() {} -func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } +func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} -func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } +func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} -func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } +func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} -func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } +func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } +func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} -func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } +func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} -func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } +func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} -func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } +func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} -func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } +func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} -func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } +func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} -func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } +func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } func (m *SessionAffinityConfig) Reset() { *m = SessionAffinityConfig{} } func (*SessionAffinityConfig) ProtoMessage() {} -func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } +func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{166} + return fileDescriptorGenerated, []int{167} } func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} -func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } +func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} -func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } +func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} -func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } +func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} -func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } +func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} -func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } +func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} -func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } +func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{176} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{176} + return fileDescriptorGenerated, []int{177} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{177} + return fileDescriptorGenerated, []int{178} } func init() { @@ -1126,6 +1133,7 @@ func init() { proto.RegisterType((*Probe)(nil), "k8s.io.api.core.v1.Probe") proto.RegisterType((*ProjectedVolumeSource)(nil), "k8s.io.api.core.v1.ProjectedVolumeSource") proto.RegisterType((*QuobyteVolumeSource)(nil), "k8s.io.api.core.v1.QuobyteVolumeSource") + proto.RegisterType((*RBDPersistentVolumeSource)(nil), "k8s.io.api.core.v1.RBDPersistentVolumeSource") proto.RegisterType((*RBDVolumeSource)(nil), "k8s.io.api.core.v1.RBDVolumeSource") proto.RegisterType((*RangeAllocation)(nil), "k8s.io.api.core.v1.RangeAllocation") proto.RegisterType((*ReplicationController)(nil), "k8s.io.api.core.v1.ReplicationController") @@ -7541,7 +7549,7 @@ func (m *QuobyteVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) { +func (m *RBDPersistentVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -7551,7 +7559,7 @@ func (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { +func (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -7612,6 +7620,77 @@ func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.CephMonitors) > 0 { + for _, s := range m.CephMonitors { + dAtA[i] = 0xa + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDImage))) + i += copy(dAtA[i:], m.RBDImage) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType))) + i += copy(dAtA[i:], m.FSType) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDPool))) + i += copy(dAtA[i:], m.RBDPool) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RadosUser))) + i += copy(dAtA[i:], m.RadosUser) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Keyring))) + i += copy(dAtA[i:], m.Keyring) + if m.SecretRef != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) + n150, err := m.SecretRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n150 + } + dAtA[i] = 0x40 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + return i, nil +} + func (m *RangeAllocation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7630,11 +7709,11 @@ func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n150, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n151, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n151 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) @@ -7666,27 +7745,27 @@ func (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n151, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n151 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n152, err := m.Spec.MarshalTo(dAtA[i:]) + n152, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n152 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n153, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n153, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n153 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n154, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n154 return i, nil } @@ -7716,11 +7795,11 @@ func (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n154, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n155, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n154 + i += n155 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7750,11 +7829,11 @@ func (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n155, err := m.ListMeta.MarshalTo(dAtA[i:]) + n156, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n155 + i += n156 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7816,11 +7895,11 @@ func (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n156, err := m.Template.MarshalTo(dAtA[i:]) + n157, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n157 } dAtA[i] = 0x20 i++ @@ -7899,11 +7978,11 @@ func (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Divisor.Size())) - n157, err := m.Divisor.MarshalTo(dAtA[i:]) + n158, err := m.Divisor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n158 return i, nil } @@ -7925,27 +8004,27 @@ func (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n158, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n158 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n159, err := m.Spec.MarshalTo(dAtA[i:]) + n159, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n159 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n160, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n160, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n160 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n161, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n161 return i, nil } @@ -7967,11 +8046,11 @@ func (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n161, err := m.ListMeta.MarshalTo(dAtA[i:]) + n162, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n161 + i += n162 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8026,11 +8105,11 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n162, err := (&v).MarshalTo(dAtA[i:]) + n163, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n162 + i += n163 } } if len(m.Scopes) > 0 { @@ -8090,11 +8169,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n163, err := (&v).MarshalTo(dAtA[i:]) + n164, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n164 } } if len(m.Used) > 0 { @@ -8121,11 +8200,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n164, err := (&v).MarshalTo(dAtA[i:]) + n165, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n165 } } return i, nil @@ -8170,11 +8249,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n165, err := (&v).MarshalTo(dAtA[i:]) + n166, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n166 } } if len(m.Requests) > 0 { @@ -8201,11 +8280,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n166, err := (&v).MarshalTo(dAtA[i:]) + n167, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n167 } } return i, nil @@ -8272,11 +8351,11 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n167, err := m.SecretRef.MarshalTo(dAtA[i:]) + n168, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n167 + i += n168 } dAtA[i] = 0x20 i++ @@ -8335,11 +8414,11 @@ func (m *Secret) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n168, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n169, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n168 + i += n169 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -8415,11 +8494,11 @@ func (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n169, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n170, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n169 + i += n170 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -8451,11 +8530,11 @@ func (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n170, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n171, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n171 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -8491,11 +8570,11 @@ func (m *SecretList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n171, err := m.ListMeta.MarshalTo(dAtA[i:]) + n172, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n171 + i += n172 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8529,11 +8608,11 @@ func (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n172, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n173, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n172 + i += n173 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8653,11 +8732,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Capabilities.Size())) - n173, err := m.Capabilities.MarshalTo(dAtA[i:]) + n174, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n173 + i += n174 } if m.Privileged != nil { dAtA[i] = 0x10 @@ -8673,11 +8752,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n174, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n175, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n175 } if m.RunAsUser != nil { dAtA[i] = 0x20 @@ -8735,11 +8814,11 @@ func (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Reference.Size())) - n175, err := m.Reference.MarshalTo(dAtA[i:]) + n176, err := m.Reference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n176 return i, nil } @@ -8761,27 +8840,27 @@ func (m *Service) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n176, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n176 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n177, err := m.Spec.MarshalTo(dAtA[i:]) + n177, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n177 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n178, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n178, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n178 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n179, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n179 return i, nil } @@ -8803,11 +8882,11 @@ func (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n179, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n180, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n180 if len(m.Secrets) > 0 { for _, msg := range m.Secrets { dAtA[i] = 0x12 @@ -8863,11 +8942,11 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n180, err := m.ListMeta.MarshalTo(dAtA[i:]) + n181, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n181 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8901,11 +8980,11 @@ func (m *ServiceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n181, err := m.ListMeta.MarshalTo(dAtA[i:]) + n182, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n182 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8950,11 +9029,11 @@ func (m *ServicePort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort.Size())) - n182, err := m.TargetPort.MarshalTo(dAtA[i:]) + n183, err := m.TargetPort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n183 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodePort)) @@ -9101,11 +9180,11 @@ func (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SessionAffinityConfig.Size())) - n183, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) + n184, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n184 } return i, nil } @@ -9128,11 +9207,11 @@ func (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n184, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n185, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n185 return i, nil } @@ -9155,11 +9234,11 @@ func (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClientIP.Size())) - n185, err := m.ClientIP.MarshalTo(dAtA[i:]) + n186, err := m.ClientIP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n186 } return i, nil } @@ -9203,11 +9282,11 @@ func (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n186, err := m.SecretRef.MarshalTo(dAtA[i:]) + n187, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n186 + i += n187 } return i, nil } @@ -9251,11 +9330,11 @@ func (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n187, err := m.SecretRef.MarshalTo(dAtA[i:]) + n188, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n187 + i += n188 } return i, nil } @@ -9304,11 +9383,11 @@ func (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n188, err := m.Port.MarshalTo(dAtA[i:]) + n189, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n188 + i += n189 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -9347,11 +9426,11 @@ func (m *Taint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TimeAdded.Size())) - n189, err := m.TimeAdded.MarshalTo(dAtA[i:]) + n190, err := m.TimeAdded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n189 + i += n190 } return i, nil } @@ -9417,11 +9496,11 @@ func (m *Volume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VolumeSource.Size())) - n190, err := m.VolumeSource.MarshalTo(dAtA[i:]) + n191, err := m.VolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n190 + i += n191 return i, nil } @@ -9488,32 +9567,32 @@ func (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n191, err := m.Secret.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n191 - } - if m.DownwardAPI != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n192, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n192, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n192 } - if m.ConfigMap != nil { - dAtA[i] = 0x1a + if m.DownwardAPI != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n193, err := m.ConfigMap.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) + n193, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n193 } + if m.ConfigMap != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) + n194, err := m.ConfigMap.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n194 + } return i, nil } @@ -9536,163 +9615,163 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n194, err := m.HostPath.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n194 - } - if m.EmptyDir != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) - n195, err := m.EmptyDir.MarshalTo(dAtA[i:]) + n195, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n195 } - if m.GCEPersistentDisk != nil { - dAtA[i] = 0x1a + if m.EmptyDir != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n196, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) + n196, err := m.EmptyDir.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n196 } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x22 + if m.GCEPersistentDisk != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n197, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) + n197, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n197 } - if m.GitRepo != nil { - dAtA[i] = 0x2a + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) - n198, err := m.GitRepo.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n198, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n198 } - if m.Secret != nil { - dAtA[i] = 0x32 + if m.GitRepo != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n199, err := m.Secret.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) + n199, err := m.GitRepo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n199 } - if m.NFS != nil { - dAtA[i] = 0x3a + if m.Secret != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n200, err := m.NFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) + n200, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n200 } - if m.ISCSI != nil { - dAtA[i] = 0x42 + if m.NFS != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n201, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n201, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n201 } - if m.Glusterfs != nil { - dAtA[i] = 0x4a + if m.ISCSI != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n202, err := m.Glusterfs.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n202, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n202 } - if m.PersistentVolumeClaim != nil { - dAtA[i] = 0x52 + if m.Glusterfs != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) - n203, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n203, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n203 } - if m.RBD != nil { - dAtA[i] = 0x5a + if m.PersistentVolumeClaim != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n204, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) + n204, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n204 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.RBD != nil { + dAtA[i] = 0x5a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n205, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n205, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n205 } - if m.Cinder != nil { - dAtA[i] = 0x6a + if m.FlexVolume != nil { + dAtA[i] = 0x62 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n206, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n206, err := m.FlexVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n206 } - if m.CephFS != nil { - dAtA[i] = 0x72 + if m.Cinder != nil { + dAtA[i] = 0x6a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n207, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n207, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n207 } - if m.Flocker != nil { - dAtA[i] = 0x7a + if m.CephFS != nil { + dAtA[i] = 0x72 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n208, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n208, err := m.CephFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n208 } + if m.Flocker != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n209, err := m.Flocker.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n209 + } if m.DownwardAPI != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n209, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n210, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n209 + i += n210 } if m.FC != nil { dAtA[i] = 0x8a @@ -9700,11 +9779,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n210, err := m.FC.MarshalTo(dAtA[i:]) + n211, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n210 + i += n211 } if m.AzureFile != nil { dAtA[i] = 0x92 @@ -9712,11 +9791,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n211, err := m.AzureFile.MarshalTo(dAtA[i:]) + n212, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n211 + i += n212 } if m.ConfigMap != nil { dAtA[i] = 0x9a @@ -9724,11 +9803,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n212, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n213, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n212 + i += n213 } if m.VsphereVolume != nil { dAtA[i] = 0xa2 @@ -9736,11 +9815,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n213, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + n214, err := m.VsphereVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n213 + i += n214 } if m.Quobyte != nil { dAtA[i] = 0xaa @@ -9748,11 +9827,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n214, err := m.Quobyte.MarshalTo(dAtA[i:]) + n215, err := m.Quobyte.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n214 + i += n215 } if m.AzureDisk != nil { dAtA[i] = 0xb2 @@ -9760,11 +9839,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n215, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n216, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n215 + i += n216 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0xba @@ -9772,11 +9851,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n216, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n217, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n216 + i += n217 } if m.PortworxVolume != nil { dAtA[i] = 0xc2 @@ -9784,11 +9863,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n217, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n218, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n217 + i += n218 } if m.ScaleIO != nil { dAtA[i] = 0xca @@ -9796,11 +9875,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n218, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n219, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n218 + i += n219 } if m.Projected != nil { dAtA[i] = 0xd2 @@ -9808,11 +9887,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Projected.Size())) - n219, err := m.Projected.MarshalTo(dAtA[i:]) + n220, err := m.Projected.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n219 + i += n220 } if m.StorageOS != nil { dAtA[i] = 0xda @@ -9820,11 +9899,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n220, err := m.StorageOS.MarshalTo(dAtA[i:]) + n221, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n220 + i += n221 } return i, nil } @@ -9884,11 +9963,11 @@ func (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodAffinityTerm.Size())) - n221, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) + n222, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n221 + i += n222 return i, nil } @@ -12242,6 +12321,33 @@ func (m *QuobyteVolumeSource) Size() (n int) { return n } +func (m *RBDPersistentVolumeSource) Size() (n int) { + var l int + _ = l + if len(m.CephMonitors) > 0 { + for _, s := range m.CephMonitors { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.RBDImage) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.FSType) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.RBDPool) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.RadosUser) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Keyring) + n += 1 + l + sovGenerated(uint64(l)) + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 2 + return n +} + func (m *RBDVolumeSource) Size() (n int) { var l int _ = l @@ -14520,7 +14626,7 @@ func (this *PersistentVolumeSource) String() string { `HostPath:` + strings.Replace(fmt.Sprintf("%v", this.HostPath), "HostPathVolumeSource", "HostPathVolumeSource", 1) + `,`, `Glusterfs:` + strings.Replace(fmt.Sprintf("%v", this.Glusterfs), "GlusterfsVolumeSource", "GlusterfsVolumeSource", 1) + `,`, `NFS:` + strings.Replace(fmt.Sprintf("%v", this.NFS), "NFSVolumeSource", "NFSVolumeSource", 1) + `,`, - `RBD:` + strings.Replace(fmt.Sprintf("%v", this.RBD), "RBDVolumeSource", "RBDVolumeSource", 1) + `,`, + `RBD:` + strings.Replace(fmt.Sprintf("%v", this.RBD), "RBDPersistentVolumeSource", "RBDPersistentVolumeSource", 1) + `,`, `ISCSI:` + strings.Replace(fmt.Sprintf("%v", this.ISCSI), "ISCSIVolumeSource", "ISCSIVolumeSource", 1) + `,`, `Cinder:` + strings.Replace(fmt.Sprintf("%v", this.Cinder), "CinderVolumeSource", "CinderVolumeSource", 1) + `,`, `CephFS:` + strings.Replace(fmt.Sprintf("%v", this.CephFS), "CephFSPersistentVolumeSource", "CephFSPersistentVolumeSource", 1) + `,`, @@ -14944,6 +15050,23 @@ func (this *QuobyteVolumeSource) String() string { }, "") return s } +func (this *RBDPersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RBDPersistentVolumeSource{`, + `CephMonitors:` + fmt.Sprintf("%v", this.CephMonitors) + `,`, + `RBDImage:` + fmt.Sprintf("%v", this.RBDImage) + `,`, + `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, + `RBDPool:` + fmt.Sprintf("%v", this.RBDPool) + `,`, + `RadosUser:` + fmt.Sprintf("%v", this.RadosUser) + `,`, + `Keyring:` + fmt.Sprintf("%v", this.Keyring) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "SecretReference", 1) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `}`, + }, "") + return s +} func (this *RBDVolumeSource) String() string { if this == nil { return "nil" @@ -32302,7 +32425,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.RBD == nil { - m.RBD = &RBDVolumeSource{} + m.RBD = &RBDPersistentVolumeSource{} } if err := m.RBD.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -37868,6 +37991,283 @@ func (m *QuobyteVolumeSource) Unmarshal(dAtA []byte) error { } return nil } +func (m *RBDPersistentVolumeSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RBDPersistentVolumeSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RBDPersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CephMonitors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CephMonitors = append(m.CephMonitors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RBDImage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RBDImage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FSType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FSType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RBDPool", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RBDPool = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RadosUser", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RadosUser = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keyring", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Keyring = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", 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 > l { + return io.ErrUnexpectedEOF + } + if m.SecretRef == nil { + m.SecretRef = &SecretReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -46344,745 +46744,747 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 11832 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xd7, - 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0xb1, 0xe4, 0x10, 0x24, 0x17, 0xcb, 0xa6, - 0x44, 0x2e, 0x5f, 0x80, 0xb8, 0x24, 0x45, 0x5a, 0xa4, 0x28, 0x01, 0x18, 0x60, 0x17, 0xdc, 0xc5, - 0xee, 0xf0, 0x0e, 0x76, 0x57, 0xa4, 0x68, 0x7e, 0x6a, 0x4c, 0x5f, 0x00, 0x4d, 0x34, 0xba, 0x87, - 0xdd, 0x3d, 0xd8, 0x05, 0xcb, 0xaa, 0xfa, 0xa2, 0xc8, 0xca, 0x43, 0xfe, 0xe1, 0x4a, 0x54, 0x89, - 0x63, 0xa9, 0x9c, 0xaa, 0x3c, 0xca, 0x56, 0x9c, 0xa4, 0xe2, 0xc8, 0xb1, 0x1d, 0xc9, 0xa9, 0x38, - 0xce, 0xa3, 0xe4, 0x3f, 0x8a, 0x9d, 0x3f, 0x52, 0x95, 0x2b, 0x88, 0xb5, 0x4a, 0x25, 0xe5, 0x1f, - 0x49, 0x25, 0xf1, 0x2f, 0x23, 0x4e, 0x94, 0xba, 0xcf, 0xbe, 0xb7, 0xa7, 0x7b, 0x66, 0xb0, 0xdc, - 0x05, 0x29, 0x95, 0xff, 0xcd, 0x9c, 0x73, 0xee, 0xb9, 0xb7, 0xef, 0xe3, 0xdc, 0x73, 0xcf, 0x3d, - 0xe7, 0x5c, 0x78, 0x79, 0xf7, 0xa5, 0x78, 0xde, 0x0b, 0x17, 0x76, 0xdb, 0x9b, 0x24, 0x0a, 0x48, - 0x42, 0xe2, 0x85, 0x7d, 0x12, 0xb8, 0x61, 0xb4, 0x20, 0x10, 0x4e, 0xcb, 0x5b, 0x68, 0x86, 0x11, - 0x59, 0xd8, 0x7f, 0x76, 0x61, 0x9b, 0x04, 0x24, 0x72, 0x12, 0xe2, 0xce, 0xb7, 0xa2, 0x30, 0x09, - 0x11, 0xe2, 0x34, 0xf3, 0x4e, 0xcb, 0x9b, 0xa7, 0x34, 0xf3, 0xfb, 0xcf, 0xce, 0x3e, 0xb3, 0xed, - 0x25, 0x3b, 0xed, 0xcd, 0xf9, 0x66, 0xb8, 0xb7, 0xb0, 0x1d, 0x6e, 0x87, 0x0b, 0x8c, 0x74, 0xb3, - 0xbd, 0xc5, 0xfe, 0xb1, 0x3f, 0xec, 0x17, 0x67, 0x31, 0xbb, 0x9e, 0x56, 0x43, 0x6e, 0x25, 0x24, - 0x88, 0xbd, 0x30, 0x88, 0x9f, 0x71, 0x5a, 0x5e, 0x4c, 0xa2, 0x7d, 0x12, 0x2d, 0xb4, 0x76, 0xb7, - 0x29, 0x2e, 0x36, 0x09, 0x16, 0xf6, 0x9f, 0xdd, 0x24, 0x89, 0xd3, 0xd1, 0xa2, 0xd9, 0xe7, 0x53, - 0x76, 0x7b, 0x4e, 0x73, 0xc7, 0x0b, 0x48, 0x74, 0x20, 0x79, 0x2c, 0x44, 0x24, 0x0e, 0xdb, 0x51, - 0x93, 0x1c, 0xab, 0x54, 0xbc, 0xb0, 0x47, 0x12, 0x27, 0xe7, 0xeb, 0x67, 0x17, 0x8a, 0x4a, 0x45, - 0xed, 0x20, 0xf1, 0xf6, 0x3a, 0xab, 0xf9, 0x44, 0xaf, 0x02, 0x71, 0x73, 0x87, 0xec, 0x39, 0x1d, - 0xe5, 0x9e, 0x2b, 0x2a, 0xd7, 0x4e, 0x3c, 0x7f, 0xc1, 0x0b, 0x92, 0x38, 0x89, 0xb2, 0x85, 0xec, - 0xef, 0x59, 0x70, 0x76, 0xf1, 0x46, 0x63, 0xc5, 0x77, 0xe2, 0xc4, 0x6b, 0x2e, 0xf9, 0x61, 0x73, - 0xb7, 0x91, 0x84, 0x11, 0xb9, 0x1e, 0xfa, 0xed, 0x3d, 0xd2, 0x60, 0x1d, 0x81, 0x9e, 0x86, 0x91, - 0x7d, 0xf6, 0x7f, 0xad, 0x56, 0xb5, 0xce, 0x5a, 0xe7, 0x2a, 0x4b, 0x53, 0xdf, 0x39, 0x9c, 0xfb, - 0xc8, 0xed, 0xc3, 0xb9, 0x91, 0xeb, 0x02, 0x8e, 0x15, 0x05, 0x7a, 0x0c, 0x86, 0xb6, 0xe2, 0x8d, - 0x83, 0x16, 0xa9, 0x96, 0x18, 0xed, 0x84, 0xa0, 0x1d, 0x5a, 0x6d, 0x50, 0x28, 0x16, 0x58, 0xb4, - 0x00, 0x95, 0x96, 0x13, 0x25, 0x5e, 0xe2, 0x85, 0x41, 0xb5, 0x7c, 0xd6, 0x3a, 0x37, 0xb8, 0x34, - 0x2d, 0x48, 0x2b, 0x75, 0x89, 0xc0, 0x29, 0x0d, 0x6d, 0x46, 0x44, 0x1c, 0xf7, 0x6a, 0xe0, 0x1f, - 0x54, 0x07, 0xce, 0x5a, 0xe7, 0x46, 0xd2, 0x66, 0x60, 0x01, 0xc7, 0x8a, 0xc2, 0xfe, 0xc5, 0x12, - 0x8c, 0x2c, 0x6e, 0x6d, 0x79, 0x81, 0x97, 0x1c, 0xa0, 0xeb, 0x30, 0x16, 0x84, 0x2e, 0x91, 0xff, - 0xd9, 0x57, 0x8c, 0x9e, 0x3f, 0x3b, 0xdf, 0x39, 0x33, 0xe7, 0xaf, 0x68, 0x74, 0x4b, 0x53, 0xb7, - 0x0f, 0xe7, 0xc6, 0x74, 0x08, 0x36, 0xf8, 0x20, 0x0c, 0xa3, 0xad, 0xd0, 0x55, 0x6c, 0x4b, 0x8c, - 0xed, 0x5c, 0x1e, 0xdb, 0x7a, 0x4a, 0xb6, 0x34, 0x79, 0xfb, 0x70, 0x6e, 0x54, 0x03, 0x60, 0x9d, - 0x09, 0xda, 0x84, 0x49, 0xfa, 0x37, 0x48, 0x3c, 0xc5, 0xb7, 0xcc, 0xf8, 0x3e, 0x5a, 0xc4, 0x57, - 0x23, 0x5d, 0x3a, 0x75, 0xfb, 0x70, 0x6e, 0x32, 0x03, 0xc4, 0x59, 0x86, 0xf6, 0x7b, 0x30, 0xb1, - 0x98, 0x24, 0x4e, 0x73, 0x87, 0xb8, 0x7c, 0x04, 0xd1, 0xf3, 0x30, 0x10, 0x38, 0x7b, 0x44, 0x8c, - 0xef, 0x59, 0xd1, 0xb1, 0x03, 0x57, 0x9c, 0x3d, 0x72, 0x74, 0x38, 0x37, 0x75, 0x2d, 0xf0, 0xde, - 0x6d, 0x8b, 0x59, 0x41, 0x61, 0x98, 0x51, 0xa3, 0xf3, 0x00, 0x2e, 0xd9, 0xf7, 0x9a, 0xa4, 0xee, - 0x24, 0x3b, 0x62, 0xbc, 0x91, 0x28, 0x0b, 0x35, 0x85, 0xc1, 0x1a, 0x95, 0x7d, 0x0b, 0x2a, 0x8b, - 0xfb, 0xa1, 0xe7, 0xd6, 0x43, 0x37, 0x46, 0xbb, 0x30, 0xd9, 0x8a, 0xc8, 0x16, 0x89, 0x14, 0xa8, - 0x6a, 0x9d, 0x2d, 0x9f, 0x1b, 0x3d, 0x7f, 0x2e, 0xf7, 0x63, 0x4d, 0xd2, 0x95, 0x20, 0x89, 0x0e, - 0x96, 0xee, 0x17, 0xf5, 0x4d, 0x66, 0xb0, 0x38, 0xcb, 0xd9, 0xfe, 0x37, 0x25, 0x38, 0xbd, 0xf8, - 0x5e, 0x3b, 0x22, 0x35, 0x2f, 0xde, 0xcd, 0xce, 0x70, 0xd7, 0x8b, 0x77, 0xaf, 0xa4, 0x3d, 0xa0, - 0xa6, 0x56, 0x4d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc0, 0x30, 0xfd, 0x7d, 0x0d, 0xaf, 0x89, 0x4f, - 0x3e, 0x25, 0x88, 0x47, 0x6b, 0x4e, 0xe2, 0xd4, 0x38, 0x0a, 0x4b, 0x1a, 0xb4, 0x0e, 0xa3, 0x4d, - 0xb6, 0x20, 0xb7, 0xd7, 0x43, 0x97, 0xb0, 0xc1, 0xac, 0x2c, 0x3d, 0x45, 0xc9, 0x97, 0x53, 0xf0, - 0xd1, 0xe1, 0x5c, 0x95, 0xb7, 0x4d, 0xb0, 0xd0, 0x70, 0x58, 0x2f, 0x8f, 0x6c, 0xb5, 0xbe, 0x06, - 0x18, 0x27, 0xc8, 0x59, 0x5b, 0xe7, 0xb4, 0xa5, 0x32, 0xc8, 0x96, 0xca, 0x58, 0xfe, 0x32, 0x41, - 0xcf, 0xc2, 0xc0, 0xae, 0x17, 0xb8, 0xd5, 0x21, 0xc6, 0xeb, 0x61, 0x3a, 0xe6, 0x97, 0xbc, 0xc0, - 0x3d, 0x3a, 0x9c, 0x9b, 0x36, 0x9a, 0x43, 0x81, 0x98, 0x91, 0xda, 0x7f, 0x62, 0xc1, 0x1c, 0xc3, - 0xad, 0x7a, 0x3e, 0xa9, 0x93, 0x28, 0xf6, 0xe2, 0x84, 0x04, 0x89, 0xd1, 0xa1, 0xe7, 0x01, 0x62, - 0xd2, 0x8c, 0x48, 0xa2, 0x75, 0xa9, 0x9a, 0x18, 0x0d, 0x85, 0xc1, 0x1a, 0x15, 0x15, 0x08, 0xf1, - 0x8e, 0x13, 0xb1, 0xf9, 0x25, 0x3a, 0x56, 0x09, 0x84, 0x86, 0x44, 0xe0, 0x94, 0xc6, 0x10, 0x08, - 0xe5, 0x5e, 0x02, 0x01, 0x7d, 0x0a, 0x26, 0xd3, 0xca, 0xe2, 0x96, 0xd3, 0x94, 0x1d, 0xc8, 0x96, - 0x4c, 0xc3, 0x44, 0xe1, 0x2c, 0xad, 0xfd, 0x0f, 0x2c, 0x31, 0x79, 0xe8, 0x57, 0x7f, 0xc8, 0xbf, - 0xd5, 0xfe, 0x2d, 0x0b, 0x86, 0x97, 0xbc, 0xc0, 0xf5, 0x82, 0x6d, 0xf4, 0x79, 0x18, 0xa1, 0x7b, - 0x93, 0xeb, 0x24, 0x8e, 0x90, 0x7b, 0x1f, 0xd7, 0xd6, 0x96, 0xda, 0x2a, 0xe6, 0x5b, 0xbb, 0xdb, - 0x14, 0x10, 0xcf, 0x53, 0x6a, 0xba, 0xda, 0xae, 0x6e, 0xbe, 0x43, 0x9a, 0xc9, 0x3a, 0x49, 0x9c, - 0xf4, 0x73, 0x52, 0x18, 0x56, 0x5c, 0xd1, 0x25, 0x18, 0x4a, 0x9c, 0x68, 0x9b, 0x24, 0x42, 0x00, - 0xe6, 0x0a, 0x2a, 0x5e, 0x12, 0xd3, 0x15, 0x49, 0x82, 0x26, 0x49, 0xb7, 0x85, 0x0d, 0x56, 0x14, - 0x0b, 0x16, 0x76, 0x13, 0xc6, 0x96, 0x9d, 0x96, 0xb3, 0xe9, 0xf9, 0x5e, 0xe2, 0x91, 0x18, 0x3d, - 0x0e, 0x65, 0xc7, 0x75, 0x99, 0x54, 0xa8, 0x2c, 0x9d, 0xbe, 0x7d, 0x38, 0x57, 0x5e, 0x74, 0xe9, - 0xf4, 0x04, 0x45, 0x75, 0x80, 0x29, 0x05, 0x7a, 0x12, 0x06, 0xdc, 0x28, 0x6c, 0x55, 0x4b, 0x8c, - 0xf2, 0x3e, 0x3a, 0x93, 0x6b, 0x51, 0xd8, 0xca, 0x90, 0x32, 0x1a, 0xfb, 0x77, 0x4a, 0xf0, 0xd0, - 0x32, 0x69, 0xed, 0xac, 0x36, 0x0a, 0xe6, 0xef, 0x39, 0x18, 0xd9, 0x0b, 0x03, 0x2f, 0x09, 0xa3, - 0x58, 0x54, 0xcd, 0x16, 0xd0, 0xba, 0x80, 0x61, 0x85, 0x45, 0x67, 0x61, 0xa0, 0x95, 0x0a, 0xbf, - 0x31, 0x29, 0x38, 0x99, 0xd8, 0x63, 0x18, 0x4a, 0xd1, 0x8e, 0x49, 0x24, 0x16, 0xbe, 0xa2, 0xb8, - 0x16, 0x93, 0x08, 0x33, 0x4c, 0x3a, 0x83, 0xe8, 0xdc, 0x12, 0xb3, 0x32, 0x33, 0x83, 0x28, 0x06, - 0x6b, 0x54, 0xa8, 0x0e, 0x15, 0xfe, 0x0f, 0x93, 0x2d, 0xb6, 0xc6, 0x0b, 0xfa, 0xbd, 0x21, 0x89, - 0x44, 0xbf, 0x8f, 0xb3, 0x29, 0x26, 0x81, 0x38, 0x65, 0x62, 0x4c, 0xb1, 0xa1, 0x9e, 0x53, 0xec, - 0xdb, 0x25, 0x40, 0xbc, 0x0b, 0x7f, 0xcc, 0x3a, 0xee, 0x5a, 0x67, 0xc7, 0xe5, 0x6e, 0x36, 0x97, - 0xc3, 0xa6, 0xe3, 0x67, 0x67, 0xed, 0xdd, 0xea, 0xbd, 0x5f, 0xb0, 0x00, 0x2d, 0x7b, 0x81, 0x4b, - 0xa2, 0x13, 0xd0, 0xb4, 0x8e, 0x27, 0x3b, 0x2e, 0xc3, 0xc4, 0xb2, 0xef, 0x91, 0x20, 0x59, 0xab, - 0x2f, 0x87, 0xc1, 0x96, 0xb7, 0x8d, 0x3e, 0x09, 0x13, 0x54, 0xf1, 0x0c, 0xdb, 0x49, 0x83, 0x34, - 0xc3, 0x80, 0xed, 0xd1, 0x54, 0x5d, 0x43, 0xb7, 0x0f, 0xe7, 0x26, 0x36, 0x0c, 0x0c, 0xce, 0x50, - 0xda, 0x7f, 0x48, 0x3f, 0x34, 0xdc, 0x6b, 0x85, 0x01, 0x09, 0x92, 0xe5, 0x30, 0x70, 0xb9, 0x2e, - 0xf7, 0x49, 0x18, 0x48, 0x68, 0xc3, 0xf9, 0x47, 0x3e, 0x26, 0x87, 0x96, 0x36, 0xf7, 0xe8, 0x70, - 0xee, 0xbe, 0xce, 0x12, 0xec, 0x83, 0x58, 0x19, 0xf4, 0x53, 0x30, 0x14, 0x27, 0x4e, 0xd2, 0x8e, - 0xc5, 0x67, 0x3f, 0x22, 0x3f, 0xbb, 0xc1, 0xa0, 0x47, 0x87, 0x73, 0x93, 0xaa, 0x18, 0x07, 0x61, - 0x51, 0x00, 0x3d, 0x01, 0xc3, 0x7b, 0x24, 0x8e, 0x9d, 0x6d, 0xb9, 0x0d, 0x4f, 0x8a, 0xb2, 0xc3, - 0xeb, 0x1c, 0x8c, 0x25, 0x1e, 0x3d, 0x0a, 0x83, 0x24, 0x8a, 0xc2, 0x48, 0xcc, 0xaa, 0x71, 0x41, - 0x38, 0xb8, 0x42, 0x81, 0x98, 0xe3, 0xec, 0x7f, 0x6f, 0xc1, 0xa4, 0x6a, 0x2b, 0xaf, 0xeb, 0x04, - 0xe4, 0xed, 0x9b, 0x00, 0x4d, 0xf9, 0x81, 0x31, 0x93, 0x77, 0xa3, 0xe7, 0x1f, 0xcb, 0x9b, 0xc2, - 0x9d, 0xdd, 0x98, 0x72, 0x56, 0xa0, 0x18, 0x6b, 0xdc, 0xec, 0x7f, 0x61, 0xc1, 0xa9, 0xcc, 0x17, - 0x5d, 0xf6, 0xe2, 0x04, 0xbd, 0xd5, 0xf1, 0x55, 0xf3, 0xfd, 0x7d, 0x15, 0x2d, 0xcd, 0xbe, 0x49, - 0xcd, 0x39, 0x09, 0xd1, 0xbe, 0xe8, 0x22, 0x0c, 0x7a, 0x09, 0xd9, 0x93, 0x1f, 0xf3, 0x68, 0xd7, - 0x8f, 0xe1, 0xad, 0x4a, 0x47, 0x64, 0x8d, 0x96, 0xc4, 0x9c, 0x81, 0xfd, 0x3f, 0x2d, 0xa8, 0xf0, - 0x69, 0xbb, 0xee, 0xb4, 0x4e, 0x60, 0x2c, 0xd6, 0x60, 0x80, 0x71, 0xe7, 0x0d, 0x7f, 0x3c, 0xbf, - 0xe1, 0xa2, 0x39, 0xf3, 0x54, 0x99, 0xe2, 0x4a, 0xab, 0x12, 0x66, 0x14, 0x84, 0x19, 0x8b, 0xd9, - 0x17, 0xa1, 0xa2, 0x08, 0xd0, 0x14, 0x94, 0x77, 0x09, 0x3f, 0xa8, 0x54, 0x30, 0xfd, 0x89, 0x66, - 0x60, 0x70, 0xdf, 0xf1, 0xdb, 0x62, 0xb1, 0x63, 0xfe, 0xe7, 0x93, 0xa5, 0x97, 0x2c, 0xfb, 0x5b, - 0x6c, 0x8d, 0x89, 0x4a, 0x56, 0x82, 0x7d, 0x21, 0x4c, 0xde, 0x83, 0x19, 0x3f, 0x47, 0x86, 0x89, - 0x8e, 0xe8, 0x5f, 0xe6, 0x3d, 0x24, 0xda, 0x3a, 0x93, 0x87, 0xc5, 0xb9, 0x75, 0xd0, 0x6d, 0x20, - 0x6c, 0xd1, 0x19, 0xe5, 0xf8, 0xac, 0xbd, 0x42, 0x01, 0xbd, 0x2a, 0x60, 0x58, 0x61, 0xa9, 0x80, - 0x98, 0x51, 0x8d, 0xbf, 0x44, 0x0e, 0x1a, 0xc4, 0x27, 0xcd, 0x24, 0x8c, 0x3e, 0xd0, 0xe6, 0x3f, - 0xcc, 0x7b, 0x9f, 0xcb, 0x97, 0x51, 0xc1, 0xa0, 0x7c, 0x89, 0x1c, 0xf0, 0xa1, 0xd0, 0xbf, 0xae, - 0xdc, 0xf5, 0xeb, 0x7e, 0xcd, 0x82, 0x71, 0xf5, 0x75, 0x27, 0xb0, 0x90, 0x96, 0xcc, 0x85, 0xf4, - 0x70, 0xd7, 0xf9, 0x58, 0xb0, 0x84, 0x7e, 0xc4, 0x44, 0x80, 0xa0, 0xa9, 0x47, 0x21, 0xed, 0x1a, - 0x2a, 0xb3, 0x3f, 0xc8, 0x01, 0xe9, 0xe7, 0xbb, 0x2e, 0x91, 0x83, 0x8d, 0x90, 0xaa, 0x0f, 0xf9, - 0xdf, 0x65, 0x8c, 0xda, 0x40, 0xd7, 0x51, 0xfb, 0xf5, 0x12, 0x9c, 0x56, 0x3d, 0x60, 0x6c, 0xd0, - 0x3f, 0xee, 0x7d, 0xf0, 0x2c, 0x8c, 0xba, 0x64, 0xcb, 0x69, 0xfb, 0x89, 0x3a, 0x8b, 0x0e, 0x72, - 0x7b, 0x44, 0x2d, 0x05, 0x63, 0x9d, 0xe6, 0x18, 0xdd, 0xf6, 0x6f, 0x81, 0xc9, 0xde, 0xc4, 0xa1, - 0x33, 0x98, 0x6a, 0x6f, 0x9a, 0x45, 0x61, 0x4c, 0xb7, 0x28, 0x08, 0xeb, 0xc1, 0xa3, 0x30, 0xe8, - 0xed, 0xd1, 0xbd, 0xb8, 0x64, 0x6e, 0xb1, 0x6b, 0x14, 0x88, 0x39, 0x0e, 0x7d, 0x0c, 0x86, 0x9b, - 0xe1, 0xde, 0x9e, 0x13, 0xb8, 0xd5, 0x32, 0xd3, 0x27, 0x47, 0xe9, 0x76, 0xbd, 0xcc, 0x41, 0x58, - 0xe2, 0xd0, 0x43, 0x30, 0xe0, 0x44, 0xdb, 0x71, 0x75, 0x80, 0xd1, 0x8c, 0xd0, 0x9a, 0x16, 0xa3, - 0xed, 0x18, 0x33, 0x28, 0xd5, 0x13, 0x6f, 0x86, 0xd1, 0xae, 0x17, 0x6c, 0xd7, 0xbc, 0x88, 0x29, - 0x7d, 0x9a, 0x9e, 0x78, 0x43, 0x61, 0xb0, 0x46, 0x85, 0x56, 0x61, 0xb0, 0x15, 0x46, 0x49, 0x5c, - 0x1d, 0x62, 0xdd, 0xfd, 0x48, 0xc1, 0x52, 0xe2, 0x5f, 0x5b, 0x0f, 0xa3, 0x24, 0xfd, 0x00, 0xfa, - 0x2f, 0xc6, 0xbc, 0x38, 0xfa, 0x29, 0x28, 0x93, 0x60, 0xbf, 0x3a, 0xcc, 0xb8, 0xcc, 0xe6, 0x71, - 0x59, 0x09, 0xf6, 0xaf, 0x3b, 0x51, 0x2a, 0x67, 0x56, 0x82, 0x7d, 0x4c, 0xcb, 0xa0, 0x37, 0xa0, - 0x22, 0xad, 0x91, 0x71, 0x75, 0xa4, 0x78, 0x8a, 0x61, 0x41, 0x84, 0xc9, 0xbb, 0x6d, 0x2f, 0x22, - 0x7b, 0x24, 0x48, 0xe2, 0xf4, 0x3c, 0x29, 0xb1, 0x31, 0x4e, 0xb9, 0xa1, 0x37, 0x60, 0x8c, 0xeb, - 0x91, 0xeb, 0x61, 0x3b, 0x48, 0xe2, 0x6a, 0x85, 0x35, 0x2f, 0xd7, 0x74, 0x75, 0x3d, 0xa5, 0x5b, - 0x9a, 0x11, 0x4c, 0xc7, 0x34, 0x60, 0x8c, 0x0d, 0x56, 0x08, 0xc3, 0xb8, 0xef, 0xed, 0x93, 0x80, - 0xc4, 0x71, 0x3d, 0x0a, 0x37, 0x49, 0x15, 0x58, 0xcb, 0x1f, 0xc8, 0xb7, 0xe8, 0x84, 0x9b, 0x64, - 0x69, 0xfa, 0xf6, 0xe1, 0xdc, 0xf8, 0x65, 0xbd, 0x0c, 0x36, 0x59, 0xa0, 0x6b, 0x30, 0x41, 0x15, - 0x54, 0x2f, 0x65, 0x3a, 0xda, 0x8b, 0x29, 0xd3, 0x4e, 0xb1, 0x51, 0x08, 0x67, 0x98, 0xa0, 0xd7, - 0xa0, 0xe2, 0x7b, 0x5b, 0xa4, 0x79, 0xd0, 0xf4, 0x49, 0x75, 0x8c, 0x71, 0xcc, 0x5d, 0x56, 0x97, - 0x25, 0x11, 0x3f, 0x00, 0xa8, 0xbf, 0x38, 0x2d, 0x8e, 0xae, 0xc3, 0x7d, 0x09, 0x89, 0xf6, 0xbc, - 0xc0, 0xa1, 0xcb, 0x41, 0xe8, 0x93, 0xcc, 0x2e, 0x36, 0xce, 0xe6, 0xdb, 0x19, 0xd1, 0x75, 0xf7, - 0x6d, 0xe4, 0x52, 0xe1, 0x82, 0xd2, 0xe8, 0x2a, 0x4c, 0xb2, 0x95, 0x50, 0x6f, 0xfb, 0x7e, 0x3d, - 0xf4, 0xbd, 0xe6, 0x41, 0x75, 0x82, 0x31, 0xfc, 0x98, 0x34, 0x7c, 0xad, 0x99, 0x68, 0x7a, 0xe2, - 0x4d, 0xff, 0xe1, 0x6c, 0x69, 0xb4, 0xc9, 0x0c, 0x21, 0xed, 0xc8, 0x4b, 0x0e, 0xe8, 0xfc, 0x25, - 0xb7, 0x92, 0xea, 0x64, 0xd7, 0xf3, 0xa3, 0x4e, 0xaa, 0xac, 0x25, 0x3a, 0x10, 0x67, 0x19, 0xd2, - 0xa5, 0x1d, 0x27, 0xae, 0x17, 0x54, 0xa7, 0x98, 0xc4, 0x50, 0x2b, 0xa3, 0x41, 0x81, 0x98, 0xe3, - 0x98, 0x11, 0x84, 0xfe, 0xb8, 0x4a, 0x25, 0xe8, 0x34, 0x23, 0x4c, 0x8d, 0x20, 0x12, 0x81, 0x53, - 0x1a, 0xba, 0x2d, 0x27, 0xc9, 0x41, 0x15, 0x31, 0x52, 0xb5, 0x5c, 0x36, 0x36, 0xde, 0xc0, 0x14, - 0x8e, 0x2e, 0xc3, 0x30, 0x09, 0xf6, 0x57, 0xa3, 0x70, 0xaf, 0x7a, 0xaa, 0x78, 0xcd, 0xae, 0x70, - 0x12, 0x2e, 0xd0, 0xd3, 0x03, 0x80, 0x00, 0x63, 0xc9, 0x02, 0xdd, 0x82, 0x6a, 0xce, 0x88, 0xf0, - 0x01, 0x98, 0x61, 0x03, 0xf0, 0x8a, 0x28, 0x5b, 0xdd, 0x28, 0xa0, 0x3b, 0xea, 0x82, 0xc3, 0x85, - 0xdc, 0xed, 0x4d, 0x98, 0x50, 0x82, 0x85, 0x8d, 0x2d, 0x9a, 0x83, 0x41, 0x2a, 0x31, 0xe5, 0x91, - 0xba, 0x42, 0xbb, 0x92, 0x99, 0xa6, 0x30, 0x87, 0xb3, 0xae, 0xf4, 0xde, 0x23, 0x4b, 0x07, 0x09, - 0xe1, 0xc7, 0xa2, 0xb2, 0xd6, 0x95, 0x12, 0x81, 0x53, 0x1a, 0xfb, 0xff, 0x72, 0xc5, 0x24, 0x95, - 0x5e, 0x7d, 0xc8, 0xeb, 0xa7, 0x61, 0x64, 0x27, 0x8c, 0x13, 0x4a, 0xcd, 0xea, 0x18, 0x4c, 0x55, - 0x91, 0x8b, 0x02, 0x8e, 0x15, 0x05, 0x7a, 0x19, 0xc6, 0x9b, 0x7a, 0x05, 0x62, 0xb3, 0x39, 0x2d, - 0x8a, 0x98, 0xb5, 0x63, 0x93, 0x16, 0xbd, 0x04, 0x23, 0xec, 0x82, 0xa2, 0x19, 0xfa, 0xe2, 0x00, - 0x26, 0x77, 0xcc, 0x91, 0xba, 0x80, 0x1f, 0x69, 0xbf, 0xb1, 0xa2, 0xa6, 0x87, 0x62, 0xda, 0x84, - 0xb5, 0xba, 0x10, 0xf3, 0xea, 0x50, 0x7c, 0x91, 0x41, 0xb1, 0xc0, 0xda, 0x7f, 0xad, 0xa4, 0xf5, - 0x32, 0x3d, 0x52, 0x10, 0x54, 0x87, 0xe1, 0x9b, 0x8e, 0x97, 0x78, 0xc1, 0xb6, 0xd8, 0xcf, 0x9f, - 0xe8, 0x2a, 0xf3, 0x59, 0xa1, 0x1b, 0xbc, 0x00, 0xdf, 0x95, 0xc4, 0x1f, 0x2c, 0xd9, 0x50, 0x8e, - 0x51, 0x3b, 0x08, 0x28, 0xc7, 0x52, 0xbf, 0x1c, 0x31, 0x2f, 0xc0, 0x39, 0x8a, 0x3f, 0x58, 0xb2, - 0x41, 0x6f, 0x01, 0xc8, 0x79, 0x43, 0x5c, 0x71, 0x31, 0xf0, 0x74, 0x6f, 0xa6, 0x1b, 0xaa, 0xcc, - 0xd2, 0x04, 0xdd, 0xf3, 0xd2, 0xff, 0x58, 0xe3, 0x67, 0x27, 0x4c, 0xef, 0xe9, 0x6c, 0x0c, 0xfa, - 0x1c, 0x5d, 0xaa, 0x4e, 0x94, 0x10, 0x77, 0x31, 0x11, 0x9d, 0xf3, 0x64, 0x7f, 0x6a, 0xeb, 0x86, - 0xb7, 0x47, 0xf4, 0x65, 0x2d, 0x98, 0xe0, 0x94, 0x9f, 0xfd, 0x9b, 0x65, 0xa8, 0x16, 0x35, 0x97, - 0x4e, 0x3a, 0x72, 0xcb, 0x4b, 0x96, 0xa9, 0xba, 0x62, 0x99, 0x93, 0x6e, 0x45, 0xc0, 0xb1, 0xa2, - 0xa0, 0xa3, 0x1f, 0x7b, 0xdb, 0xf2, 0xd4, 0x31, 0x98, 0x8e, 0x7e, 0x83, 0x41, 0xb1, 0xc0, 0x52, - 0xba, 0x88, 0x38, 0xb1, 0xb8, 0x79, 0xd2, 0x66, 0x09, 0x66, 0x50, 0x2c, 0xb0, 0xba, 0xc1, 0x60, - 0xa0, 0x87, 0xc1, 0xc0, 0xe8, 0xa2, 0xc1, 0xbb, 0xdb, 0x45, 0xe8, 0x6d, 0x80, 0x2d, 0x2f, 0xf0, - 0xe2, 0x1d, 0xc6, 0x7d, 0xe8, 0xd8, 0xdc, 0x95, 0xb2, 0xb3, 0xaa, 0xb8, 0x60, 0x8d, 0x23, 0x7a, - 0x01, 0x46, 0xd5, 0x02, 0x5c, 0xab, 0x55, 0x87, 0xcd, 0x6b, 0x8d, 0x54, 0x1a, 0xd5, 0xb0, 0x4e, - 0x67, 0xbf, 0x93, 0x9d, 0x2f, 0x62, 0x05, 0x68, 0xfd, 0x6b, 0xf5, 0xdb, 0xbf, 0xa5, 0xee, 0xfd, - 0x6b, 0xff, 0x6e, 0x19, 0x26, 0x8d, 0xca, 0xda, 0x71, 0x1f, 0x32, 0xeb, 0x02, 0xdd, 0x88, 0x9c, - 0x84, 0x88, 0xf5, 0x67, 0xf7, 0x5e, 0x2a, 0xfa, 0x66, 0x45, 0x57, 0x00, 0x2f, 0x8f, 0xde, 0x86, - 0x8a, 0xef, 0xc4, 0xcc, 0xf8, 0x40, 0xc4, 0xba, 0xeb, 0x87, 0x59, 0xaa, 0xe8, 0x3b, 0x71, 0xa2, - 0xed, 0x05, 0x9c, 0x77, 0xca, 0x92, 0xee, 0x98, 0x54, 0x39, 0x91, 0x57, 0x9b, 0xaa, 0x11, 0x54, - 0x83, 0x39, 0xc0, 0x1c, 0x87, 0x5e, 0x82, 0xb1, 0x88, 0xb0, 0x59, 0xb1, 0x4c, 0x75, 0x2d, 0x36, - 0xcd, 0x06, 0x53, 0xa5, 0x0c, 0x6b, 0x38, 0x6c, 0x50, 0xa6, 0xba, 0xf6, 0x50, 0x17, 0x5d, 0xfb, - 0x09, 0x18, 0x66, 0x3f, 0xd4, 0x0c, 0x50, 0xa3, 0xb1, 0xc6, 0xc1, 0x58, 0xe2, 0xb3, 0x13, 0x66, - 0xa4, 0xcf, 0x09, 0xf3, 0x24, 0x4c, 0xd4, 0x1c, 0xb2, 0x17, 0x06, 0x2b, 0x81, 0xdb, 0x0a, 0xbd, - 0x20, 0x41, 0x55, 0x18, 0x60, 0xbb, 0x03, 0x5f, 0xdb, 0x03, 0x94, 0x03, 0x1e, 0xa0, 0x9a, 0xb3, - 0xfd, 0x07, 0x25, 0x18, 0xaf, 0x11, 0x9f, 0x24, 0x84, 0x9f, 0x35, 0x62, 0xb4, 0x0a, 0x68, 0x3b, - 0x72, 0x9a, 0xa4, 0x4e, 0x22, 0x2f, 0x74, 0x75, 0x63, 0x64, 0x99, 0x19, 0xfc, 0xd1, 0x85, 0x0e, - 0x2c, 0xce, 0x29, 0x81, 0xde, 0x84, 0xf1, 0x56, 0x44, 0x0c, 0x1b, 0x9a, 0x55, 0xa4, 0x2e, 0xd4, - 0x75, 0x42, 0xae, 0xa9, 0x1a, 0x20, 0x6c, 0xb2, 0x42, 0x9f, 0x81, 0xa9, 0x30, 0x6a, 0xed, 0x38, - 0x41, 0x8d, 0xb4, 0x48, 0xe0, 0x52, 0x55, 0x5c, 0xd8, 0x08, 0x66, 0x6e, 0x1f, 0xce, 0x4d, 0x5d, - 0xcd, 0xe0, 0x70, 0x07, 0x35, 0x7a, 0x13, 0xa6, 0x5b, 0x51, 0xd8, 0x72, 0xb6, 0xd9, 0x44, 0x11, - 0x1a, 0x07, 0x97, 0x3e, 0x4f, 0xdf, 0x3e, 0x9c, 0x9b, 0xae, 0x67, 0x91, 0x47, 0x87, 0x73, 0xa7, - 0x58, 0x47, 0x51, 0x48, 0x8a, 0xc4, 0x9d, 0x6c, 0xec, 0x6d, 0x38, 0x5d, 0x0b, 0x6f, 0x06, 0x37, - 0x9d, 0xc8, 0x5d, 0xac, 0xaf, 0x69, 0x87, 0xfb, 0x2b, 0xf2, 0x70, 0xc9, 0xaf, 0x5f, 0x73, 0xf7, - 0x29, 0xad, 0x24, 0x57, 0xff, 0x57, 0x3d, 0x9f, 0x14, 0x18, 0x11, 0xfe, 0x66, 0xc9, 0xa8, 0x29, - 0xa5, 0x57, 0x76, 0x7f, 0xab, 0xd0, 0xee, 0xff, 0x3a, 0x8c, 0x6c, 0x79, 0xc4, 0x77, 0x31, 0xd9, - 0x12, 0x23, 0xf3, 0x78, 0xf1, 0x8d, 0xd2, 0x2a, 0xa5, 0x94, 0x46, 0x23, 0x7e, 0x34, 0x5d, 0x15, - 0x85, 0xb1, 0x62, 0x83, 0x76, 0x61, 0x4a, 0x9e, 0x7d, 0x24, 0x56, 0x2c, 0xe2, 0x27, 0xba, 0x1d, - 0xa8, 0x4c, 0xe6, 0x6c, 0x00, 0x71, 0x86, 0x0d, 0xee, 0x60, 0x4c, 0xcf, 0xa2, 0x7b, 0x74, 0xbb, - 0x1a, 0x60, 0x53, 0x9a, 0x9d, 0x45, 0xd9, 0xb1, 0x9a, 0x41, 0xed, 0xaf, 0x5b, 0x70, 0x7f, 0x47, - 0xcf, 0x08, 0xf3, 0xc2, 0x5d, 0x1e, 0x85, 0xec, 0x71, 0xbf, 0xd4, 0xfb, 0xb8, 0x6f, 0xff, 0x43, - 0x0b, 0x66, 0x56, 0xf6, 0x5a, 0xc9, 0x41, 0xcd, 0x33, 0xef, 0x26, 0x5e, 0x84, 0xa1, 0x3d, 0xe2, - 0x7a, 0xed, 0x3d, 0x31, 0x72, 0x73, 0x52, 0xa4, 0xaf, 0x33, 0xe8, 0xd1, 0xe1, 0xdc, 0x78, 0x23, - 0x09, 0x23, 0x67, 0x9b, 0x70, 0x00, 0x16, 0xe4, 0x6c, 0x63, 0xf4, 0xde, 0x23, 0x97, 0xbd, 0x3d, - 0x4f, 0xde, 0x10, 0x76, 0x35, 0x79, 0xcd, 0xcb, 0x0e, 0x9d, 0x7f, 0xbd, 0xed, 0x04, 0x89, 0x97, - 0x1c, 0x88, 0x6b, 0x17, 0xc9, 0x04, 0xa7, 0xfc, 0xec, 0xef, 0x59, 0x30, 0x29, 0x65, 0xc9, 0xa2, - 0xeb, 0x46, 0x24, 0x8e, 0xd1, 0x2c, 0x94, 0xbc, 0x96, 0x68, 0x25, 0x88, 0x56, 0x96, 0xd6, 0xea, - 0xb8, 0xe4, 0xb5, 0x50, 0x1d, 0x2a, 0xfc, 0xa2, 0x31, 0x9d, 0x5c, 0x7d, 0x5d, 0x57, 0xb2, 0x16, - 0x6c, 0xc8, 0x92, 0x38, 0x65, 0x22, 0xb5, 0x62, 0xb6, 0x0f, 0x95, 0xcd, 0x3b, 0x9b, 0x8b, 0x02, - 0x8e, 0x15, 0x05, 0x3a, 0x07, 0x23, 0x41, 0xe8, 0xf2, 0x7b, 0x5f, 0xbe, 0xa6, 0xd9, 0x94, 0xbd, - 0x22, 0x60, 0x58, 0x61, 0xed, 0x9f, 0xb3, 0x60, 0x4c, 0x7e, 0x59, 0x9f, 0x0a, 0x3a, 0x5d, 0x5a, - 0xa9, 0x72, 0x9e, 0x2e, 0x2d, 0xaa, 0x60, 0x33, 0x8c, 0xa1, 0x57, 0x97, 0x8f, 0xa3, 0x57, 0xdb, - 0x5f, 0x2b, 0xc1, 0x84, 0x6c, 0x4e, 0xa3, 0xbd, 0x19, 0x93, 0x04, 0x6d, 0x40, 0xc5, 0xe1, 0x5d, - 0x4e, 0xe4, 0x8c, 0x7d, 0x34, 0xff, 0xc4, 0x65, 0x8c, 0x4f, 0xaa, 0xea, 0x2c, 0xca, 0xd2, 0x38, - 0x65, 0x84, 0x7c, 0x98, 0x0e, 0xc2, 0x84, 0x6d, 0x7b, 0x0a, 0xdf, 0xed, 0x5e, 0x20, 0xcb, 0xfd, - 0x01, 0xc1, 0x7d, 0xfa, 0x4a, 0x96, 0x0b, 0xee, 0x64, 0x8c, 0x56, 0xa4, 0x95, 0xa7, 0xcc, 0x6a, - 0x38, 0xdb, 0xad, 0x86, 0x62, 0x23, 0x8f, 0xfd, 0xdb, 0x16, 0x54, 0x24, 0xd9, 0x49, 0x5c, 0x01, - 0xad, 0xc3, 0x70, 0xcc, 0x06, 0x41, 0x76, 0x8d, 0xdd, 0xad, 0xe1, 0x7c, 0xbc, 0xd2, 0xdd, 0x9c, - 0xff, 0x8f, 0xb1, 0xe4, 0xc1, 0xcc, 0xd4, 0xaa, 0xf9, 0x1f, 0x12, 0x33, 0xb5, 0x6a, 0x4f, 0xc1, - 0x0e, 0xf3, 0x5f, 0x59, 0x9b, 0xb5, 0xb3, 0x3c, 0x55, 0x3a, 0x5b, 0x11, 0xd9, 0xf2, 0x6e, 0x65, - 0x95, 0xce, 0x3a, 0x83, 0x62, 0x81, 0x45, 0x6f, 0xc1, 0x58, 0x53, 0x5a, 0x77, 0x53, 0x31, 0xf0, - 0x58, 0x57, 0x5b, 0xb9, 0xba, 0x56, 0xe1, 0x3e, 0x61, 0xcb, 0x5a, 0x79, 0x6c, 0x70, 0x33, 0x2f, - 0xe6, 0xcb, 0xbd, 0x2e, 0xe6, 0x53, 0xbe, 0x85, 0x57, 0xcb, 0xf6, 0x2f, 0x59, 0x30, 0xc4, 0x6d, - 0x84, 0xfd, 0x19, 0x55, 0xb5, 0x6b, 0xa2, 0xb4, 0xef, 0xae, 0x53, 0xa0, 0xb8, 0x35, 0x42, 0xeb, - 0x50, 0x61, 0x3f, 0x98, 0xad, 0xa4, 0x5c, 0xec, 0x0c, 0xc7, 0x6b, 0xd5, 0x1b, 0x78, 0x5d, 0x16, - 0xc3, 0x29, 0x07, 0xfb, 0xab, 0x65, 0x2a, 0xaa, 0x52, 0x52, 0x63, 0x07, 0xb7, 0xee, 0xdd, 0x0e, - 0x5e, 0xba, 0x57, 0x3b, 0xf8, 0x36, 0x4c, 0x36, 0xb5, 0x3b, 0xa9, 0x74, 0x24, 0xcf, 0x75, 0x9d, - 0x24, 0xda, 0xf5, 0x15, 0xb7, 0x93, 0x2d, 0x9b, 0x4c, 0x70, 0x96, 0x2b, 0xfa, 0x1c, 0x8c, 0xf1, - 0x71, 0x16, 0xb5, 0x0c, 0xb0, 0x5a, 0x3e, 0x56, 0x3c, 0x5f, 0xf4, 0x2a, 0xd8, 0x4c, 0x6c, 0x68, - 0xc5, 0xb1, 0xc1, 0xcc, 0xfe, 0xf2, 0x20, 0x0c, 0xae, 0xec, 0x93, 0x20, 0x39, 0x01, 0x81, 0xd4, - 0x84, 0x09, 0x2f, 0xd8, 0x0f, 0xfd, 0x7d, 0xe2, 0x72, 0xfc, 0x71, 0x36, 0xd7, 0xfb, 0x04, 0xeb, - 0x89, 0x35, 0x83, 0x05, 0xce, 0xb0, 0xbc, 0x17, 0xa7, 0xf6, 0x0b, 0x30, 0xc4, 0xc7, 0x5e, 0x1c, - 0xd9, 0x73, 0x2d, 0xe0, 0xac, 0x13, 0xc5, 0x2a, 0x48, 0x2d, 0x0a, 0xdc, 0xe4, 0x2e, 0x8a, 0xa3, - 0x77, 0x60, 0x62, 0xcb, 0x8b, 0xe2, 0x84, 0x1e, 0xb7, 0xe3, 0xc4, 0xd9, 0x6b, 0xdd, 0xc1, 0x29, - 0x5d, 0xf5, 0xc3, 0xaa, 0xc1, 0x09, 0x67, 0x38, 0xa3, 0x6d, 0x18, 0xa7, 0x07, 0xc7, 0xb4, 0xaa, - 0xe1, 0x63, 0x57, 0xa5, 0xcc, 0x70, 0x97, 0x75, 0x46, 0xd8, 0xe4, 0x4b, 0x85, 0x49, 0x93, 0x1d, - 0x34, 0x47, 0x98, 0x46, 0xa1, 0x84, 0x09, 0x3f, 0x61, 0x72, 0x1c, 0x95, 0x49, 0xcc, 0x97, 0xa3, - 0x62, 0xca, 0xa4, 0xd4, 0x63, 0xc3, 0xfe, 0x06, 0xdd, 0x1d, 0x69, 0x1f, 0x9e, 0xc0, 0xd6, 0xf2, - 0xaa, 0xb9, 0xb5, 0x3c, 0x50, 0x38, 0x9e, 0x05, 0xdb, 0xca, 0xe7, 0x61, 0x54, 0x1b, 0x6e, 0xb4, - 0x00, 0x95, 0xa6, 0x74, 0x3c, 0x10, 0x52, 0x57, 0xa9, 0x2f, 0xca, 0x23, 0x01, 0xa7, 0x34, 0xb4, - 0x37, 0xa8, 0xb2, 0x97, 0x75, 0x6b, 0xa2, 0xaa, 0x20, 0x66, 0x18, 0xfb, 0x39, 0x80, 0x95, 0x5b, - 0xa4, 0xb9, 0xc8, 0x0f, 0x5e, 0xda, 0xfd, 0x96, 0x55, 0x7c, 0xbf, 0x65, 0xff, 0x07, 0x0b, 0x26, - 0x56, 0x97, 0x0d, 0x85, 0x7c, 0x1e, 0x80, 0x6b, 0xa1, 0x37, 0x6e, 0x5c, 0x91, 0x96, 0x61, 0x6e, - 0xdc, 0x53, 0x50, 0xac, 0x51, 0xa0, 0x07, 0xa0, 0xec, 0xb7, 0x03, 0xa1, 0x1c, 0x0e, 0xdf, 0x3e, - 0x9c, 0x2b, 0x5f, 0x6e, 0x07, 0x98, 0xc2, 0x34, 0x4f, 0xa2, 0x72, 0xdf, 0x9e, 0x44, 0x3d, 0x5d, - 0xb0, 0xd1, 0x1c, 0x0c, 0xde, 0xbc, 0xe9, 0xb9, 0x71, 0x75, 0x30, 0xb5, 0x5a, 0xdf, 0xb8, 0xb1, - 0x56, 0x8b, 0x31, 0x87, 0xdb, 0x7f, 0xa1, 0x0c, 0x53, 0xab, 0x3e, 0xb9, 0x65, 0x7c, 0xd6, 0x63, - 0x30, 0xe4, 0x46, 0xde, 0x3e, 0x89, 0xb2, 0xbb, 0x78, 0x8d, 0x41, 0xb1, 0xc0, 0xf6, 0xed, 0xfd, - 0x74, 0xad, 0x73, 0x3f, 0xbe, 0xdb, 0xfe, 0x5e, 0xbd, 0xbb, 0xe2, 0x2d, 0x18, 0xe6, 0xd7, 0xa4, - 0xbc, 0x33, 0x46, 0xcf, 0x3f, 0x9b, 0xd7, 0x84, 0x6c, 0x5f, 0xcc, 0x0b, 0xc3, 0x07, 0xf7, 0x19, - 0x51, 0x42, 0x4c, 0x40, 0xb1, 0x64, 0x39, 0xfb, 0x49, 0x18, 0xd3, 0x29, 0x8f, 0xe5, 0x3c, 0xf2, - 0x17, 0x2d, 0x38, 0xb5, 0xea, 0x87, 0xcd, 0xdd, 0x8c, 0x2b, 0xda, 0x0b, 0x30, 0x4a, 0xd7, 0x53, - 0x6c, 0xb8, 0xb5, 0x1a, 0x8e, 0xce, 0x02, 0x85, 0x75, 0x3a, 0xad, 0xd8, 0xb5, 0x6b, 0x6b, 0xb5, - 0x3c, 0xff, 0x68, 0x81, 0xc2, 0x3a, 0x9d, 0xfd, 0x5d, 0x0b, 0x1e, 0xbe, 0xb0, 0xbc, 0x92, 0x7a, - 0x63, 0x76, 0xb8, 0x68, 0x53, 0xe5, 0xce, 0xd5, 0x9a, 0x92, 0x2a, 0x77, 0x35, 0xd6, 0x0a, 0x81, - 0xfd, 0xb0, 0x84, 0x1f, 0xfc, 0x8a, 0x05, 0xa7, 0x2e, 0x78, 0x09, 0x26, 0xad, 0x30, 0xeb, 0x2c, - 0x1c, 0x91, 0x56, 0x18, 0x7b, 0x49, 0x18, 0x1d, 0x64, 0x9d, 0x85, 0xb1, 0xc2, 0x60, 0x8d, 0x8a, - 0xd7, 0xbc, 0xef, 0xc5, 0xb4, 0xa5, 0x25, 0xf3, 0x84, 0x89, 0x05, 0x1c, 0x2b, 0x0a, 0xfa, 0x61, - 0xae, 0x17, 0x31, 0x0d, 0xe1, 0x40, 0x2c, 0x67, 0xf5, 0x61, 0x35, 0x89, 0xc0, 0x29, 0x8d, 0xfd, - 0x75, 0x0b, 0x4e, 0x5f, 0xf0, 0xdb, 0x71, 0x42, 0xa2, 0xad, 0xd8, 0x68, 0xec, 0x73, 0x50, 0x21, - 0x52, 0x0b, 0x17, 0x6d, 0x55, 0xfb, 0x86, 0x52, 0xcf, 0xb9, 0xa7, 0xb2, 0xa2, 0xeb, 0xc3, 0xaf, - 0xf3, 0x78, 0xfe, 0x88, 0xdf, 0x2c, 0xc1, 0xf8, 0xc5, 0x8d, 0x8d, 0xfa, 0x05, 0x92, 0x08, 0x91, - 0xd9, 0xdb, 0x82, 0x84, 0xb5, 0x83, 0x70, 0x37, 0x5d, 0xa7, 0x9d, 0x78, 0xfe, 0x3c, 0x0f, 0x8d, - 0x99, 0x5f, 0x0b, 0x92, 0xab, 0x51, 0x23, 0x89, 0xbc, 0x60, 0x3b, 0xf7, 0xe8, 0x2c, 0x05, 0x7b, - 0xb9, 0x48, 0xb0, 0xa3, 0xe7, 0x60, 0x88, 0xc5, 0xe6, 0x48, 0xad, 0xe3, 0x41, 0xa5, 0x2a, 0x30, - 0xe8, 0xd1, 0xe1, 0x5c, 0xe5, 0x1a, 0x5e, 0xe3, 0x7f, 0xb0, 0x20, 0x45, 0xd7, 0x60, 0x74, 0x27, - 0x49, 0x5a, 0x17, 0x89, 0xe3, 0x92, 0x48, 0x4a, 0x87, 0x33, 0x79, 0xd2, 0x81, 0x76, 0x02, 0x27, - 0x4b, 0x17, 0x54, 0x0a, 0x8b, 0xb1, 0xce, 0xc7, 0x6e, 0x00, 0xa4, 0xb8, 0xbb, 0x74, 0x6c, 0xb0, - 0x7f, 0x68, 0xc1, 0xf0, 0x45, 0x27, 0x70, 0x7d, 0x12, 0xa1, 0x57, 0x60, 0x80, 0xdc, 0x22, 0x4d, - 0xb1, 0x83, 0xe7, 0x36, 0x38, 0xdd, 0xe5, 0xb8, 0x11, 0x8c, 0xfe, 0xc7, 0xac, 0x14, 0xba, 0x08, - 0xc3, 0xb4, 0xb5, 0x17, 0x94, 0xcf, 0xf8, 0x23, 0x45, 0x5f, 0xac, 0x86, 0x9d, 0x6f, 0x8c, 0x02, - 0x84, 0x65, 0x71, 0x66, 0xd0, 0x69, 0xb6, 0x1a, 0x54, 0x80, 0x25, 0xdd, 0x8e, 0x5b, 0x1b, 0xcb, - 0x75, 0x4e, 0x24, 0xb8, 0x71, 0x83, 0x8e, 0x04, 0xe2, 0x94, 0x89, 0xbd, 0x01, 0x15, 0x3a, 0xa8, - 0x8b, 0xbe, 0xe7, 0x74, 0xb7, 0x25, 0x3d, 0x05, 0x15, 0x69, 0xd7, 0x89, 0x85, 0xdb, 0x39, 0xe3, - 0x2a, 0xcd, 0x3e, 0x31, 0x4e, 0xf1, 0xf6, 0x16, 0xcc, 0xb0, 0x4b, 0x52, 0x27, 0xd9, 0x31, 0xd6, - 0x58, 0xef, 0xc9, 0xfc, 0xb4, 0xd0, 0xaf, 0xf8, 0xc8, 0x54, 0x35, 0x3f, 0xd9, 0x31, 0xc9, 0x51, - 0xd3, 0xb5, 0xfe, 0xf3, 0x00, 0x4c, 0xaf, 0x35, 0x96, 0x1b, 0xa6, 0x61, 0xf1, 0x25, 0x18, 0xe3, - 0x9a, 0x00, 0x9d, 0xd0, 0x8e, 0x2f, 0x6a, 0x53, 0x17, 0x07, 0x1b, 0x1a, 0x0e, 0x1b, 0x94, 0xe8, - 0x61, 0x28, 0x7b, 0xef, 0x06, 0x59, 0x57, 0xb8, 0xb5, 0xd7, 0xaf, 0x60, 0x0a, 0xa7, 0x68, 0xaa, - 0x54, 0x70, 0x01, 0xaa, 0xd0, 0x4a, 0xb1, 0x78, 0x15, 0x26, 0xbc, 0xb8, 0x19, 0x7b, 0x6b, 0x01, - 0x95, 0x2e, 0x69, 0xcc, 0x45, 0xaa, 0xf1, 0xd3, 0xa6, 0x2a, 0x2c, 0xce, 0x50, 0x6b, 0xd2, 0x7c, - 0xb0, 0x6f, 0xc5, 0xa4, 0xa7, 0xf7, 0x35, 0xd5, 0xb9, 0x5a, 0xec, 0xeb, 0x62, 0xe6, 0x96, 0x23, - 0x74, 0x2e, 0xfe, 0xc1, 0x31, 0x96, 0x38, 0x74, 0x01, 0xa6, 0x9b, 0x3b, 0x4e, 0x6b, 0xb1, 0x9d, - 0xec, 0xd4, 0xbc, 0xb8, 0x19, 0xee, 0x93, 0xe8, 0x80, 0x69, 0xc2, 0x23, 0xa9, 0x91, 0x49, 0x21, - 0x96, 0x2f, 0x2e, 0xd6, 0x29, 0x25, 0xee, 0x2c, 0x63, 0xaa, 0x20, 0x70, 0xd7, 0x54, 0x90, 0x45, - 0x98, 0x94, 0x75, 0x35, 0x48, 0xcc, 0xb6, 0x87, 0x51, 0xd6, 0x3a, 0x15, 0x12, 0x25, 0xc0, 0xaa, - 0x6d, 0x59, 0x7a, 0xf4, 0x22, 0x8c, 0x7b, 0x81, 0x97, 0x78, 0x4e, 0x12, 0x46, 0x6c, 0x73, 0x1d, - 0xe3, 0x1b, 0x06, 0x95, 0xf0, 0x6b, 0x3a, 0x02, 0x9b, 0x74, 0xf6, 0x3b, 0x50, 0x51, 0xbe, 0x66, - 0xd2, 0x5d, 0xd2, 0x2a, 0x70, 0x97, 0xec, 0xbd, 0x23, 0x48, 0x8b, 0x79, 0x39, 0xd7, 0x62, 0xfe, - 0xb7, 0x2c, 0x48, 0x5d, 0x6e, 0xd0, 0x45, 0xa8, 0xb4, 0x42, 0x76, 0x6b, 0x16, 0xc9, 0xab, 0xe8, - 0x07, 0x73, 0x85, 0x07, 0x17, 0x54, 0xbc, 0xff, 0xea, 0xb2, 0x04, 0x4e, 0x0b, 0xa3, 0x25, 0x18, - 0x6e, 0x45, 0xa4, 0x91, 0xb0, 0xa0, 0x91, 0x9e, 0x7c, 0xf8, 0x1c, 0xe1, 0xf4, 0x58, 0x16, 0xb4, - 0x7f, 0xdd, 0x02, 0xe0, 0x46, 0x69, 0x27, 0xd8, 0x26, 0x27, 0x70, 0xd0, 0xae, 0xc1, 0x40, 0xdc, - 0x22, 0xcd, 0x6e, 0xf7, 0x99, 0x69, 0x7b, 0x1a, 0x2d, 0xd2, 0x4c, 0x3b, 0x9c, 0xfe, 0xc3, 0xac, - 0xb4, 0xfd, 0xb3, 0x00, 0x13, 0x29, 0x19, 0x3d, 0x00, 0xa1, 0x67, 0x0c, 0x97, 0xfc, 0x07, 0x32, - 0x2e, 0xf9, 0x15, 0x46, 0xad, 0x79, 0xe1, 0xbf, 0x03, 0xe5, 0x3d, 0xe7, 0x96, 0x38, 0x65, 0x3d, - 0xd5, 0xbd, 0x19, 0x94, 0xff, 0xfc, 0xba, 0x73, 0x8b, 0xeb, 0xb1, 0x4f, 0xc9, 0x09, 0xb2, 0xee, - 0xdc, 0x3a, 0xe2, 0xb7, 0x96, 0x4c, 0x48, 0xd1, 0xc3, 0xdc, 0x17, 0xff, 0x53, 0xfa, 0x9f, 0x4d, - 0x3b, 0x5a, 0x09, 0xab, 0xcb, 0x0b, 0x84, 0x89, 0xb6, 0xaf, 0xba, 0xbc, 0x20, 0x5b, 0x97, 0x17, - 0xf4, 0x51, 0x97, 0x17, 0xa0, 0xf7, 0x60, 0x58, 0x5c, 0x87, 0x30, 0x5f, 0xc2, 0xd1, 0xf3, 0x0b, - 0x7d, 0xd4, 0x27, 0x6e, 0x53, 0x78, 0x9d, 0x0b, 0x52, 0x4f, 0x17, 0xd0, 0x9e, 0xf5, 0xca, 0x0a, - 0xd1, 0xdf, 0xb0, 0x60, 0x42, 0xfc, 0xc6, 0xe4, 0xdd, 0x36, 0x89, 0x13, 0xa1, 0x0f, 0x7c, 0xa2, - 0xff, 0x36, 0x88, 0x82, 0xbc, 0x29, 0x9f, 0x90, 0x62, 0xd6, 0x44, 0xf6, 0x6c, 0x51, 0xa6, 0x15, - 0xe8, 0x1f, 0x5b, 0x30, 0xb3, 0xe7, 0xdc, 0xe2, 0x35, 0x72, 0x18, 0x76, 0x12, 0x2f, 0x14, 0xbe, - 0x91, 0xaf, 0xf4, 0x37, 0xfc, 0x1d, 0xc5, 0x79, 0x23, 0xa5, 0x1b, 0xd5, 0x4c, 0x1e, 0x49, 0xcf, - 0xa6, 0xe6, 0xb6, 0x6b, 0x76, 0x0b, 0x46, 0xe4, 0x7c, 0xcb, 0x39, 0x0d, 0xd5, 0x74, 0x65, 0xe7, - 0xd8, 0xb7, 0x51, 0xda, 0xe9, 0x89, 0xd5, 0x23, 0xe6, 0xda, 0x3d, 0xad, 0xe7, 0x1d, 0x18, 0xd3, - 0xe7, 0xd8, 0x3d, 0xad, 0xeb, 0x5d, 0x38, 0x95, 0x33, 0x97, 0xee, 0x69, 0x95, 0x37, 0xe1, 0x81, - 0xc2, 0xf9, 0x71, 0x2f, 0x2b, 0xb6, 0xbf, 0x69, 0xe9, 0x72, 0xf0, 0x04, 0xcc, 0x53, 0xcb, 0xa6, - 0x79, 0xea, 0x4c, 0xf7, 0x95, 0x53, 0x60, 0xa3, 0x7a, 0x4b, 0x6f, 0x34, 0x95, 0xea, 0xe8, 0x35, - 0x18, 0xf2, 0x29, 0x44, 0xde, 0xc3, 0xd9, 0xbd, 0x57, 0x64, 0xaa, 0x4b, 0x31, 0x78, 0x8c, 0x05, - 0x07, 0xfb, 0xb7, 0x2c, 0x18, 0x38, 0x81, 0x9e, 0xc0, 0x66, 0x4f, 0x3c, 0x53, 0xc8, 0x5a, 0xe4, - 0x3d, 0x98, 0xc7, 0xce, 0xcd, 0x15, 0x99, 0xdb, 0xa1, 0xa0, 0x63, 0xfe, 0x4f, 0x09, 0x46, 0x69, - 0x55, 0xd2, 0x61, 0xe4, 0x65, 0x18, 0xf7, 0x9d, 0x4d, 0xe2, 0x4b, 0x93, 0x79, 0xf6, 0x10, 0x7b, - 0x59, 0x47, 0x62, 0x93, 0x96, 0x16, 0xde, 0xd2, 0x6f, 0x0f, 0x84, 0xfe, 0xa2, 0x0a, 0x1b, 0x57, - 0x0b, 0xd8, 0xa4, 0xa5, 0xe7, 0xa9, 0x9b, 0x4e, 0xd2, 0xdc, 0x11, 0x07, 0x5c, 0xd5, 0xdc, 0x1b, - 0x14, 0x88, 0x39, 0x8e, 0x2a, 0x70, 0x72, 0x76, 0x5e, 0x27, 0x11, 0x53, 0xe0, 0xb8, 0x7a, 0xac, - 0x14, 0x38, 0x6c, 0xa2, 0x71, 0x96, 0x3e, 0x27, 0x36, 0x6f, 0x90, 0xb9, 0xc3, 0xf4, 0x11, 0x9b, - 0x87, 0xea, 0x30, 0xe3, 0x05, 0x4d, 0xbf, 0xed, 0x92, 0x6b, 0x01, 0xd7, 0xee, 0x7c, 0xef, 0x3d, - 0xe2, 0x0a, 0x05, 0x5a, 0x79, 0x2e, 0xad, 0xe5, 0xd0, 0xe0, 0xdc, 0x92, 0xf6, 0xff, 0x07, 0xa7, - 0x2e, 0x87, 0x8e, 0xbb, 0xe4, 0xf8, 0x4e, 0xd0, 0x24, 0xd1, 0x5a, 0xb0, 0xdd, 0xf3, 0x42, 0x5e, - 0xbf, 0x3e, 0x2f, 0xf5, 0xba, 0x3e, 0xb7, 0x77, 0x00, 0xe9, 0x15, 0x08, 0x37, 0x30, 0x0c, 0xc3, - 0x1e, 0xaf, 0x4a, 0x4c, 0xff, 0xc7, 0xf3, 0xb5, 0xeb, 0x8e, 0x96, 0x69, 0x0e, 0x4e, 0x1c, 0x80, - 0x25, 0x23, 0xfb, 0x25, 0xc8, 0x8d, 0xcd, 0xe8, 0x7d, 0x94, 0xb6, 0x5f, 0x80, 0x69, 0x56, 0xf2, - 0x78, 0xc7, 0x3c, 0xfb, 0xaf, 0x58, 0x30, 0x79, 0x25, 0x13, 0x4d, 0xfb, 0x18, 0x0c, 0xf1, 0x0c, - 0x27, 0x59, 0xa3, 0x57, 0x83, 0x41, 0xb1, 0xc0, 0xde, 0x75, 0x9b, 0xcb, 0x8f, 0x2c, 0xa8, 0xa8, - 0xd0, 0xf7, 0x13, 0x50, 0x6a, 0x97, 0x0d, 0xa5, 0x36, 0xd7, 0x16, 0xa0, 0x9a, 0x53, 0xa4, 0xd3, - 0xa2, 0x4b, 0x2a, 0x2e, 0xb4, 0x8b, 0x19, 0x20, 0x65, 0xc3, 0xa3, 0x08, 0x27, 0xcc, 0xe0, 0x51, - 0x19, 0x29, 0xca, 0x6e, 0xc4, 0x15, 0xed, 0x87, 0xe4, 0x46, 0x5c, 0xb5, 0xa7, 0x40, 0xfa, 0xd5, - 0xb5, 0x26, 0xb3, 0x5d, 0xe1, 0xd3, 0xcc, 0x6b, 0x94, 0xad, 0x4d, 0x15, 0x8e, 0x3d, 0x27, 0xbc, - 0x40, 0x05, 0xf4, 0x88, 0x09, 0x32, 0xf1, 0x8f, 0xa7, 0x29, 0x48, 0x8b, 0xd8, 0x17, 0x61, 0x32, - 0xd3, 0x61, 0xe8, 0x05, 0x18, 0x6c, 0xed, 0x38, 0x31, 0xc9, 0x78, 0x01, 0x0d, 0xd6, 0x29, 0xf0, - 0xe8, 0x70, 0x6e, 0x42, 0x15, 0x60, 0x10, 0xcc, 0xa9, 0xed, 0xff, 0x61, 0xc1, 0xc0, 0x95, 0xd0, - 0x3d, 0x89, 0xc9, 0xf4, 0xaa, 0x31, 0x99, 0x1e, 0x2a, 0x4a, 0xf2, 0x52, 0x38, 0x8f, 0x56, 0x33, - 0xf3, 0xe8, 0x4c, 0x21, 0x87, 0xee, 0x53, 0x68, 0x0f, 0x46, 0x59, 0xea, 0x18, 0xe1, 0x95, 0xf4, - 0x9c, 0x71, 0xbe, 0x9a, 0xcb, 0x9c, 0xaf, 0x26, 0x35, 0x52, 0xed, 0x94, 0xf5, 0x04, 0x0c, 0x0b, - 0xcf, 0x98, 0xac, 0x7f, 0xac, 0xa0, 0xc5, 0x12, 0x6f, 0xff, 0x52, 0x19, 0x8c, 0x54, 0x35, 0xe8, - 0xb7, 0x2d, 0x98, 0x8f, 0x78, 0x44, 0x90, 0x5b, 0x6b, 0x47, 0x5e, 0xb0, 0xdd, 0x68, 0xee, 0x10, - 0xb7, 0xed, 0x7b, 0xc1, 0xf6, 0xda, 0x76, 0x10, 0x2a, 0xf0, 0xca, 0x2d, 0xd2, 0x6c, 0x33, 0x3b, - 0x78, 0x8f, 0xbc, 0x38, 0xea, 0xe6, 0xf9, 0xfc, 0xed, 0xc3, 0xb9, 0x79, 0x7c, 0x2c, 0xde, 0xf8, - 0x98, 0x6d, 0x41, 0xdf, 0xb5, 0x60, 0x81, 0x67, 0x70, 0xe9, 0xbf, 0xfd, 0x5d, 0x4e, 0xa3, 0x75, - 0xc9, 0x2a, 0x65, 0xb2, 0x41, 0xa2, 0xbd, 0xa5, 0x17, 0x45, 0x87, 0x2e, 0xd4, 0x8f, 0x57, 0x17, - 0x3e, 0x6e, 0xe3, 0xec, 0x7f, 0x55, 0x86, 0x71, 0xda, 0x8b, 0x69, 0x14, 0xfc, 0x0b, 0xc6, 0x94, - 0x78, 0x24, 0x33, 0x25, 0xa6, 0x0d, 0xe2, 0xbb, 0x13, 0x00, 0x1f, 0xc3, 0xb4, 0xef, 0xc4, 0xc9, - 0x45, 0xe2, 0x44, 0xc9, 0x26, 0x71, 0xd8, 0x55, 0xaf, 0x98, 0xe6, 0xc7, 0xb9, 0x3d, 0x56, 0xe6, - 0xaf, 0xcb, 0x59, 0x66, 0xb8, 0x93, 0x3f, 0xda, 0x07, 0xc4, 0xae, 0x95, 0x23, 0x27, 0x88, 0xf9, - 0xb7, 0x78, 0xc2, 0x46, 0x7e, 0xbc, 0x5a, 0x67, 0x45, 0xad, 0xe8, 0x72, 0x07, 0x37, 0x9c, 0x53, - 0x83, 0xe6, 0x2e, 0x30, 0xd8, 0xaf, 0xbb, 0xc0, 0x50, 0x0f, 0x27, 0xf4, 0x3d, 0x98, 0x12, 0xa3, - 0xb2, 0xe5, 0x6d, 0x8b, 0x4d, 0xfa, 0x8d, 0x8c, 0x3b, 0x91, 0xd5, 0xbf, 0xe3, 0x43, 0x0f, 0x5f, - 0x22, 0xfb, 0x67, 0xe0, 0x14, 0xad, 0xce, 0x74, 0x99, 0x8e, 0x11, 0x81, 0xc9, 0xdd, 0xf6, 0x26, - 0xf1, 0x49, 0x22, 0x61, 0xa2, 0xd2, 0x5c, 0xb5, 0xdf, 0x2c, 0x9d, 0xea, 0x96, 0x97, 0x4c, 0x16, - 0x38, 0xcb, 0xd3, 0xfe, 0x65, 0x0b, 0x98, 0x63, 0xe2, 0x09, 0x6c, 0x7f, 0x9f, 0x32, 0xb7, 0xbf, - 0x6a, 0x91, 0x04, 0x2a, 0xd8, 0xf9, 0x9e, 0xe7, 0xc3, 0x52, 0x8f, 0xc2, 0x5b, 0x07, 0x52, 0xf7, - 0xef, 0xad, 0x71, 0xfd, 0x6f, 0x8b, 0x2f, 0x48, 0x15, 0x20, 0x89, 0xbe, 0x00, 0x23, 0x4d, 0xa7, - 0xe5, 0x34, 0x79, 0x8e, 0xb0, 0x42, 0xeb, 0x8f, 0x51, 0x68, 0x7e, 0x59, 0x94, 0xe0, 0xd6, 0x8c, - 0x8f, 0xcb, 0xaf, 0x94, 0xe0, 0x9e, 0x16, 0x0c, 0x55, 0xe5, 0xec, 0x2e, 0x8c, 0x1b, 0xcc, 0xee, - 0xe9, 0xd1, 0xf7, 0x0b, 0x7c, 0xbb, 0x50, 0x27, 0x96, 0x3d, 0x98, 0x0e, 0xb4, 0xff, 0x54, 0x38, - 0x4a, 0x75, 0xfa, 0xa3, 0xbd, 0x36, 0x04, 0x26, 0x49, 0x35, 0xc7, 0xcb, 0x0c, 0x1b, 0xdc, 0xc9, - 0xd9, 0xfe, 0x3b, 0x16, 0xdc, 0xaf, 0x13, 0x6a, 0xb1, 0xab, 0xbd, 0xec, 0xc9, 0x35, 0x18, 0x09, - 0x5b, 0x24, 0x72, 0xd2, 0x33, 0xd9, 0x39, 0xd9, 0xe9, 0x57, 0x05, 0xfc, 0xe8, 0x70, 0x6e, 0x46, - 0xe7, 0x2e, 0xe1, 0x58, 0x95, 0x44, 0x36, 0x0c, 0xb1, 0xce, 0x88, 0x45, 0x5c, 0x31, 0xcb, 0xa3, - 0xc5, 0xae, 0xbb, 0x62, 0x2c, 0x30, 0xf6, 0xcf, 0x5a, 0x7c, 0x62, 0xe9, 0x4d, 0x47, 0xef, 0xc2, - 0xd4, 0x1e, 0x3d, 0xbe, 0xad, 0xdc, 0x6a, 0x45, 0xdc, 0x8c, 0x2e, 0xfb, 0xe9, 0xa9, 0x5e, 0xfd, - 0xa4, 0x7d, 0xe4, 0x52, 0x55, 0xb4, 0x79, 0x6a, 0x3d, 0xc3, 0x0c, 0x77, 0xb0, 0xb7, 0xff, 0xb4, - 0xc4, 0x57, 0x22, 0xd3, 0xea, 0x9e, 0x80, 0xe1, 0x56, 0xe8, 0x2e, 0xaf, 0xd5, 0xb0, 0xe8, 0x21, - 0x25, 0xae, 0xea, 0x1c, 0x8c, 0x25, 0x1e, 0x9d, 0x07, 0x20, 0xb7, 0x12, 0x12, 0x05, 0x8e, 0xaf, - 0x2e, 0xe3, 0x95, 0xf2, 0xb4, 0xa2, 0x30, 0x58, 0xa3, 0xa2, 0x65, 0x5a, 0x51, 0xb8, 0xef, 0xb9, - 0x2c, 0xb0, 0xa3, 0x6c, 0x96, 0xa9, 0x2b, 0x0c, 0xd6, 0xa8, 0xe8, 0x51, 0xb9, 0x1d, 0xc4, 0x7c, - 0x03, 0x74, 0x36, 0x45, 0x2a, 0x9e, 0x91, 0xf4, 0xa8, 0x7c, 0x4d, 0x47, 0x62, 0x93, 0x16, 0x2d, - 0xc2, 0x50, 0xe2, 0xb0, 0x2b, 0xe6, 0xc1, 0x62, 0x97, 0x9d, 0x0d, 0x4a, 0xa1, 0x27, 0x8d, 0xa2, - 0x05, 0xb0, 0x28, 0x88, 0xde, 0x94, 0x22, 0x98, 0x8b, 0x64, 0xe1, 0x7a, 0x55, 0x38, 0x6d, 0x75, - 0xf1, 0xad, 0xcb, 0x60, 0xe1, 0xd2, 0x65, 0xf0, 0xb2, 0xbf, 0x54, 0x01, 0x48, 0xb5, 0x3d, 0xf4, - 0x5e, 0x87, 0x88, 0x78, 0xba, 0xbb, 0x7e, 0x78, 0xf7, 0xe4, 0x03, 0xfa, 0xb2, 0x05, 0xa3, 0x8e, - 0xef, 0x87, 0x4d, 0x27, 0x61, 0xbd, 0x5c, 0xea, 0x2e, 0xa2, 0x44, 0xfd, 0x8b, 0x69, 0x09, 0xde, - 0x84, 0xe7, 0xe4, 0xed, 0xb1, 0x86, 0xe9, 0xd9, 0x0a, 0xbd, 0x62, 0xf4, 0x71, 0x79, 0x08, 0xe0, - 0xd3, 0x63, 0x36, 0x7b, 0x08, 0xa8, 0x30, 0x69, 0xac, 0xe9, 0xff, 0xe8, 0x9a, 0x91, 0xb3, 0x66, - 0xa0, 0x38, 0x3c, 0xd7, 0x50, 0x7a, 0x7a, 0xa5, 0xab, 0x41, 0x75, 0xdd, 0x05, 0x7d, 0xb0, 0x38, - 0x86, 0x5d, 0xd3, 0xae, 0x7b, 0xb8, 0x9f, 0xbf, 0x03, 0x93, 0xae, 0xb9, 0xdd, 0x8a, 0xd9, 0xf4, - 0x78, 0x11, 0xdf, 0xcc, 0xee, 0x9c, 0x6e, 0xb0, 0x19, 0x04, 0xce, 0x32, 0x46, 0x75, 0x1e, 0x0c, - 0xb0, 0x16, 0x6c, 0x85, 0xc2, 0x85, 0xcf, 0x2e, 0x1c, 0xcb, 0x83, 0x38, 0x21, 0x7b, 0x94, 0x32, - 0xdd, 0x47, 0xaf, 0x88, 0xb2, 0x58, 0x71, 0x41, 0xaf, 0xc1, 0x10, 0x8b, 0xd0, 0x8a, 0xab, 0x23, - 0xc5, 0x76, 0x40, 0x33, 0xb8, 0x38, 0x5d, 0x54, 0xec, 0x6f, 0x8c, 0x05, 0x07, 0x74, 0x51, 0xa6, - 0x08, 0x88, 0xd7, 0x82, 0x6b, 0x31, 0x61, 0x29, 0x02, 0x2a, 0x4b, 0x1f, 0x4d, 0xa3, 0xff, 0x39, - 0x3c, 0x37, 0x3d, 0xa4, 0x51, 0x92, 0xea, 0x2b, 0xe2, 0xbf, 0xcc, 0x3a, 0x59, 0x85, 0xe2, 0xe6, - 0x99, 0x99, 0x29, 0xd3, 0xee, 0xbc, 0x6e, 0xb2, 0xc0, 0x59, 0x9e, 0x27, 0xba, 0x7d, 0xce, 0x06, - 0x30, 0x95, 0x5d, 0x58, 0xf7, 0x74, 0xbb, 0xfe, 0xe1, 0x00, 0x4c, 0x98, 0x13, 0x01, 0x2d, 0x40, - 0x45, 0x30, 0x51, 0xe9, 0xc2, 0xd4, 0xdc, 0x5e, 0x97, 0x08, 0x9c, 0xd2, 0xb0, 0x74, 0x69, 0xac, - 0xb8, 0xe6, 0x9b, 0x95, 0xa6, 0x4b, 0x53, 0x18, 0xac, 0x51, 0x51, 0x25, 0x7a, 0x33, 0x0c, 0x13, - 0xb5, 0x15, 0xa8, 0xd9, 0xb2, 0xc4, 0xa0, 0x58, 0x60, 0xe9, 0x16, 0xb0, 0x4b, 0xa2, 0x80, 0xf8, - 0xa6, 0x25, 0x53, 0x6d, 0x01, 0x97, 0x74, 0x24, 0x36, 0x69, 0xe9, 0x96, 0x16, 0xc6, 0x6c, 0xfa, - 0x09, 0x55, 0x3d, 0xf5, 0x75, 0x6b, 0xf0, 0x08, 0x45, 0x89, 0x47, 0x6f, 0xc0, 0xfd, 0x2a, 0xa0, - 0x10, 0x73, 0xcb, 0xb0, 0xac, 0x71, 0xc8, 0x38, 0x59, 0xdf, 0xbf, 0x9c, 0x4f, 0x86, 0x8b, 0xca, - 0xa3, 0x57, 0x61, 0x42, 0xa8, 0xc0, 0x92, 0xe3, 0xb0, 0xe9, 0xac, 0x70, 0xc9, 0xc0, 0xe2, 0x0c, - 0x35, 0xaa, 0xc1, 0x14, 0x85, 0x30, 0x2d, 0x54, 0x72, 0xe0, 0x81, 0x91, 0x6a, 0xaf, 0xbf, 0x94, - 0xc1, 0xe3, 0x8e, 0x12, 0x68, 0x11, 0x26, 0xb9, 0x8e, 0x42, 0xcf, 0x94, 0x6c, 0x1c, 0x84, 0x67, - 0xad, 0x5a, 0x08, 0x57, 0x4d, 0x34, 0xce, 0xd2, 0xa3, 0x97, 0x60, 0xcc, 0x89, 0x9a, 0x3b, 0x5e, - 0x42, 0x9a, 0x49, 0x3b, 0xe2, 0x09, 0x38, 0x34, 0x6f, 0x8f, 0x45, 0x0d, 0x87, 0x0d, 0x4a, 0xfb, - 0x3d, 0x38, 0x95, 0xe3, 0x94, 0x4f, 0x27, 0x8e, 0xd3, 0xf2, 0xe4, 0x37, 0x65, 0xbc, 0xd6, 0x16, - 0xeb, 0x6b, 0xf2, 0x6b, 0x34, 0x2a, 0x3a, 0x3b, 0x99, 0x49, 0x5c, 0x4b, 0x0d, 0xab, 0x66, 0xe7, - 0xaa, 0x44, 0xe0, 0x94, 0xc6, 0xfe, 0x3d, 0x00, 0xcd, 0xa0, 0xd3, 0x87, 0xcf, 0xd2, 0x4b, 0x30, - 0x26, 0xf3, 0x19, 0x6b, 0x79, 0x34, 0xd5, 0x67, 0x5e, 0xd0, 0x70, 0xd8, 0xa0, 0xa4, 0x6d, 0x0b, - 0x54, 0x16, 0xd0, 0x8c, 0x8f, 0x5c, 0x9a, 0x03, 0x34, 0xa5, 0x41, 0x4f, 0xc3, 0x48, 0x4c, 0xfc, - 0xad, 0xcb, 0x5e, 0xb0, 0x2b, 0x26, 0xb6, 0x92, 0xc2, 0x0d, 0x01, 0xc7, 0x8a, 0x02, 0x2d, 0x41, - 0xb9, 0xed, 0xb9, 0x62, 0x2a, 0xcb, 0x0d, 0xbf, 0x7c, 0x6d, 0xad, 0x76, 0x74, 0x38, 0xf7, 0x48, - 0x51, 0x9a, 0x66, 0x7a, 0xb4, 0x8f, 0xe7, 0xe9, 0xf2, 0xa3, 0x85, 0xf3, 0xee, 0x06, 0x86, 0x8e, - 0x79, 0x37, 0x70, 0x1e, 0x40, 0x7c, 0xb5, 0x9c, 0xcb, 0xe5, 0x74, 0xd4, 0x2e, 0x28, 0x0c, 0xd6, - 0xa8, 0x50, 0x0c, 0xd3, 0xcd, 0x88, 0x38, 0xf2, 0x0c, 0xcd, 0xdd, 0xcb, 0x47, 0xee, 0xdc, 0x40, - 0xb0, 0x9c, 0x65, 0x86, 0x3b, 0xf9, 0xa3, 0x10, 0xa6, 0x5d, 0x11, 0xbf, 0x9a, 0x56, 0x5a, 0x39, - 0xbe, 0x4f, 0x3b, 0x73, 0xc8, 0xc9, 0x32, 0xc2, 0x9d, 0xbc, 0xd1, 0xdb, 0x30, 0x2b, 0x81, 0x9d, - 0x21, 0xc3, 0x6c, 0xb9, 0x94, 0x97, 0xce, 0xdc, 0x3e, 0x9c, 0x9b, 0xad, 0x15, 0x52, 0xe1, 0x2e, - 0x1c, 0x10, 0x86, 0x21, 0x76, 0x97, 0x14, 0x57, 0x47, 0xd9, 0x3e, 0xf7, 0x64, 0xb1, 0x31, 0x80, - 0xce, 0xf5, 0x79, 0x76, 0x0f, 0x25, 0xdc, 0x7c, 0xd3, 0x6b, 0x39, 0x06, 0xc4, 0x82, 0x13, 0xda, - 0x82, 0x51, 0x27, 0x08, 0xc2, 0xc4, 0xe1, 0x2a, 0xd4, 0x58, 0xb1, 0xee, 0xa7, 0x31, 0x5e, 0x4c, - 0x4b, 0x70, 0xee, 0xca, 0x73, 0x50, 0xc3, 0x60, 0x9d, 0x31, 0xba, 0x09, 0x93, 0xe1, 0x4d, 0x2a, - 0x1c, 0xa5, 0x95, 0x22, 0xae, 0x8e, 0xb3, 0xba, 0x9e, 0xef, 0xd3, 0x4e, 0x6b, 0x14, 0xd6, 0xa4, - 0x96, 0xc9, 0x14, 0x67, 0x6b, 0x41, 0xf3, 0x86, 0xb5, 0x7a, 0x22, 0xf5, 0x67, 0x4f, 0xad, 0xd5, - 0xba, 0x71, 0x9a, 0x85, 0xa0, 0x73, 0xb7, 0x55, 0xb6, 0xfa, 0x27, 0x33, 0x21, 0xe8, 0x29, 0x0a, - 0xeb, 0x74, 0x68, 0x07, 0xc6, 0xd2, 0x2b, 0xab, 0x28, 0x66, 0x19, 0x6a, 0x46, 0xcf, 0x9f, 0xef, - 0xef, 0xe3, 0xd6, 0xb4, 0x92, 0xfc, 0xe4, 0xa0, 0x43, 0xb0, 0xc1, 0x79, 0xf6, 0xa7, 0x60, 0x54, - 0x1b, 0xd8, 0xe3, 0x78, 0x65, 0xcf, 0xbe, 0x0a, 0x53, 0xd9, 0xa1, 0x3b, 0x96, 0x57, 0xf7, 0xff, - 0x2a, 0xc1, 0x64, 0xce, 0xcd, 0x15, 0x4b, 0xf5, 0x9c, 0x11, 0xa8, 0x69, 0x66, 0x67, 0x53, 0x2c, - 0x96, 0xfa, 0x10, 0x8b, 0x52, 0x46, 0x97, 0x0b, 0x65, 0xb4, 0x10, 0x85, 0x03, 0xef, 0x47, 0x14, - 0x9a, 0xbb, 0xcf, 0x60, 0x5f, 0xbb, 0xcf, 0x5d, 0x10, 0x9f, 0xc6, 0x06, 0x36, 0xdc, 0xc7, 0x06, - 0xf6, 0xd5, 0x12, 0x4c, 0x65, 0xf3, 0x09, 0x9f, 0xc0, 0x7d, 0xc7, 0x6b, 0xc6, 0x7d, 0x47, 0x7e, - 0xe2, 0xf4, 0x6c, 0x96, 0xe3, 0xa2, 0xbb, 0x0f, 0x9c, 0xb9, 0xfb, 0x78, 0xb2, 0x2f, 0x6e, 0xdd, - 0xef, 0x41, 0xfe, 0x6e, 0x09, 0x4e, 0x67, 0x8b, 0x2c, 0xfb, 0x8e, 0xb7, 0x77, 0x02, 0x7d, 0x73, - 0xd5, 0xe8, 0x9b, 0x67, 0xfa, 0xf9, 0x1a, 0xd6, 0xb4, 0xc2, 0x0e, 0xba, 0x91, 0xe9, 0xa0, 0x85, - 0xfe, 0x59, 0x76, 0xef, 0xa5, 0xef, 0x95, 0xe1, 0x4c, 0x6e, 0xb9, 0xf4, 0xba, 0x60, 0xd5, 0xb8, - 0x2e, 0x38, 0x9f, 0xb9, 0x2e, 0xb0, 0xbb, 0x97, 0xbe, 0x3b, 0xf7, 0x07, 0x22, 0xf2, 0x8c, 0x65, - 0x4f, 0xbb, 0xc3, 0xbb, 0x03, 0x23, 0xf2, 0x4c, 0x31, 0xc2, 0x26, 0xdf, 0x9f, 0xa4, 0x3b, 0x83, - 0xdf, 0xb3, 0xe0, 0x81, 0xdc, 0xb1, 0x39, 0x01, 0xbb, 0xfa, 0x15, 0xd3, 0xae, 0xfe, 0x44, 0xdf, - 0xb3, 0xb5, 0xc0, 0xd0, 0xfe, 0xf5, 0x72, 0xc1, 0xb7, 0x30, 0xcb, 0xe4, 0x55, 0x18, 0x75, 0x9a, - 0x4d, 0x12, 0xc7, 0xeb, 0xa1, 0xab, 0x92, 0x95, 0x3d, 0xc3, 0xb4, 0x8d, 0x14, 0x7c, 0x74, 0x38, - 0x37, 0x9b, 0x65, 0x91, 0xa2, 0xb1, 0xce, 0xc1, 0x4c, 0x80, 0x58, 0xba, 0xab, 0x09, 0x10, 0xcf, - 0x03, 0xec, 0x2b, 0x7b, 0x45, 0xd6, 0xcc, 0xa9, 0x59, 0x32, 0x34, 0x2a, 0xf4, 0xd3, 0xec, 0x14, - 0xc0, 0x9d, 0x81, 0xf8, 0x54, 0x7c, 0xae, 0xcf, 0xb1, 0xd2, 0x1d, 0x8b, 0x78, 0x88, 0xb3, 0x32, - 0x09, 0x2b, 0x96, 0xe8, 0x33, 0x30, 0x15, 0xf3, 0x0c, 0x1a, 0xcb, 0xbe, 0x13, 0xb3, 0xc0, 0x1a, - 0x31, 0x0b, 0x59, 0xdc, 0x72, 0x23, 0x83, 0xc3, 0x1d, 0xd4, 0xf6, 0x57, 0x07, 0xe0, 0xc1, 0x2e, - 0xc2, 0x07, 0x2d, 0x9a, 0x97, 0xf7, 0x4f, 0x65, 0xed, 0x76, 0xb3, 0xb9, 0x85, 0x0d, 0x43, 0x5e, - 0x66, 0x8c, 0x4b, 0xef, 0x7b, 0x8c, 0xbf, 0x62, 0x69, 0x16, 0x55, 0xee, 0xe2, 0xfb, 0xa9, 0x63, - 0x0a, 0xd5, 0xbb, 0x68, 0x62, 0xdd, 0xca, 0xb1, 0x53, 0x9e, 0xef, 0xbb, 0x39, 0x7d, 0x1b, 0x2e, - 0x4f, 0xf6, 0xaa, 0xe7, 0x8b, 0x16, 0x3c, 0x92, 0xdb, 0x5e, 0xc3, 0xd9, 0x68, 0x01, 0x2a, 0x4d, - 0x0a, 0xd4, 0x82, 0xec, 0xd2, 0x50, 0x57, 0x89, 0xc0, 0x29, 0x8d, 0xe1, 0x53, 0x54, 0xea, 0xe9, - 0x53, 0xf4, 0x2f, 0x2d, 0x98, 0xc9, 0x36, 0xe2, 0x04, 0x24, 0xe0, 0x9a, 0x29, 0x01, 0x3f, 0xda, - 0xcf, 0x58, 0x16, 0x08, 0xbf, 0x3f, 0x9e, 0x80, 0xfb, 0x0a, 0xde, 0x8b, 0xd8, 0x87, 0xe9, 0xed, - 0x26, 0x31, 0xc3, 0x17, 0xc5, 0xc7, 0xe4, 0x46, 0x7a, 0x76, 0x8d, 0x75, 0xe4, 0x07, 0xd9, 0x0e, - 0x12, 0xdc, 0x59, 0x05, 0xfa, 0xa2, 0x05, 0x33, 0xce, 0xcd, 0xb8, 0xe3, 0xfd, 0x26, 0x31, 0x67, - 0x9e, 0xcf, 0xb5, 0xaf, 0xf6, 0x78, 0xef, 0x89, 0x85, 0x18, 0xcd, 0xe4, 0x51, 0xe1, 0xdc, 0xba, - 0x10, 0x16, 0x79, 0x21, 0xa9, 0x9e, 0xdc, 0x25, 0xc0, 0x36, 0x2f, 0xfc, 0x89, 0xcb, 0x42, 0x89, - 0xc1, 0x8a, 0x0f, 0xba, 0x0e, 0x95, 0x6d, 0x19, 0x93, 0x28, 0x64, 0x6d, 0xee, 0xe6, 0x95, 0x1b, - 0xb8, 0xc8, 0x63, 0x3e, 0x14, 0x0a, 0xa7, 0xac, 0xd0, 0xab, 0x50, 0x0e, 0xb6, 0xe2, 0x6e, 0x0f, - 0x66, 0x64, 0x7c, 0xf0, 0x78, 0xa4, 0xf4, 0x95, 0xd5, 0x06, 0xa6, 0x05, 0x69, 0xf9, 0x68, 0xd3, - 0x15, 0x57, 0x02, 0xb9, 0xe5, 0xf1, 0x52, 0xad, 0xb3, 0x3c, 0x5e, 0xaa, 0x61, 0x5a, 0x10, 0xad, - 0xc2, 0x20, 0x0b, 0x71, 0x12, 0xf6, 0xfe, 0xdc, 0x4c, 0x0f, 0x1d, 0xe1, 0x5b, 0x3c, 0x74, 0x9a, - 0x81, 0x31, 0x2f, 0x8e, 0x5e, 0x83, 0xa1, 0x26, 0x7b, 0x3f, 0x42, 0x18, 0x67, 0xf2, 0xb3, 0x97, - 0x74, 0xbc, 0x30, 0xc1, 0x6f, 0x39, 0x39, 0x1c, 0x0b, 0x0e, 0x68, 0x03, 0x86, 0x9a, 0xa4, 0xb5, - 0xb3, 0x15, 0x0b, 0x9b, 0xcb, 0xc7, 0x73, 0x79, 0x75, 0x79, 0x2e, 0x45, 0x70, 0x65, 0x14, 0x58, - 0xf0, 0x42, 0x9f, 0x84, 0xd2, 0x56, 0x53, 0x44, 0x3b, 0xe5, 0xda, 0xf9, 0xcd, 0x70, 0xf6, 0xa5, - 0xa1, 0xdb, 0x87, 0x73, 0xa5, 0xd5, 0x65, 0x5c, 0xda, 0x6a, 0xa2, 0x2b, 0x30, 0xbc, 0xc5, 0x63, - 0x92, 0x45, 0x9e, 0xdf, 0xc7, 0xf3, 0xc3, 0xa5, 0x3b, 0xc2, 0x96, 0x79, 0x94, 0x8e, 0x40, 0x60, - 0xc9, 0x04, 0x6d, 0x00, 0x6c, 0xa9, 0xd8, 0x6a, 0x91, 0xe8, 0xf7, 0xa3, 0xfd, 0x44, 0x60, 0x0b, - 0x03, 0x84, 0x82, 0x62, 0x8d, 0x0f, 0xfa, 0x3c, 0x54, 0x1c, 0xf9, 0x22, 0x10, 0x4b, 0xf2, 0x6b, - 0xea, 0x03, 0xe9, 0x82, 0xeb, 0xfe, 0x58, 0x12, 0x9f, 0xad, 0x8a, 0x08, 0xa7, 0x4c, 0xd1, 0x2e, - 0x8c, 0xef, 0xc7, 0xad, 0x1d, 0x22, 0x17, 0x28, 0xcb, 0xfc, 0x5b, 0xb0, 0x21, 0x5d, 0x17, 0x84, - 0x5e, 0x94, 0xb4, 0x1d, 0xbf, 0x43, 0xa6, 0xb0, 0x90, 0xae, 0xeb, 0x3a, 0x33, 0x6c, 0xf2, 0xa6, - 0x9d, 0xfe, 0x6e, 0x3b, 0xdc, 0x3c, 0x48, 0x88, 0xc8, 0x07, 0x9c, 0xdb, 0xe9, 0xaf, 0x73, 0x92, - 0xce, 0x4e, 0x17, 0x08, 0x2c, 0x99, 0xd0, 0x25, 0xec, 0xc8, 0xd7, 0xb6, 0x84, 0x95, 0xe5, 0x89, - 0xc2, 0xee, 0xe9, 0x68, 0x6f, 0xda, 0x29, 0x4c, 0xf6, 0xa5, 0xac, 0x98, 0xcc, 0x6b, 0xed, 0x84, - 0x49, 0x18, 0x64, 0xe4, 0xed, 0x74, 0xb1, 0xcc, 0xab, 0xe7, 0xd0, 0x77, 0xca, 0xbc, 0x3c, 0x2a, - 0x9c, 0x5b, 0x17, 0x72, 0x61, 0xa2, 0x15, 0x46, 0xc9, 0xcd, 0x30, 0x92, 0xb3, 0x0a, 0x75, 0x39, - 0x7e, 0x1b, 0x94, 0xa2, 0x46, 0xe6, 0xa1, 0x6d, 0x62, 0x70, 0x86, 0x27, 0x1d, 0x92, 0xb8, 0xe9, - 0xf8, 0x64, 0xed, 0x6a, 0xf5, 0x54, 0xf1, 0x90, 0x34, 0x38, 0x49, 0xe7, 0x90, 0x08, 0x04, 0x96, - 0x4c, 0xa8, 0xf4, 0x61, 0xa9, 0xe5, 0x59, 0x02, 0xe3, 0x02, 0xe9, 0xd3, 0xe1, 0xbb, 0xcc, 0xa5, - 0x0f, 0x03, 0x63, 0x5e, 0x9c, 0xce, 0x7c, 0xa1, 0x7b, 0x86, 0x71, 0xf5, 0x74, 0xf1, 0xcc, 0x17, - 0x2a, 0xeb, 0xd5, 0x46, 0xb7, 0x99, 0xaf, 0x88, 0x70, 0xca, 0xd4, 0xfe, 0xd6, 0x50, 0xa7, 0xb6, - 0xc0, 0xce, 0x18, 0x5f, 0xb2, 0x3a, 0x2e, 0xe0, 0x3f, 0xd1, 0xaf, 0xc9, 0xe3, 0x2e, 0xea, 0x89, - 0x5f, 0xb4, 0xe0, 0xbe, 0x56, 0xee, 0x47, 0x89, 0xad, 0xb7, 0x3f, 0xcb, 0x09, 0xef, 0x06, 0x95, - 0x1a, 0x3c, 0x1f, 0x8f, 0x0b, 0x6a, 0xca, 0xea, 0xe2, 0xe5, 0xf7, 0xad, 0x8b, 0xaf, 0xc3, 0x08, - 0x53, 0xef, 0xd2, 0x54, 0x44, 0x7d, 0xb9, 0xb1, 0xb1, 0x4d, 0x7c, 0x59, 0x14, 0xc4, 0x8a, 0x05, - 0xfa, 0x39, 0x0b, 0x1e, 0xce, 0x36, 0x1d, 0x13, 0x86, 0x16, 0x69, 0x2d, 0xf9, 0xf1, 0x66, 0x55, - 0x7c, 0xff, 0xc3, 0xf5, 0x6e, 0xc4, 0x47, 0xbd, 0x08, 0x70, 0xf7, 0xca, 0x50, 0x2d, 0xe7, 0x7c, - 0x35, 0x64, 0xde, 0xcf, 0xf5, 0x3e, 0x63, 0xa1, 0xe7, 0x61, 0x6c, 0x2f, 0x6c, 0x07, 0x32, 0xc6, - 0x44, 0x44, 0x10, 0x33, 0x5b, 0xf0, 0xba, 0x06, 0xc7, 0x06, 0xd5, 0xc9, 0xea, 0xfb, 0xdf, 0xb0, - 0x72, 0x14, 0x55, 0x7e, 0x02, 0x7c, 0xc5, 0x3c, 0x01, 0x3e, 0x96, 0x3d, 0x01, 0x76, 0x58, 0xea, - 0x8c, 0xc3, 0x5f, 0xff, 0xe9, 0x7a, 0xfb, 0xcd, 0xd5, 0x64, 0xfb, 0x70, 0xb6, 0x97, 0x70, 0x66, - 0xae, 0x7c, 0xae, 0xba, 0xe3, 0x4e, 0x5d, 0xf9, 0xdc, 0xb5, 0x1a, 0x66, 0x98, 0x7e, 0xb3, 0x7e, - 0xd8, 0xff, 0xcd, 0x82, 0x72, 0x3d, 0x74, 0x4f, 0xc0, 0xf2, 0xf8, 0x29, 0xc3, 0xf2, 0xf8, 0x60, - 0xc1, 0xdb, 0x9d, 0x85, 0x76, 0xc6, 0x95, 0x8c, 0x9d, 0xf1, 0xe1, 0x22, 0x06, 0xdd, 0xad, 0x8a, - 0x7f, 0xaf, 0x0c, 0xfa, 0x4b, 0xa3, 0xe8, 0x5f, 0xdf, 0x89, 0x4f, 0x78, 0xb9, 0xdb, 0xe3, 0xa3, - 0x82, 0x33, 0xf3, 0x00, 0x94, 0xe1, 0xa6, 0x3f, 0x66, 0xae, 0xe1, 0x37, 0x88, 0xb7, 0xbd, 0x93, - 0x10, 0x37, 0xfb, 0x39, 0x27, 0xe7, 0x1a, 0xfe, 0x5f, 0x2c, 0x98, 0xcc, 0xd4, 0x8e, 0xfc, 0xbc, - 0xd8, 0xb5, 0x3b, 0xb4, 0x38, 0x4d, 0xf7, 0x0c, 0x76, 0x9b, 0x07, 0x50, 0xd7, 0x3a, 0xd2, 0xaa, - 0xc3, 0x74, 0x5f, 0x75, 0xef, 0x13, 0x63, 0x8d, 0x02, 0xbd, 0x00, 0xa3, 0x49, 0xd8, 0x0a, 0xfd, - 0x70, 0xfb, 0xe0, 0x12, 0x91, 0x79, 0x66, 0xd4, 0xe5, 0xdb, 0x46, 0x8a, 0xc2, 0x3a, 0x9d, 0xfd, - 0x2b, 0x65, 0xc8, 0xbe, 0x4e, 0xfb, 0xe7, 0x73, 0xf2, 0xc3, 0x39, 0x27, 0xbf, 0x67, 0xc1, 0x14, - 0xad, 0x9d, 0x79, 0x57, 0x49, 0xa7, 0x6a, 0xf5, 0xae, 0x87, 0xd5, 0xe5, 0x5d, 0x8f, 0xc7, 0xa8, - 0xec, 0x72, 0xc3, 0x76, 0x22, 0xac, 0x42, 0x9a, 0x70, 0xa2, 0x50, 0x2c, 0xb0, 0x82, 0x8e, 0x44, - 0x91, 0x88, 0x48, 0xd3, 0xe9, 0x48, 0x14, 0x61, 0x81, 0x95, 0xcf, 0x7e, 0x0c, 0x14, 0x3c, 0xfb, - 0xc1, 0x52, 0xb4, 0x09, 0x8f, 0x1e, 0xa1, 0x50, 0x68, 0x29, 0xda, 0xa4, 0xab, 0x4f, 0x4a, 0x63, - 0x7f, 0xb3, 0x0c, 0x63, 0xf5, 0xd0, 0x4d, 0x2f, 0x56, 0x9e, 0x37, 0x2e, 0x56, 0xce, 0x66, 0x2e, - 0x56, 0xa6, 0x74, 0xda, 0x3f, 0xbf, 0x46, 0xf9, 0xa0, 0xae, 0x51, 0xfe, 0xcc, 0x82, 0x89, 0x7a, - 0xe8, 0xd2, 0x09, 0xfa, 0x93, 0x34, 0x1b, 0xf5, 0x04, 0x80, 0x43, 0x5d, 0x12, 0x00, 0xfe, 0x7d, - 0x0b, 0x86, 0xeb, 0xa1, 0x7b, 0x02, 0x16, 0xd3, 0x57, 0x4c, 0x8b, 0xe9, 0xfd, 0x05, 0x52, 0xb6, - 0xc0, 0x48, 0xfa, 0x1b, 0x65, 0x18, 0xa7, 0xed, 0x0c, 0xb7, 0xe5, 0x28, 0x19, 0x3d, 0x62, 0xf5, - 0xd1, 0x23, 0x54, 0x99, 0x0b, 0x7d, 0x3f, 0xbc, 0x99, 0x1d, 0xb1, 0x55, 0x06, 0xc5, 0x02, 0x8b, - 0x9e, 0x86, 0x91, 0x56, 0x44, 0xf6, 0xbd, 0xb0, 0x1d, 0x67, 0x63, 0x5a, 0xeb, 0x02, 0x8e, 0x15, - 0x05, 0xd5, 0xdb, 0x63, 0x2f, 0x68, 0x12, 0xe9, 0xe5, 0x33, 0xc0, 0xbc, 0x7c, 0x78, 0x0e, 0x55, - 0x0d, 0x8e, 0x0d, 0x2a, 0x74, 0x03, 0x2a, 0xec, 0x3f, 0x5b, 0x37, 0xc7, 0x7f, 0xd5, 0x43, 0x24, - 0x2e, 0x17, 0x0c, 0x70, 0xca, 0x0b, 0x9d, 0x07, 0x48, 0xa4, 0x3f, 0x52, 0x2c, 0x42, 0xae, 0x95, - 0x46, 0xa9, 0x3c, 0x95, 0x62, 0xac, 0x51, 0xa1, 0xa7, 0xa0, 0x92, 0x38, 0x9e, 0x7f, 0xd9, 0x0b, - 0x48, 0x2c, 0xfc, 0xb9, 0x44, 0x5e, 0x72, 0x01, 0xc4, 0x29, 0x9e, 0xee, 0xe8, 0x2c, 0xa0, 0x9f, - 0xbf, 0x09, 0x34, 0xc2, 0xa8, 0xd9, 0x8e, 0x7e, 0x59, 0x41, 0xb1, 0x46, 0x61, 0xbf, 0x04, 0xa7, - 0xeb, 0xa1, 0x5b, 0x0f, 0xa3, 0x64, 0x35, 0x8c, 0x6e, 0x3a, 0x91, 0x2b, 0xc7, 0x6f, 0x4e, 0xa6, - 0xc8, 0xa6, 0xbb, 0xee, 0x20, 0xb7, 0x06, 0x18, 0xc9, 0xaf, 0x9f, 0x63, 0x7b, 0xfa, 0x31, 0x83, - 0x6f, 0xfe, 0x5d, 0x09, 0x50, 0x9d, 0x79, 0x4c, 0x19, 0x0f, 0x47, 0xbd, 0x0d, 0x13, 0x31, 0xb9, - 0xec, 0x05, 0xed, 0x5b, 0xf2, 0x7c, 0xd5, 0x25, 0xb2, 0xa9, 0xb1, 0xa2, 0x53, 0x72, 0x8b, 0x8a, - 0x09, 0xc3, 0x19, 0x6e, 0xb4, 0x0b, 0xa3, 0x76, 0xb0, 0x18, 0x5f, 0x8b, 0x49, 0x24, 0x1e, 0x4a, - 0x62, 0x5d, 0x88, 0x25, 0x10, 0xa7, 0x78, 0x3a, 0x65, 0xd8, 0x9f, 0x2b, 0x61, 0x80, 0xc3, 0x30, - 0x91, 0x93, 0x8c, 0x3d, 0xb5, 0xa1, 0xc1, 0xb1, 0x41, 0x85, 0x56, 0x01, 0xc5, 0xed, 0x56, 0xcb, - 0x67, 0xd7, 0x90, 0x8e, 0x7f, 0x21, 0x0a, 0xdb, 0x2d, 0x7e, 0x95, 0x24, 0x5e, 0xa9, 0x68, 0x74, - 0x60, 0x71, 0x4e, 0x09, 0x2a, 0x18, 0xb6, 0x62, 0xf6, 0x5b, 0xc4, 0xf4, 0x73, 0xdb, 0x66, 0x83, - 0x81, 0xb0, 0xc4, 0xd9, 0x5f, 0x60, 0x9b, 0x19, 0x7b, 0xdf, 0x26, 0x69, 0x47, 0x04, 0xed, 0xc1, - 0x78, 0x8b, 0x6d, 0x58, 0x49, 0x14, 0xfa, 0x3e, 0x91, 0x7a, 0xe3, 0x9d, 0x79, 0x6f, 0xf1, 0xf7, - 0x2e, 0x74, 0x76, 0xd8, 0xe4, 0x6e, 0x7f, 0x69, 0x92, 0xc9, 0xa5, 0x06, 0x3f, 0xb4, 0x0c, 0x0b, - 0x9f, 0x6c, 0xa1, 0xa1, 0xcd, 0x16, 0xbf, 0x27, 0x97, 0x4a, 0x7a, 0xe1, 0xd7, 0x8d, 0x65, 0x59, - 0xf4, 0x3a, 0xbb, 0x83, 0xe3, 0xc2, 0xa0, 0xd7, 0x4b, 0x96, 0x9c, 0xca, 0xb8, 0x6e, 0x13, 0x05, - 0xb1, 0xc6, 0x04, 0x5d, 0x86, 0x71, 0xf1, 0x1c, 0x8a, 0x30, 0x3c, 0x94, 0x8d, 0xe3, 0xef, 0x38, - 0xd6, 0x91, 0x47, 0x59, 0x00, 0x36, 0x0b, 0xa3, 0x6d, 0x78, 0x58, 0x7b, 0xbc, 0x2b, 0xc7, 0x83, - 0x90, 0xcb, 0x96, 0x47, 0x6e, 0x1f, 0xce, 0x3d, 0xbc, 0xd1, 0x8d, 0x10, 0x77, 0xe7, 0x83, 0xae, - 0xc2, 0x69, 0xa7, 0x99, 0x78, 0xfb, 0xa4, 0x46, 0x1c, 0xd7, 0xf7, 0x02, 0x62, 0x26, 0x79, 0x78, - 0xe0, 0xf6, 0xe1, 0xdc, 0xe9, 0xc5, 0x3c, 0x02, 0x9c, 0x5f, 0x0e, 0xbd, 0x02, 0x15, 0x37, 0x88, - 0x45, 0x1f, 0x0c, 0x19, 0xef, 0xd2, 0x55, 0x6a, 0x57, 0x1a, 0xea, 0xfb, 0xd3, 0x3f, 0x38, 0x2d, - 0x80, 0xb6, 0x61, 0x4c, 0x0f, 0xe4, 0x12, 0x6f, 0x1a, 0x3e, 0xd3, 0xe5, 0x6c, 0x6b, 0x44, 0x3f, - 0x71, 0xab, 0x9b, 0xf2, 0xcf, 0x35, 0x02, 0xa3, 0x0c, 0xc6, 0xe8, 0x35, 0x40, 0x31, 0x89, 0xf6, - 0xbd, 0x26, 0x59, 0x6c, 0xb2, 0x24, 0xc3, 0xcc, 0x56, 0x33, 0x62, 0x04, 0x9b, 0xa0, 0x46, 0x07, - 0x05, 0xce, 0x29, 0x85, 0x2e, 0x52, 0x89, 0xa2, 0x43, 0x85, 0x3b, 0xb5, 0x54, 0xf3, 0xaa, 0x35, - 0xd2, 0x8a, 0x48, 0xd3, 0x49, 0x88, 0x6b, 0x72, 0xc4, 0x99, 0x72, 0x74, 0xbf, 0x51, 0x6f, 0x37, - 0x80, 0xe9, 0x04, 0xdc, 0xf9, 0x7e, 0x03, 0x3d, 0x21, 0xed, 0x84, 0x71, 0x72, 0x85, 0x24, 0x37, - 0xc3, 0x68, 0x57, 0x64, 0x66, 0x4b, 0x13, 0x37, 0xa6, 0x28, 0xac, 0xd3, 0x51, 0x8d, 0x88, 0x5d, - 0x82, 0xad, 0xd5, 0xd8, 0x3d, 0xc5, 0x48, 0xba, 0x4e, 0x2e, 0x72, 0x30, 0x96, 0x78, 0x49, 0xba, - 0x56, 0x5f, 0x66, 0xb7, 0x0f, 0x19, 0xd2, 0xb5, 0xfa, 0x32, 0x96, 0x78, 0x44, 0x3a, 0xdf, 0xfc, - 0x9b, 0x28, 0xbe, 0x37, 0xea, 0x94, 0xcb, 0x7d, 0x3e, 0xfb, 0x17, 0xc0, 0x94, 0x7a, 0x6d, 0x90, - 0xa7, 0xac, 0x8b, 0xab, 0x93, 0x6c, 0x92, 0xf4, 0x9f, 0xef, 0x4e, 0xd9, 0xe2, 0xd6, 0x32, 0x9c, - 0x70, 0x07, 0x6f, 0x23, 0x79, 0xc8, 0x54, 0xcf, 0xb7, 0x37, 0x16, 0xa0, 0x12, 0xb7, 0x37, 0xdd, - 0x70, 0xcf, 0xf1, 0x02, 0x76, 0x59, 0xa0, 0x29, 0x22, 0x0d, 0x89, 0xc0, 0x29, 0x0d, 0x5a, 0x85, - 0x11, 0x47, 0x1c, 0xbe, 0x84, 0x79, 0x3f, 0x37, 0x9b, 0x80, 0x3c, 0xa0, 0x71, 0x3b, 0xa8, 0xfc, - 0x87, 0x55, 0x59, 0xf4, 0x32, 0x8c, 0x8b, 0x80, 0x37, 0xe1, 0xab, 0x7a, 0xca, 0x8c, 0x8d, 0x68, - 0xe8, 0x48, 0x6c, 0xd2, 0xa2, 0x9f, 0x86, 0x09, 0xca, 0x25, 0x15, 0x6c, 0xd5, 0x99, 0x7e, 0x24, - 0xa2, 0x96, 0x53, 0x5d, 0x2f, 0x8c, 0x33, 0xcc, 0x90, 0x0b, 0x0f, 0x39, 0xed, 0x24, 0x64, 0xc6, - 0x4a, 0x73, 0xfe, 0x6f, 0x84, 0xbb, 0x24, 0x60, 0xd6, 0xfd, 0x91, 0xa5, 0xb3, 0xb7, 0x0f, 0xe7, - 0x1e, 0x5a, 0xec, 0x42, 0x87, 0xbb, 0x72, 0x41, 0xd7, 0x60, 0x34, 0x09, 0x7d, 0xe1, 0x64, 0x1e, - 0x57, 0xef, 0x2b, 0x4e, 0x7e, 0xb4, 0xa1, 0xc8, 0x74, 0x73, 0x82, 0x2a, 0x8a, 0x75, 0x3e, 0x68, - 0x83, 0xaf, 0x31, 0x96, 0xaa, 0x93, 0xc4, 0xd5, 0xfb, 0x8b, 0x3b, 0x46, 0x65, 0xf4, 0x34, 0x97, - 0xa0, 0x28, 0x89, 0x75, 0x36, 0xe8, 0x02, 0x4c, 0xb7, 0x22, 0x2f, 0x64, 0x13, 0x5b, 0x19, 0x8a, - 0xab, 0x46, 0x5a, 0xbc, 0xe9, 0x7a, 0x96, 0x00, 0x77, 0x96, 0x41, 0xe7, 0xa8, 0x82, 0xca, 0x81, - 0xd5, 0x07, 0xf8, 0x9b, 0x2c, 0x5c, 0x39, 0xe5, 0x30, 0xac, 0xb0, 0xb3, 0x9f, 0x86, 0xe9, 0x0e, - 0x49, 0x79, 0x2c, 0x87, 0xdf, 0x7f, 0x32, 0x08, 0x15, 0x65, 0x0e, 0x44, 0x0b, 0xa6, 0x95, 0xf7, - 0x81, 0xac, 0x95, 0x77, 0x84, 0xea, 0x6b, 0xba, 0x61, 0x77, 0x23, 0xe7, 0x49, 0xf9, 0xb3, 0x05, - 0xa2, 0xa1, 0xff, 0xe8, 0xbc, 0x63, 0x3c, 0xb7, 0x9f, 0x1e, 0x18, 0x07, 0xba, 0x1e, 0x18, 0xfb, - 0x7c, 0xde, 0x91, 0x1e, 0x0d, 0x5b, 0xa1, 0xbb, 0x56, 0xcf, 0xbe, 0x77, 0x56, 0xa7, 0x40, 0xcc, - 0x71, 0x4c, 0xb9, 0xa7, 0xdb, 0x3a, 0x53, 0xee, 0x87, 0xef, 0x50, 0xb9, 0x97, 0x0c, 0x70, 0xca, - 0x0b, 0xf9, 0x30, 0xdd, 0x34, 0x9f, 0xaa, 0x53, 0x11, 0x79, 0x8f, 0xf6, 0x7c, 0x34, 0xae, 0xad, - 0xbd, 0x61, 0xb3, 0x9c, 0xe5, 0x82, 0x3b, 0x19, 0xa3, 0x97, 0x61, 0xe4, 0xdd, 0x30, 0x66, 0xd3, - 0x4e, 0xec, 0x6d, 0x32, 0x06, 0x6a, 0xe4, 0xf5, 0xab, 0x0d, 0x06, 0x3f, 0x3a, 0x9c, 0x1b, 0xad, - 0x87, 0xae, 0xfc, 0x8b, 0x55, 0x01, 0x74, 0x0b, 0x4e, 0x1b, 0x12, 0x41, 0x35, 0x17, 0xfa, 0x6f, - 0xee, 0xc3, 0xa2, 0xba, 0xd3, 0x6b, 0x79, 0x9c, 0x70, 0x7e, 0x05, 0xf6, 0xb7, 0xb8, 0xd1, 0x53, - 0x98, 0x46, 0x48, 0xdc, 0xf6, 0x4f, 0xe2, 0xa1, 0x8a, 0x15, 0xc3, 0x6a, 0x73, 0xc7, 0x86, 0xf5, - 0xdf, 0xb5, 0x98, 0x61, 0x7d, 0x83, 0xec, 0xb5, 0x7c, 0x27, 0x39, 0x09, 0x37, 0xef, 0xd7, 0x61, - 0x24, 0x11, 0xb5, 0x75, 0x7b, 0x5b, 0x43, 0x6b, 0x14, 0xbb, 0x5c, 0x50, 0x1b, 0xa2, 0x84, 0x62, - 0xc5, 0xc6, 0xfe, 0x67, 0x7c, 0x04, 0x24, 0xe6, 0x04, 0x6c, 0x0b, 0x35, 0xd3, 0xb6, 0x30, 0xd7, - 0xe3, 0x0b, 0x0a, 0x6c, 0x0c, 0xff, 0xd4, 0x6c, 0x37, 0x3b, 0x7b, 0x7c, 0xd8, 0x6f, 0x74, 0xec, - 0x5f, 0xb4, 0x60, 0x26, 0xcf, 0x11, 0x80, 0x2a, 0x31, 0xfc, 0xe4, 0xa3, 0x6e, 0xb8, 0x54, 0x0f, - 0x5e, 0x17, 0x70, 0xac, 0x28, 0xfa, 0xce, 0x6f, 0x7f, 0xbc, 0x84, 0x5f, 0x57, 0xc1, 0x7c, 0xd5, - 0x10, 0xbd, 0xca, 0xe3, 0x36, 0x2c, 0xf5, 0xec, 0xe0, 0xf1, 0x62, 0x36, 0xec, 0x5f, 0x2d, 0xc1, - 0x0c, 0x37, 0x51, 0x2f, 0xee, 0x87, 0x9e, 0x5b, 0x0f, 0x5d, 0x11, 0xc5, 0xf2, 0x26, 0x8c, 0xb5, - 0xb4, 0xe3, 0x6a, 0xb7, 0x94, 0x43, 0xfa, 0xb1, 0x36, 0x3d, 0x36, 0xe8, 0x50, 0x6c, 0xf0, 0x42, - 0x2e, 0x8c, 0x91, 0x7d, 0xaf, 0xa9, 0xec, 0x9c, 0xa5, 0x63, 0x8b, 0x74, 0x55, 0xcb, 0x8a, 0xc6, - 0x07, 0x1b, 0x5c, 0xef, 0xc1, 0x2b, 0x34, 0xf6, 0xd7, 0x2c, 0xb8, 0xbf, 0x20, 0x41, 0x11, 0xad, - 0xee, 0x26, 0xbb, 0x0c, 0x10, 0x4f, 0x64, 0xaa, 0xea, 0xf8, 0x15, 0x01, 0x16, 0x58, 0xf4, 0x59, - 0x00, 0x6e, 0xe2, 0xa7, 0x5a, 0xb4, 0xf8, 0xf4, 0xfe, 0x12, 0x77, 0x68, 0xd9, 0x1d, 0x64, 0x79, - 0xac, 0xf1, 0xb2, 0x7f, 0xb9, 0x0c, 0x83, 0xfc, 0xbd, 0xf4, 0x55, 0x18, 0xde, 0xe1, 0xe9, 0x90, - 0xfb, 0xc9, 0xbc, 0x9c, 0x1e, 0x47, 0x38, 0x00, 0xcb, 0xc2, 0x68, 0x1d, 0x4e, 0x89, 0x48, 0xa9, - 0x1a, 0xf1, 0x9d, 0x03, 0x79, 0xaa, 0xe5, 0x4f, 0x93, 0xc8, 0xb4, 0xf9, 0xa7, 0xd6, 0x3a, 0x49, - 0x70, 0x5e, 0x39, 0xf4, 0x6a, 0x47, 0x12, 0x44, 0x9e, 0x48, 0x5a, 0xe9, 0xc0, 0x3d, 0x12, 0x21, - 0xbe, 0x0c, 0xe3, 0xad, 0x8e, 0xf3, 0xbb, 0xf6, 0x54, 0xb5, 0x79, 0x66, 0x37, 0x69, 0x99, 0x57, - 0x41, 0x9b, 0xf9, 0x50, 0x6c, 0xec, 0x44, 0x24, 0xde, 0x09, 0x7d, 0x57, 0xbc, 0xcb, 0x9a, 0x7a, - 0x15, 0x64, 0xf0, 0xb8, 0xa3, 0x04, 0xe5, 0xb2, 0xe5, 0x78, 0x7e, 0x3b, 0x22, 0x29, 0x97, 0x21, - 0x93, 0xcb, 0x6a, 0x06, 0x8f, 0x3b, 0x4a, 0xd0, 0x79, 0x74, 0x5a, 0x3c, 0xea, 0x29, 0xe3, 0xe7, - 0x95, 0xab, 0xc8, 0xb0, 0xf4, 0xa3, 0xef, 0x92, 0xd3, 0x45, 0x5c, 0xf9, 0xab, 0x67, 0x41, 0xb5, - 0x27, 0xe3, 0x84, 0x07, 0xbd, 0xe4, 0x72, 0x27, 0x4f, 0x4b, 0xfe, 0x91, 0x05, 0xa7, 0x72, 0xdc, - 0xc7, 0xb8, 0xa8, 0xda, 0xf6, 0xe2, 0x44, 0xbd, 0x88, 0xa1, 0x89, 0x2a, 0x0e, 0xc7, 0x8a, 0x82, - 0xae, 0x07, 0x2e, 0x0c, 0xb3, 0x02, 0x50, 0xb8, 0x7c, 0x08, 0xec, 0xf1, 0x04, 0x20, 0x3a, 0x0b, - 0x03, 0xed, 0x98, 0x44, 0xf2, 0x4d, 0x46, 0x29, 0xbf, 0x99, 0x45, 0x90, 0x61, 0xa8, 0x46, 0xb9, - 0xad, 0x8c, 0x71, 0x9a, 0x46, 0xc9, 0xcd, 0x71, 0x1c, 0x67, 0x7f, 0xa5, 0x0c, 0x93, 0x19, 0x07, - 0x50, 0xda, 0x90, 0xbd, 0x30, 0xf0, 0x92, 0x50, 0xe5, 0xe0, 0xe3, 0x29, 0x47, 0x48, 0x6b, 0x67, - 0x5d, 0xc0, 0xb1, 0xa2, 0x40, 0x8f, 0xc9, 0x87, 0x7a, 0xb3, 0x2f, 0x7d, 0x2c, 0xd5, 0x8c, 0xb7, - 0x7a, 0xfb, 0x7d, 0xb2, 0xe7, 0x51, 0x18, 0x68, 0x85, 0xea, 0x15, 0x75, 0x35, 0x9e, 0x78, 0xa9, - 0x56, 0x0f, 0x43, 0x1f, 0x33, 0x24, 0xfa, 0x98, 0xf8, 0xfa, 0xcc, 0x7d, 0x05, 0x76, 0xdc, 0x30, - 0xd6, 0xba, 0xe0, 0x09, 0x18, 0xde, 0x25, 0x07, 0x91, 0x17, 0x6c, 0x67, 0x6f, 0x6b, 0x2e, 0x71, - 0x30, 0x96, 0x78, 0x33, 0xe5, 0xfd, 0xf0, 0x3d, 0x79, 0x75, 0x67, 0xa4, 0xe7, 0xae, 0xf6, 0x1b, - 0x16, 0x4c, 0xb2, 0x7c, 0xb7, 0x22, 0x53, 0x83, 0x17, 0x06, 0x27, 0xa0, 0x27, 0x3c, 0x0a, 0x83, - 0x11, 0xad, 0x34, 0xfb, 0x94, 0x06, 0x6b, 0x09, 0xe6, 0x38, 0xf4, 0x10, 0x0c, 0xb0, 0x26, 0xd0, - 0xc1, 0x1b, 0xe3, 0x19, 0xef, 0x6b, 0x4e, 0xe2, 0x60, 0x06, 0x65, 0x21, 0x73, 0x98, 0xb4, 0x7c, - 0x8f, 0x37, 0x3a, 0x35, 0xb7, 0x7e, 0x38, 0x42, 0xe6, 0x72, 0x9b, 0xf6, 0xfe, 0x42, 0xe6, 0xf2, - 0x59, 0x76, 0xd7, 0xc1, 0xff, 0x7b, 0x09, 0xce, 0xe4, 0x96, 0xeb, 0x3b, 0x64, 0xae, 0x7b, 0xe9, - 0xbb, 0x73, 0xd7, 0x9b, 0x7f, 0x05, 0x5b, 0x3e, 0xc1, 0x2b, 0xd8, 0x81, 0x7e, 0xd5, 0x94, 0xc1, - 0x3e, 0x22, 0xd9, 0x72, 0xbb, 0xec, 0x43, 0x12, 0xc9, 0x96, 0xdb, 0xb6, 0x82, 0x33, 0xc4, 0x8f, - 0x4a, 0x05, 0xdf, 0xc2, 0x4e, 0x13, 0xe7, 0xa8, 0x9c, 0x61, 0xc8, 0x58, 0xa8, 0x5d, 0x63, 0x5c, - 0xc6, 0x70, 0x18, 0x56, 0x58, 0xe4, 0x69, 0x31, 0x61, 0xbc, 0x69, 0x2f, 0x1f, 0x6b, 0xc9, 0xcc, - 0x9b, 0xd6, 0x71, 0x3d, 0xad, 0x44, 0x36, 0x3e, 0x6c, 0x5d, 0x3b, 0x01, 0x96, 0xfb, 0x3f, 0x01, - 0x8e, 0xe5, 0x9f, 0xfe, 0xd0, 0x22, 0x4c, 0xee, 0x79, 0x01, 0x7b, 0x0f, 0xd7, 0xd4, 0x7b, 0x54, - 0x88, 0xf4, 0xba, 0x89, 0xc6, 0x59, 0xfa, 0xd9, 0x97, 0x61, 0xfc, 0xce, 0x4d, 0x56, 0xdf, 0x2b, - 0xc3, 0x83, 0x5d, 0x96, 0x3d, 0x97, 0xf5, 0xc6, 0x18, 0x68, 0xb2, 0xbe, 0x63, 0x1c, 0xea, 0x30, - 0xb3, 0xd5, 0xf6, 0xfd, 0x03, 0xe6, 0xe5, 0x44, 0x5c, 0x49, 0x21, 0x14, 0x13, 0x95, 0xcc, 0x7a, - 0x35, 0x87, 0x06, 0xe7, 0x96, 0x44, 0xaf, 0x01, 0x0a, 0x37, 0x59, 0x82, 0x65, 0x37, 0x4d, 0x96, - 0xc1, 0x3a, 0xbe, 0x9c, 0x2e, 0xc6, 0xab, 0x1d, 0x14, 0x38, 0xa7, 0x14, 0xd5, 0x30, 0xd9, 0x0b, - 0xfe, 0xaa, 0x59, 0x19, 0x0d, 0x13, 0xeb, 0x48, 0x6c, 0xd2, 0xa2, 0x0b, 0x30, 0xed, 0xec, 0x3b, - 0x1e, 0x4f, 0x9e, 0x26, 0x19, 0x70, 0x15, 0x53, 0x19, 0x8a, 0x16, 0xb3, 0x04, 0xb8, 0xb3, 0x4c, - 0x26, 0xb8, 0x6d, 0xa8, 0x38, 0xb8, 0xad, 0xbb, 0x5c, 0xec, 0x65, 0xf7, 0xb3, 0xff, 0xa3, 0x45, - 0xb7, 0xaf, 0x9c, 0x07, 0x58, 0x69, 0x3f, 0x28, 0xfb, 0x95, 0x16, 0x67, 0xa6, 0xfa, 0x61, 0x59, - 0x47, 0x62, 0x93, 0x96, 0x4f, 0x88, 0x38, 0x75, 0xb2, 0x36, 0xf4, 0x44, 0x11, 0x00, 0xaa, 0x28, - 0xd0, 0x1b, 0x30, 0xec, 0x7a, 0xfb, 0x5e, 0x1c, 0x46, 0x62, 0xb1, 0x1c, 0xf7, 0xd1, 0x71, 0x25, - 0x07, 0x6b, 0x9c, 0x0d, 0x96, 0xfc, 0xec, 0xaf, 0x94, 0x60, 0x5c, 0xd6, 0xf8, 0x7a, 0x3b, 0x4c, - 0x9c, 0x13, 0xd8, 0x96, 0x2f, 0x18, 0xdb, 0xf2, 0xc7, 0xba, 0x45, 0xc1, 0xb2, 0x26, 0x15, 0x6e, - 0xc7, 0x57, 0x33, 0xdb, 0xf1, 0xe3, 0xbd, 0x59, 0x75, 0xdf, 0x86, 0xff, 0xb9, 0x05, 0xd3, 0x06, - 0xfd, 0x09, 0xec, 0x06, 0xab, 0xe6, 0x6e, 0xf0, 0x48, 0xcf, 0x6f, 0x28, 0xd8, 0x05, 0xbe, 0x51, - 0xca, 0xb4, 0x9d, 0x49, 0xff, 0x77, 0x61, 0x60, 0xc7, 0x89, 0xdc, 0x6e, 0x29, 0x40, 0x3b, 0x0a, - 0xcd, 0x5f, 0x74, 0x22, 0x97, 0xcb, 0xf0, 0xa7, 0xd5, 0xdb, 0x70, 0x4e, 0xe4, 0xf6, 0x8c, 0x29, - 0x60, 0x55, 0xa1, 0x97, 0x60, 0x28, 0x6e, 0x86, 0x2d, 0xe5, 0x7b, 0x79, 0x96, 0xbf, 0x1b, 0x47, - 0x21, 0x47, 0x87, 0x73, 0xc8, 0xac, 0x8e, 0x82, 0xb1, 0xa0, 0x9f, 0xdd, 0x86, 0x8a, 0xaa, 0xfa, - 0x9e, 0x7a, 0x95, 0xff, 0x41, 0x19, 0x4e, 0xe5, 0xcc, 0x0b, 0x14, 0x1b, 0xbd, 0xf5, 0x6c, 0x9f, - 0xd3, 0xe9, 0x7d, 0xf6, 0x57, 0xcc, 0x4e, 0x2c, 0xae, 0x18, 0xff, 0xbe, 0x2b, 0xbd, 0x16, 0x93, - 0x6c, 0xa5, 0x14, 0xd4, 0xbb, 0x52, 0x5a, 0xd9, 0x89, 0x75, 0x35, 0xad, 0x48, 0xb5, 0xf4, 0x9e, - 0x8e, 0xe9, 0x9f, 0x94, 0x61, 0x26, 0x2f, 0x78, 0x1e, 0xfd, 0x4c, 0xe6, 0x41, 0x91, 0xe7, 0xfb, - 0x0d, 0xbb, 0xe7, 0xaf, 0x8c, 0x88, 0x6c, 0x43, 0xf3, 0xe6, 0x13, 0x23, 0x3d, 0xbb, 0x59, 0xd4, - 0xc9, 0x82, 0x7c, 0x22, 0xfe, 0x10, 0x8c, 0x5c, 0xe2, 0x9f, 0xe8, 0xbb, 0x01, 0xe2, 0x05, 0x99, - 0x38, 0x13, 0xe4, 0x23, 0xc1, 0xbd, 0x83, 0x7c, 0x64, 0xcd, 0xb3, 0x1e, 0x8c, 0x6a, 0x5f, 0x73, - 0x4f, 0x47, 0x7c, 0x97, 0xee, 0x28, 0x5a, 0xbb, 0xef, 0xe9, 0xa8, 0x7f, 0xcd, 0x82, 0x8c, 0x9f, - 0x94, 0xb2, 0x7f, 0x58, 0x85, 0xf6, 0x8f, 0xb3, 0x30, 0x10, 0x85, 0x3e, 0xc9, 0xbe, 0x31, 0x81, - 0x43, 0x9f, 0x60, 0x86, 0x51, 0x0f, 0x41, 0x97, 0x8b, 0x1e, 0x82, 0xa6, 0x47, 0x63, 0x9f, 0xec, - 0x13, 0x69, 0x8d, 0x50, 0x32, 0xf9, 0x32, 0x05, 0x62, 0x8e, 0xb3, 0x7f, 0x6d, 0x00, 0x4e, 0xe5, - 0x84, 0xb4, 0xd1, 0x83, 0xca, 0xb6, 0x93, 0x90, 0x9b, 0xce, 0x41, 0x36, 0xef, 0xed, 0x05, 0x0e, - 0xc6, 0x12, 0xcf, 0x7c, 0x39, 0x79, 0xea, 0xbc, 0x8c, 0x8d, 0x48, 0x64, 0xcc, 0x13, 0xd8, 0x7b, - 0xf5, 0x36, 0xf0, 0x79, 0x80, 0x38, 0xf6, 0x57, 0x02, 0xaa, 0x7c, 0xb9, 0xc2, 0x53, 0x34, 0xcd, - 0xb3, 0xd8, 0xb8, 0x2c, 0x30, 0x58, 0xa3, 0x42, 0x35, 0x98, 0x6a, 0x45, 0x61, 0xc2, 0xed, 0x6e, - 0x35, 0xee, 0xa3, 0x30, 0x68, 0x06, 0x27, 0xd5, 0x33, 0x78, 0xdc, 0x51, 0x02, 0xbd, 0x00, 0xa3, - 0x22, 0x60, 0xa9, 0x1e, 0x86, 0xbe, 0xb0, 0xd2, 0xa8, 0x1b, 0xef, 0x46, 0x8a, 0xc2, 0x3a, 0x9d, - 0x56, 0x8c, 0x19, 0xf3, 0x86, 0x73, 0x8b, 0x71, 0x83, 0x9e, 0x46, 0x97, 0xc9, 0xa1, 0x31, 0xd2, - 0x57, 0x0e, 0x8d, 0xd4, 0x6e, 0x55, 0xe9, 0xfb, 0xfe, 0x02, 0x7a, 0x5a, 0x7a, 0xbe, 0x55, 0x86, - 0x21, 0x3e, 0x14, 0x27, 0xa0, 0x8a, 0xad, 0x0a, 0xdb, 0x4d, 0x97, 0x8c, 0x02, 0xbc, 0x2d, 0xf3, - 0x35, 0x27, 0x71, 0xb8, 0x18, 0x52, 0xab, 0x21, 0xb5, 0xf2, 0xa0, 0x79, 0x63, 0xbd, 0xcc, 0x66, - 0x8c, 0x13, 0xc0, 0x79, 0x68, 0xab, 0xe7, 0x6d, 0x80, 0x98, 0xbd, 0x4f, 0x4b, 0x79, 0x88, 0xdc, - 0x14, 0x4f, 0x76, 0xa9, 0xbd, 0xa1, 0x88, 0x79, 0x1b, 0xd2, 0x29, 0xa8, 0x10, 0x58, 0xe3, 0x38, - 0xfb, 0x22, 0x54, 0x14, 0x71, 0xaf, 0x93, 0xdc, 0x98, 0x2e, 0xbc, 0x3e, 0x05, 0x93, 0x99, 0xba, - 0x8e, 0x75, 0x10, 0xfc, 0x4d, 0x0b, 0x26, 0x79, 0x93, 0x57, 0x82, 0x7d, 0xb1, 0xd8, 0xdf, 0x83, - 0x19, 0x3f, 0x67, 0xd1, 0x89, 0x11, 0xed, 0x7f, 0x91, 0xaa, 0x83, 0x5f, 0x1e, 0x16, 0xe7, 0xd6, - 0x41, 0x0f, 0xff, 0xfc, 0x65, 0x6d, 0xc7, 0x17, 0x1e, 0xc8, 0x63, 0x3c, 0xb7, 0x38, 0x87, 0x61, - 0x85, 0xb5, 0xbf, 0x6f, 0xc1, 0x34, 0x6f, 0xf9, 0x25, 0x72, 0xa0, 0x0e, 0x39, 0x1f, 0x64, 0xdb, - 0x45, 0xea, 0xf4, 0x52, 0x41, 0xea, 0x74, 0xfd, 0xd3, 0xca, 0x5d, 0x3f, 0xed, 0x57, 0x2d, 0x10, - 0x33, 0xf0, 0x04, 0xd4, 0xf9, 0x4f, 0x9b, 0xea, 0xfc, 0x6c, 0xf1, 0xa4, 0x2e, 0xd0, 0xe3, 0xff, - 0xcc, 0x82, 0x29, 0x4e, 0x90, 0x5e, 0x5e, 0x7c, 0xa0, 0xe3, 0xd0, 0xcf, 0x7b, 0x3e, 0xea, 0x01, - 0xd5, 0xfc, 0x8f, 0x32, 0x06, 0x6b, 0xa0, 0xeb, 0x60, 0xb9, 0x72, 0x01, 0x1d, 0xe3, 0x9d, 0xaa, - 0x63, 0x67, 0xfb, 0xb3, 0xff, 0xd8, 0x02, 0xc4, 0xab, 0xc9, 0x3e, 0x69, 0xce, 0xb7, 0x3e, 0xed, - 0x40, 0x9f, 0x8a, 0x1a, 0x85, 0xc1, 0x1a, 0xd5, 0x5d, 0xe9, 0x9e, 0xcc, 0x0d, 0x54, 0xb9, 0xf7, - 0x0d, 0xd4, 0x31, 0x7a, 0xf4, 0xaf, 0x0e, 0x40, 0xd6, 0xdd, 0x11, 0x5d, 0x87, 0xb1, 0xa6, 0xd3, - 0x72, 0x36, 0x3d, 0xdf, 0x4b, 0x3c, 0x12, 0x77, 0xbb, 0xba, 0x5e, 0xd6, 0xe8, 0xc4, 0x75, 0x8f, - 0x06, 0xc1, 0x06, 0x1f, 0x34, 0x0f, 0xd0, 0x8a, 0xbc, 0x7d, 0xcf, 0x27, 0xdb, 0xec, 0x44, 0xc3, - 0x62, 0x1e, 0xf8, 0x7d, 0xac, 0x84, 0x62, 0x8d, 0x22, 0xc7, 0x47, 0xbe, 0x7c, 0xef, 0x7c, 0xe4, - 0x07, 0x8e, 0xe9, 0x23, 0x3f, 0xd8, 0x97, 0x8f, 0x3c, 0x86, 0xfb, 0xe4, 0xde, 0x4d, 0xff, 0xaf, - 0x7a, 0x3e, 0x11, 0x0a, 0x1b, 0x8f, 0x84, 0x98, 0xbd, 0x7d, 0x38, 0x77, 0x1f, 0xce, 0xa5, 0xc0, - 0x05, 0x25, 0xd1, 0x67, 0xa1, 0xea, 0xf8, 0x7e, 0x78, 0x53, 0xf5, 0xda, 0x4a, 0xdc, 0x74, 0xfc, - 0x34, 0xf9, 0xed, 0xc8, 0xd2, 0x43, 0xb7, 0x0f, 0xe7, 0xaa, 0x8b, 0x05, 0x34, 0xb8, 0xb0, 0xb4, - 0xbd, 0x0b, 0xa7, 0x1a, 0x24, 0x92, 0x4f, 0xdf, 0xa9, 0x25, 0xb6, 0x01, 0x95, 0x28, 0x23, 0x54, - 0xfa, 0x0a, 0x97, 0xd7, 0x12, 0x93, 0x49, 0x21, 0x92, 0x32, 0xb2, 0xff, 0xd4, 0x82, 0x61, 0xe1, - 0x42, 0x79, 0x02, 0xba, 0xcc, 0xa2, 0x61, 0x56, 0x9a, 0xcb, 0x17, 0xbc, 0xac, 0x31, 0x85, 0x06, - 0xa5, 0xb5, 0x8c, 0x41, 0xe9, 0x91, 0x6e, 0x4c, 0xba, 0x9b, 0x92, 0x7e, 0xa1, 0x0c, 0x13, 0xa6, - 0xfb, 0xe8, 0x09, 0x74, 0xc1, 0x15, 0x18, 0x8e, 0x85, 0xaf, 0x72, 0xa9, 0xd8, 0xe7, 0x2d, 0x3b, - 0x88, 0xe9, 0xcd, 0xb8, 0xf0, 0x4e, 0x96, 0x4c, 0x72, 0x9d, 0xa0, 0xcb, 0xf7, 0xd0, 0x09, 0xba, - 0x97, 0x07, 0xef, 0xc0, 0xdd, 0xf0, 0xe0, 0xb5, 0xbf, 0xcd, 0x84, 0xbf, 0x0e, 0x3f, 0x01, 0xbd, - 0xe0, 0x82, 0xb9, 0x4d, 0xd8, 0x5d, 0x66, 0x96, 0x68, 0x54, 0x81, 0x7e, 0xf0, 0x8f, 0x2c, 0x18, - 0x15, 0x84, 0x27, 0xd0, 0xec, 0xcf, 0x98, 0xcd, 0x7e, 0xb0, 0x4b, 0xb3, 0x0b, 0xda, 0xfb, 0xb7, - 0x4b, 0xaa, 0xbd, 0xf5, 0x30, 0x4a, 0xfa, 0x4a, 0x86, 0x3e, 0x42, 0x4f, 0x83, 0x61, 0x33, 0xf4, - 0xc5, 0x66, 0xfe, 0x50, 0x1a, 0x0c, 0xc7, 0xe1, 0x47, 0xda, 0x6f, 0xac, 0xa8, 0x59, 0xac, 0x56, - 0x18, 0x25, 0x62, 0x03, 0x4d, 0x63, 0xb5, 0xc2, 0x28, 0xc1, 0x0c, 0x83, 0x5c, 0x80, 0xc4, 0x89, - 0xb6, 0x49, 0x42, 0x61, 0x22, 0x7a, 0xb4, 0x78, 0x15, 0xb6, 0x13, 0xcf, 0x9f, 0xf7, 0x82, 0x24, - 0x4e, 0xa2, 0xf9, 0xb5, 0x20, 0xb9, 0x1a, 0xf1, 0xb3, 0x81, 0x16, 0xdd, 0xa6, 0x78, 0x61, 0x8d, - 0xaf, 0x0c, 0xaf, 0x60, 0x75, 0x0c, 0x9a, 0xf7, 0x3d, 0x57, 0x04, 0x1c, 0x2b, 0x0a, 0xfb, 0x45, - 0x26, 0x93, 0x59, 0x07, 0x1d, 0x2f, 0xf0, 0xec, 0xbb, 0x23, 0xaa, 0x6b, 0x99, 0xb1, 0xb7, 0xa6, - 0x87, 0xb7, 0x75, 0x17, 0x81, 0xb4, 0x62, 0xdd, 0x95, 0x38, 0x8d, 0x81, 0x43, 0x9f, 0xeb, 0xb8, - 0x06, 0x7c, 0xa6, 0x87, 0x2c, 0x3d, 0xc6, 0xc5, 0x1f, 0xcb, 0xcc, 0xc7, 0x32, 0x98, 0xad, 0xd5, - 0xb3, 0xe9, 0xea, 0x97, 0x25, 0x02, 0xa7, 0x34, 0x68, 0x41, 0x9c, 0x2c, 0xb9, 0x99, 0xe5, 0xc1, - 0xcc, 0xc9, 0x52, 0x7e, 0xbe, 0x76, 0xb4, 0x7c, 0x16, 0x46, 0xd5, 0x13, 0x40, 0x75, 0xfe, 0x92, - 0x4a, 0x85, 0xeb, 0x52, 0x2b, 0x29, 0x18, 0xeb, 0x34, 0x68, 0x03, 0x26, 0x63, 0xfe, 0x3e, 0x91, - 0x8c, 0x78, 0x10, 0x76, 0x83, 0x27, 0xe5, 0xf5, 0x61, 0xc3, 0x44, 0x1f, 0x31, 0x10, 0x5f, 0xac, - 0x32, 0x46, 0x22, 0xcb, 0x02, 0xbd, 0x0a, 0x13, 0xbe, 0xfe, 0x4e, 0x6b, 0x5d, 0x98, 0x15, 0x94, - 0x2b, 0x97, 0xf1, 0x8a, 0x6b, 0x1d, 0x67, 0xa8, 0xa9, 0x12, 0xa0, 0x43, 0x44, 0x02, 0x1d, 0x27, - 0xd8, 0x26, 0xb1, 0x78, 0xc0, 0x84, 0x29, 0x01, 0x97, 0x0b, 0x68, 0x70, 0x61, 0x69, 0xf4, 0x12, - 0x8c, 0xc9, 0xcf, 0xd7, 0x22, 0x80, 0x52, 0x87, 0x41, 0x0d, 0x87, 0x0d, 0x4a, 0x74, 0x13, 0x4e, - 0xcb, 0xff, 0x1b, 0x91, 0xb3, 0xb5, 0xe5, 0x35, 0x45, 0x00, 0xd6, 0x28, 0x63, 0xb1, 0x28, 0xbd, - 0xa7, 0x57, 0xf2, 0x88, 0x8e, 0x0e, 0xe7, 0xce, 0x8a, 0x5e, 0xcb, 0xc5, 0xb3, 0x41, 0xcc, 0xe7, - 0x8f, 0xd6, 0xe1, 0xd4, 0x0e, 0x71, 0xfc, 0x64, 0x67, 0x79, 0x87, 0x34, 0x77, 0xe5, 0x22, 0x62, - 0x71, 0x45, 0x9a, 0x9b, 0xdd, 0xc5, 0x4e, 0x12, 0x9c, 0x57, 0x0e, 0xbd, 0x05, 0xd5, 0x56, 0x7b, - 0xd3, 0xf7, 0xe2, 0x9d, 0x2b, 0x61, 0xc2, 0x6e, 0x2c, 0xd5, 0x0b, 0x3a, 0x22, 0x00, 0x49, 0xc5, - 0x54, 0xd5, 0x0b, 0xe8, 0x70, 0x21, 0x07, 0xf4, 0x1e, 0x9c, 0xce, 0x4c, 0x06, 0xfe, 0x28, 0x93, - 0x08, 0x54, 0x7a, 0x22, 0x7f, 0x39, 0xe5, 0x14, 0xe0, 0x61, 0x71, 0xb9, 0x28, 0x9c, 0x5f, 0xc5, - 0xfb, 0xbb, 0xc7, 0x7e, 0x97, 0x16, 0xd6, 0xb4, 0x1b, 0xf4, 0x79, 0x18, 0xd3, 0x67, 0x91, 0xd8, - 0x60, 0x1e, 0xeb, 0xf5, 0x26, 0xb1, 0xd0, 0x8d, 0xd4, 0x8c, 0xd2, 0x71, 0xd8, 0xe0, 0x68, 0x13, - 0xc8, 0xff, 0x3e, 0x74, 0x19, 0x46, 0x9a, 0xbe, 0x47, 0x82, 0x64, 0xad, 0xde, 0x2d, 0x70, 0x76, - 0x59, 0xd0, 0x88, 0x0e, 0x13, 0xf9, 0x9b, 0x38, 0x0c, 0x2b, 0x0e, 0xf6, 0xef, 0x94, 0x60, 0xae, - 0x47, 0x0a, 0xaf, 0x8c, 0x0d, 0xd0, 0xea, 0xcb, 0x06, 0xb8, 0x28, 0xdf, 0x03, 0xba, 0x92, 0x39, - 0x7f, 0x66, 0xde, 0xfa, 0x49, 0x4f, 0xa1, 0x59, 0xfa, 0xbe, 0xdd, 0xdf, 0x74, 0x33, 0xe2, 0x40, - 0x4f, 0x2f, 0xc0, 0xba, 0x6e, 0x0f, 0x1e, 0xec, 0x5f, 0xa3, 0x2f, 0x34, 0x05, 0xdb, 0xdf, 0x2e, - 0xc1, 0x69, 0xd5, 0x85, 0x3f, 0xb9, 0x1d, 0x77, 0xad, 0xb3, 0xe3, 0xee, 0x82, 0x21, 0xdd, 0xbe, - 0x0a, 0x43, 0x8d, 0x83, 0xb8, 0x99, 0xf8, 0x7d, 0x28, 0x40, 0x8f, 0x1a, 0x0b, 0x34, 0xdd, 0xa6, - 0xd9, 0x93, 0x7e, 0x62, 0xbd, 0xda, 0x7f, 0xc9, 0x82, 0xc9, 0x8d, 0xe5, 0x7a, 0x23, 0x6c, 0xee, - 0x92, 0x64, 0x91, 0x9b, 0x89, 0xb0, 0xd0, 0x7f, 0xac, 0x3b, 0xd4, 0x6b, 0xf2, 0x34, 0xa6, 0xb3, - 0x30, 0xb0, 0x13, 0xc6, 0x49, 0xf6, 0xb2, 0xe4, 0x62, 0x18, 0x27, 0x98, 0x61, 0xec, 0x3f, 0xb4, - 0x60, 0x90, 0xbd, 0x62, 0xd7, 0xeb, 0xb5, 0xc3, 0x7e, 0xbe, 0x0b, 0xbd, 0x00, 0x43, 0x64, 0x6b, - 0x8b, 0x34, 0x13, 0x31, 0xaa, 0x32, 0x22, 0x67, 0x68, 0x85, 0x41, 0xe9, 0xa6, 0xcf, 0x2a, 0xe3, - 0x7f, 0xb1, 0x20, 0x46, 0x37, 0xa0, 0x92, 0x78, 0x7b, 0x64, 0xd1, 0x75, 0xc5, 0x3d, 0xc5, 0x1d, - 0x04, 0x40, 0x6d, 0x48, 0x06, 0x38, 0xe5, 0x65, 0xff, 0x7c, 0x09, 0x20, 0x8d, 0xda, 0xeb, 0xf5, - 0x89, 0x4b, 0x1d, 0x0f, 0x3a, 0x3e, 0x96, 0xf3, 0xa0, 0x23, 0x4a, 0x19, 0xe6, 0x3c, 0xe7, 0xa8, - 0xba, 0xa9, 0xdc, 0x57, 0x37, 0x0d, 0x1c, 0xa7, 0x9b, 0x96, 0x61, 0x3a, 0x8d, 0x3a, 0x34, 0x43, - 0xb0, 0x59, 0xaa, 0xde, 0x8d, 0x2c, 0x12, 0x77, 0xd2, 0xdb, 0x5f, 0xb6, 0x40, 0xb8, 0x28, 0xf7, - 0x31, 0x99, 0xdf, 0x94, 0x6f, 0xaf, 0x19, 0x39, 0x05, 0xcf, 0x16, 0xfb, 0x6c, 0x8b, 0x4c, 0x82, - 0x6a, 0xf3, 0x30, 0xf2, 0x07, 0x1a, 0xbc, 0xec, 0xbf, 0x5e, 0x82, 0x51, 0x8e, 0x66, 0xf9, 0xea, - 0xfa, 0x68, 0xcd, 0xb1, 0x12, 0x3d, 0xb3, 0x67, 0xc9, 0x28, 0x63, 0x95, 0x0f, 0x58, 0x7f, 0x96, - 0x4c, 0x22, 0x70, 0x4a, 0x83, 0x9e, 0x80, 0xe1, 0xb8, 0xbd, 0xc9, 0xc8, 0x33, 0x5e, 0xca, 0x0d, - 0x0e, 0xc6, 0x12, 0x8f, 0x3e, 0x0b, 0x53, 0xbc, 0x5c, 0x14, 0xb6, 0x9c, 0x6d, 0x6e, 0xdb, 0x19, - 0x54, 0x31, 0x2a, 0x53, 0xeb, 0x19, 0xdc, 0xd1, 0xe1, 0xdc, 0x4c, 0x16, 0xc6, 0xac, 0x82, 0x1d, - 0x5c, 0xe8, 0x8c, 0x9d, 0xca, 0xba, 0xbf, 0xa3, 0x8b, 0x30, 0xc4, 0x85, 0x91, 0x10, 0x0e, 0x5d, - 0xee, 0x7a, 0x34, 0xa7, 0x79, 0xe0, 0x2f, 0xf4, 0x33, 0x21, 0x26, 0xca, 0xa3, 0xb7, 0x60, 0xd4, - 0x0d, 0x6f, 0x06, 0x37, 0x9d, 0xc8, 0x5d, 0xac, 0xaf, 0x89, 0xf1, 0xcc, 0xd5, 0x69, 0x6a, 0x29, - 0x99, 0xee, 0x88, 0xcf, 0xec, 0x9a, 0x29, 0x0a, 0xeb, 0xec, 0xd0, 0x06, 0x4b, 0xb1, 0xc2, 0xdf, - 0x0d, 0xee, 0xe6, 0xd6, 0xa3, 0x9e, 0x1a, 0xd6, 0x38, 0x8f, 0x8b, 0x3c, 0x2c, 0xe2, 0xd5, 0xe1, - 0x94, 0x91, 0xfd, 0xc5, 0x53, 0x60, 0xcc, 0x23, 0x23, 0xd1, 0xb3, 0x75, 0x97, 0x12, 0x3d, 0x63, - 0x18, 0x21, 0x7b, 0xad, 0xe4, 0xa0, 0xe6, 0x45, 0xdd, 0x32, 0xfc, 0xaf, 0x08, 0x9a, 0x4e, 0x9e, - 0x12, 0x83, 0x15, 0x9f, 0xfc, 0x6c, 0xdc, 0xe5, 0x0f, 0x30, 0x1b, 0xf7, 0xc0, 0x09, 0x66, 0xe3, - 0xbe, 0x02, 0xc3, 0xdb, 0x5e, 0x82, 0x49, 0x2b, 0x14, 0x1b, 0x71, 0xee, 0x4c, 0xb8, 0xc0, 0x49, - 0x3a, 0x73, 0xc6, 0x0a, 0x04, 0x96, 0x4c, 0xd0, 0x6b, 0x6a, 0x0d, 0x0c, 0x15, 0xeb, 0xb1, 0x9d, - 0xd7, 0x02, 0xb9, 0xab, 0x40, 0x64, 0xdf, 0x1e, 0xbe, 0xd3, 0xec, 0xdb, 0x2a, 0x7b, 0xf6, 0xc8, - 0xfb, 0xcb, 0x9e, 0x6d, 0x64, 0x17, 0xaf, 0xdc, 0xbd, 0xec, 0xe2, 0x5f, 0xb6, 0xe0, 0x74, 0x2b, - 0x2f, 0xd1, 0xbe, 0xc8, 0x83, 0xfd, 0x42, 0xdf, 0x2f, 0x09, 0x18, 0x15, 0xb2, 0x03, 0x4d, 0x2e, - 0x19, 0xce, 0xaf, 0x4e, 0xa6, 0x29, 0x1f, 0xbd, 0xd3, 0x34, 0xe5, 0xf7, 0x26, 0x61, 0x76, 0x9a, - 0xb4, 0x7c, 0xfc, 0x7d, 0x27, 0x2d, 0x7f, 0x4d, 0x25, 0x2d, 0xef, 0x92, 0xc8, 0x82, 0xa7, 0x24, - 0xef, 0x99, 0xaa, 0x5c, 0x4b, 0x37, 0x3e, 0x79, 0x37, 0xd2, 0x8d, 0xbf, 0x6d, 0x0a, 0x7b, 0x9e, - 0xfb, 0xfa, 0xa9, 0x1e, 0xc2, 0xde, 0xe0, 0xdb, 0x5d, 0xdc, 0xf3, 0xd4, 0xea, 0xd3, 0x77, 0x94, - 0x5a, 0xfd, 0xba, 0x9e, 0xb4, 0x1c, 0xf5, 0xc8, 0xca, 0x4d, 0x89, 0xfa, 0x4c, 0x55, 0x7e, 0x5d, - 0xdf, 0x82, 0x4e, 0x15, 0xf3, 0x55, 0x3b, 0x4d, 0x27, 0xdf, 0xbc, 0x4d, 0xa8, 0x33, 0x05, 0xfa, - 0xcc, 0xc9, 0xa4, 0x40, 0x3f, 0x7d, 0xd7, 0x53, 0xa0, 0xdf, 0x77, 0x02, 0x29, 0xd0, 0xef, 0xff, - 0x40, 0x53, 0xa0, 0x57, 0xef, 0x6d, 0x0a, 0xf4, 0x07, 0xee, 0x46, 0x0a, 0xf4, 0xeb, 0x50, 0x69, - 0xc9, 0x08, 0xc9, 0xea, 0x6c, 0xf1, 0x90, 0xe4, 0x86, 0x51, 0xf2, 0x21, 0x51, 0x28, 0x9c, 0xb2, - 0xa2, 0x7c, 0xd3, 0x94, 0xe8, 0x0f, 0x76, 0x31, 0x59, 0xe5, 0x19, 0x03, 0xba, 0x24, 0x42, 0xff, - 0xcb, 0x25, 0x38, 0xd3, 0x7d, 0x5e, 0xa7, 0x96, 0x84, 0x7a, 0x6a, 0xf9, 0xce, 0x58, 0x12, 0x98, - 0xd2, 0xa5, 0x51, 0xf5, 0x1d, 0x46, 0x7e, 0x01, 0xa6, 0x95, 0xa3, 0x98, 0xef, 0x35, 0x0f, 0xb4, - 0xd7, 0x92, 0x54, 0xec, 0x41, 0x23, 0x4b, 0x80, 0x3b, 0xcb, 0xa0, 0x45, 0x98, 0x34, 0x80, 0x6b, - 0x35, 0xa1, 0xec, 0x2b, 0xd3, 0x45, 0xc3, 0x44, 0xe3, 0x2c, 0xbd, 0xfd, 0x0d, 0x0b, 0xee, 0x2f, - 0xc8, 0x8b, 0xda, 0x77, 0x94, 0xf4, 0x16, 0x4c, 0xb6, 0xcc, 0xa2, 0x3d, 0x92, 0x29, 0x18, 0xd9, - 0x57, 0x55, 0x5b, 0x33, 0x08, 0x9c, 0x65, 0xba, 0x74, 0xee, 0x3b, 0x3f, 0x38, 0xf3, 0x91, 0xdf, - 0xff, 0xc1, 0x99, 0x8f, 0x7c, 0xff, 0x07, 0x67, 0x3e, 0xf2, 0xff, 0xdf, 0x3e, 0x63, 0x7d, 0xe7, - 0xf6, 0x19, 0xeb, 0xf7, 0x6f, 0x9f, 0xb1, 0xbe, 0x7f, 0xfb, 0x8c, 0xf5, 0x47, 0xb7, 0xcf, 0x58, - 0x3f, 0xff, 0xc3, 0x33, 0x1f, 0x79, 0xb3, 0xb4, 0xff, 0xec, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, - 0x4f, 0x1e, 0xcd, 0x7b, 0x5c, 0xd1, 0x00, 0x00, + // 11864 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x24, 0xc7, + 0x75, 0x98, 0x66, 0x17, 0x5f, 0xfb, 0xf0, 0xdd, 0x87, 0x23, 0xf7, 0x40, 0xf2, 0x70, 0x1c, 0x4a, + 0xe4, 0xf1, 0x0b, 0x10, 0x8f, 0xa4, 0x48, 0x89, 0x14, 0x25, 0x00, 0x0b, 0xdc, 0x81, 0x77, 0xb8, + 0x5b, 0xf6, 0xe2, 0xee, 0x44, 0x8a, 0x66, 0x34, 0xd8, 0x6d, 0x2c, 0x86, 0x18, 0xcc, 0x2c, 0x67, + 0x66, 0x71, 0x07, 0x96, 0x55, 0x95, 0x28, 0xb2, 0xf2, 0x21, 0xff, 0x50, 0x25, 0xaa, 0xc4, 0xb1, + 0x54, 0x4e, 0x55, 0x3e, 0xca, 0x56, 0x9c, 0xa4, 0xe2, 0xc8, 0xb1, 0x1d, 0xc9, 0xa9, 0x38, 0xce, + 0x47, 0xc9, 0x7f, 0x14, 0x3b, 0x7f, 0xa4, 0x2a, 0x57, 0x10, 0xeb, 0x94, 0x4a, 0x2a, 0x3f, 0x92, + 0x4a, 0xa2, 0x5f, 0x46, 0x9c, 0x28, 0xd5, 0x9f, 0xd3, 0x3d, 0x3b, 0xb3, 0xbb, 0x38, 0xe2, 0x40, + 0x4a, 0xa5, 0x7f, 0xbb, 0xef, 0xbd, 0x7e, 0xdd, 0xd3, 0x1f, 0xaf, 0x5f, 0xbf, 0x7e, 0xef, 0x35, + 0xbc, 0xb4, 0xf3, 0x62, 0x34, 0xef, 0x06, 0x0b, 0x3b, 0xed, 0x4d, 0x12, 0xfa, 0x24, 0x26, 0xd1, + 0xc2, 0x1e, 0xf1, 0x1b, 0x41, 0xb8, 0x20, 0x10, 0x4e, 0xcb, 0x5d, 0xa8, 0x07, 0x21, 0x59, 0xd8, + 0x7b, 0x66, 0xa1, 0x49, 0x7c, 0x12, 0x3a, 0x31, 0x69, 0xcc, 0xb7, 0xc2, 0x20, 0x0e, 0x10, 0xe2, + 0x34, 0xf3, 0x4e, 0xcb, 0x9d, 0xa7, 0x34, 0xf3, 0x7b, 0xcf, 0xcc, 0x3e, 0xdd, 0x74, 0xe3, 0xed, + 0xf6, 0xe6, 0x7c, 0x3d, 0xd8, 0x5d, 0x68, 0x06, 0xcd, 0x60, 0x81, 0x91, 0x6e, 0xb6, 0xb7, 0xd8, + 0x3f, 0xf6, 0x87, 0xfd, 0xe2, 0x2c, 0x66, 0xd7, 0x93, 0x6a, 0xc8, 0xed, 0x98, 0xf8, 0x91, 0x1b, + 0xf8, 0xd1, 0xd3, 0x4e, 0xcb, 0x8d, 0x48, 0xb8, 0x47, 0xc2, 0x85, 0xd6, 0x4e, 0x93, 0xe2, 0x22, + 0x93, 0x60, 0x61, 0xef, 0x99, 0x4d, 0x12, 0x3b, 0x1d, 0x2d, 0x9a, 0x7d, 0x2e, 0x61, 0xb7, 0xeb, + 0xd4, 0xb7, 0x5d, 0x9f, 0x84, 0xfb, 0x92, 0xc7, 0x42, 0x48, 0xa2, 0xa0, 0x1d, 0xd6, 0xc9, 0x91, + 0x4a, 0x45, 0x0b, 0xbb, 0x24, 0x76, 0x32, 0xbe, 0x7e, 0x76, 0x21, 0xaf, 0x54, 0xd8, 0xf6, 0x63, + 0x77, 0xb7, 0xb3, 0x9a, 0x8f, 0xf5, 0x2a, 0x10, 0xd5, 0xb7, 0xc9, 0xae, 0xd3, 0x51, 0xee, 0xd9, + 0xbc, 0x72, 0xed, 0xd8, 0xf5, 0x16, 0x5c, 0x3f, 0x8e, 0xe2, 0x30, 0x5d, 0xc8, 0xfe, 0x9e, 0x05, + 0xe7, 0x16, 0x6f, 0xd6, 0x56, 0x3c, 0x27, 0x8a, 0xdd, 0xfa, 0x92, 0x17, 0xd4, 0x77, 0x6a, 0x71, + 0x10, 0x92, 0x1b, 0x81, 0xd7, 0xde, 0x25, 0x35, 0xd6, 0x11, 0xe8, 0x29, 0x18, 0xd9, 0x63, 0xff, + 0xd7, 0x2a, 0x65, 0xeb, 0x9c, 0x75, 0xbe, 0xb4, 0x34, 0xf5, 0x9d, 0x83, 0xb9, 0x0f, 0xdd, 0x39, + 0x98, 0x1b, 0xb9, 0x21, 0xe0, 0x58, 0x51, 0xa0, 0x47, 0x61, 0x68, 0x2b, 0xda, 0xd8, 0x6f, 0x91, + 0x72, 0x81, 0xd1, 0x4e, 0x08, 0xda, 0xa1, 0xd5, 0x1a, 0x85, 0x62, 0x81, 0x45, 0x0b, 0x50, 0x6a, + 0x39, 0x61, 0xec, 0xc6, 0x6e, 0xe0, 0x97, 0x8b, 0xe7, 0xac, 0xf3, 0x83, 0x4b, 0xd3, 0x82, 0xb4, + 0x54, 0x95, 0x08, 0x9c, 0xd0, 0xd0, 0x66, 0x84, 0xc4, 0x69, 0x5c, 0xf3, 0xbd, 0xfd, 0xf2, 0xc0, + 0x39, 0xeb, 0xfc, 0x48, 0xd2, 0x0c, 0x2c, 0xe0, 0x58, 0x51, 0xd8, 0xbf, 0x5c, 0x80, 0x91, 0xc5, + 0xad, 0x2d, 0xd7, 0x77, 0xe3, 0x7d, 0x74, 0x03, 0xc6, 0xfc, 0xa0, 0x41, 0xe4, 0x7f, 0xf6, 0x15, + 0xa3, 0x17, 0xce, 0xcd, 0x77, 0xce, 0xcc, 0xf9, 0xab, 0x1a, 0xdd, 0xd2, 0xd4, 0x9d, 0x83, 0xb9, + 0x31, 0x1d, 0x82, 0x0d, 0x3e, 0x08, 0xc3, 0x68, 0x2b, 0x68, 0x28, 0xb6, 0x05, 0xc6, 0x76, 0x2e, + 0x8b, 0x6d, 0x35, 0x21, 0x5b, 0x9a, 0xbc, 0x73, 0x30, 0x37, 0xaa, 0x01, 0xb0, 0xce, 0x04, 0x6d, + 0xc2, 0x24, 0xfd, 0xeb, 0xc7, 0xae, 0xe2, 0x5b, 0x64, 0x7c, 0x1f, 0xc9, 0xe3, 0xab, 0x91, 0x2e, + 0x9d, 0xba, 0x73, 0x30, 0x37, 0x99, 0x02, 0xe2, 0x34, 0x43, 0xfb, 0x5d, 0x98, 0x58, 0x8c, 0x63, + 0xa7, 0xbe, 0x4d, 0x1a, 0x7c, 0x04, 0xd1, 0x73, 0x30, 0xe0, 0x3b, 0xbb, 0x44, 0x8c, 0xef, 0x39, + 0xd1, 0xb1, 0x03, 0x57, 0x9d, 0x5d, 0x72, 0x78, 0x30, 0x37, 0x75, 0xdd, 0x77, 0xdf, 0x69, 0x8b, + 0x59, 0x41, 0x61, 0x98, 0x51, 0xa3, 0x0b, 0x00, 0x0d, 0xb2, 0xe7, 0xd6, 0x49, 0xd5, 0x89, 0xb7, + 0xc5, 0x78, 0x23, 0x51, 0x16, 0x2a, 0x0a, 0x83, 0x35, 0x2a, 0xfb, 0x36, 0x94, 0x16, 0xf7, 0x02, + 0xb7, 0x51, 0x0d, 0x1a, 0x11, 0xda, 0x81, 0xc9, 0x56, 0x48, 0xb6, 0x48, 0xa8, 0x40, 0x65, 0xeb, + 0x5c, 0xf1, 0xfc, 0xe8, 0x85, 0xf3, 0x99, 0x1f, 0x6b, 0x92, 0xae, 0xf8, 0x71, 0xb8, 0xbf, 0x74, + 0xbf, 0xa8, 0x6f, 0x32, 0x85, 0xc5, 0x69, 0xce, 0xf6, 0xbf, 0x29, 0xc0, 0xe9, 0xc5, 0x77, 0xdb, + 0x21, 0xa9, 0xb8, 0xd1, 0x4e, 0x7a, 0x86, 0x37, 0xdc, 0x68, 0xe7, 0x6a, 0xd2, 0x03, 0x6a, 0x6a, + 0x55, 0x04, 0x1c, 0x2b, 0x0a, 0xf4, 0x34, 0x0c, 0xd3, 0xdf, 0xd7, 0xf1, 0x9a, 0xf8, 0xe4, 0x53, + 0x82, 0x78, 0xb4, 0xe2, 0xc4, 0x4e, 0x85, 0xa3, 0xb0, 0xa4, 0x41, 0xeb, 0x30, 0x5a, 0x67, 0x0b, + 0xb2, 0xb9, 0x1e, 0x34, 0x08, 0x1b, 0xcc, 0xd2, 0xd2, 0x93, 0x94, 0x7c, 0x39, 0x01, 0x1f, 0x1e, + 0xcc, 0x95, 0x79, 0xdb, 0x04, 0x0b, 0x0d, 0x87, 0xf5, 0xf2, 0xc8, 0x56, 0xeb, 0x6b, 0x80, 0x71, + 0x82, 0x8c, 0xb5, 0x75, 0x5e, 0x5b, 0x2a, 0x83, 0x6c, 0xa9, 0x8c, 0x65, 0x2f, 0x13, 0xf4, 0x0c, + 0x0c, 0xec, 0xb8, 0x7e, 0xa3, 0x3c, 0xc4, 0x78, 0x3d, 0x44, 0xc7, 0xfc, 0xb2, 0xeb, 0x37, 0x0e, + 0x0f, 0xe6, 0xa6, 0x8d, 0xe6, 0x50, 0x20, 0x66, 0xa4, 0xf6, 0x8f, 0x2c, 0x98, 0x63, 0xb8, 0x55, + 0xd7, 0x23, 0x55, 0x12, 0x46, 0x6e, 0x14, 0x13, 0x3f, 0x36, 0x3a, 0xf4, 0x02, 0x40, 0x44, 0xea, + 0x21, 0x89, 0xb5, 0x2e, 0x55, 0x13, 0xa3, 0xa6, 0x30, 0x58, 0xa3, 0xa2, 0x02, 0x21, 0xda, 0x76, + 0x42, 0x36, 0xbf, 0x44, 0xc7, 0x2a, 0x81, 0x50, 0x93, 0x08, 0x9c, 0xd0, 0x18, 0x02, 0xa1, 0xd8, + 0x4b, 0x20, 0xa0, 0x4f, 0xc2, 0x64, 0x52, 0x59, 0xd4, 0x72, 0xea, 0xb2, 0x03, 0xd9, 0x92, 0xa9, + 0x99, 0x28, 0x9c, 0xa6, 0xb5, 0xff, 0x81, 0x25, 0x26, 0x0f, 0xfd, 0xea, 0x0f, 0xf8, 0xb7, 0xda, + 0xbf, 0x63, 0xc1, 0xf0, 0x92, 0xeb, 0x37, 0x5c, 0xbf, 0x89, 0x3e, 0x07, 0x23, 0x74, 0x6f, 0x6a, + 0x38, 0xb1, 0x23, 0xe4, 0xde, 0x47, 0xb5, 0xb5, 0xa5, 0xb6, 0x8a, 0xf9, 0xd6, 0x4e, 0x93, 0x02, + 0xa2, 0x79, 0x4a, 0x4d, 0x57, 0xdb, 0xb5, 0xcd, 0xb7, 0x49, 0x3d, 0x5e, 0x27, 0xb1, 0x93, 0x7c, + 0x4e, 0x02, 0xc3, 0x8a, 0x2b, 0xba, 0x0c, 0x43, 0xb1, 0x13, 0x36, 0x49, 0x2c, 0x04, 0x60, 0xa6, + 0xa0, 0xe2, 0x25, 0x31, 0x5d, 0x91, 0xc4, 0xaf, 0x93, 0x64, 0x5b, 0xd8, 0x60, 0x45, 0xb1, 0x60, + 0x61, 0xd7, 0x61, 0x6c, 0xd9, 0x69, 0x39, 0x9b, 0xae, 0xe7, 0xc6, 0x2e, 0x89, 0xd0, 0x63, 0x50, + 0x74, 0x1a, 0x0d, 0x26, 0x15, 0x4a, 0x4b, 0xa7, 0xef, 0x1c, 0xcc, 0x15, 0x17, 0x1b, 0x74, 0x7a, + 0x82, 0xa2, 0xda, 0xc7, 0x94, 0x02, 0x3d, 0x01, 0x03, 0x8d, 0x30, 0x68, 0x95, 0x0b, 0x8c, 0xf2, + 0x3e, 0x3a, 0x93, 0x2b, 0x61, 0xd0, 0x4a, 0x91, 0x32, 0x1a, 0xfb, 0xf7, 0x0a, 0xf0, 0xe0, 0x32, + 0x69, 0x6d, 0xaf, 0xd6, 0x72, 0xe6, 0xef, 0x79, 0x18, 0xd9, 0x0d, 0x7c, 0x37, 0x0e, 0xc2, 0x48, + 0x54, 0xcd, 0x16, 0xd0, 0xba, 0x80, 0x61, 0x85, 0x45, 0xe7, 0x60, 0xa0, 0x95, 0x08, 0xbf, 0x31, + 0x29, 0x38, 0x99, 0xd8, 0x63, 0x18, 0x4a, 0xd1, 0x8e, 0x48, 0x28, 0x16, 0xbe, 0xa2, 0xb8, 0x1e, + 0x91, 0x10, 0x33, 0x4c, 0x32, 0x83, 0xe8, 0xdc, 0x12, 0xb3, 0x32, 0x35, 0x83, 0x28, 0x06, 0x6b, + 0x54, 0xa8, 0x0a, 0x25, 0xfe, 0x0f, 0x93, 0x2d, 0xb6, 0xc6, 0x73, 0xfa, 0xbd, 0x26, 0x89, 0x44, + 0xbf, 0x8f, 0xb3, 0x29, 0x26, 0x81, 0x38, 0x61, 0x62, 0x4c, 0xb1, 0xa1, 0x9e, 0x53, 0xec, 0xdb, + 0x05, 0x40, 0xbc, 0x0b, 0x7f, 0xc2, 0x3a, 0xee, 0x7a, 0x67, 0xc7, 0x65, 0x6e, 0x36, 0x57, 0x82, + 0xba, 0xe3, 0xa5, 0x67, 0xed, 0x71, 0xf5, 0xde, 0x2f, 0x59, 0x80, 0x96, 0x5d, 0xbf, 0x41, 0xc2, + 0x13, 0xd0, 0xb4, 0x8e, 0x26, 0x3b, 0xae, 0xc0, 0xc4, 0xb2, 0xe7, 0x12, 0x3f, 0x5e, 0xab, 0x2e, + 0x07, 0xfe, 0x96, 0xdb, 0x44, 0x9f, 0x80, 0x09, 0xaa, 0x78, 0x06, 0xed, 0xb8, 0x46, 0xea, 0x81, + 0xcf, 0xf6, 0x68, 0xaa, 0xae, 0xa1, 0x3b, 0x07, 0x73, 0x13, 0x1b, 0x06, 0x06, 0xa7, 0x28, 0xed, + 0x3f, 0xa6, 0x1f, 0x1a, 0xec, 0xb6, 0x02, 0x9f, 0xf8, 0xf1, 0x72, 0xe0, 0x37, 0xb8, 0x2e, 0xf7, + 0x09, 0x18, 0x88, 0x69, 0xc3, 0xf9, 0x47, 0x3e, 0x2a, 0x87, 0x96, 0x36, 0xf7, 0xf0, 0x60, 0xee, + 0xbe, 0xce, 0x12, 0xec, 0x83, 0x58, 0x19, 0xf4, 0x71, 0x18, 0x8a, 0x62, 0x27, 0x6e, 0x47, 0xe2, + 0xb3, 0x1f, 0x96, 0x9f, 0x5d, 0x63, 0xd0, 0xc3, 0x83, 0xb9, 0x49, 0x55, 0x8c, 0x83, 0xb0, 0x28, + 0x80, 0x1e, 0x87, 0xe1, 0x5d, 0x12, 0x45, 0x4e, 0x53, 0x6e, 0xc3, 0x93, 0xa2, 0xec, 0xf0, 0x3a, + 0x07, 0x63, 0x89, 0x47, 0x8f, 0xc0, 0x20, 0x09, 0xc3, 0x20, 0x14, 0xb3, 0x6a, 0x5c, 0x10, 0x0e, + 0xae, 0x50, 0x20, 0xe6, 0x38, 0xfb, 0xdf, 0x5b, 0x30, 0xa9, 0xda, 0xca, 0xeb, 0x3a, 0x01, 0x79, + 0xfb, 0x06, 0x40, 0x5d, 0x7e, 0x60, 0xc4, 0xe4, 0xdd, 0xe8, 0x85, 0x47, 0xb3, 0xa6, 0x70, 0x67, + 0x37, 0x26, 0x9c, 0x15, 0x28, 0xc2, 0x1a, 0x37, 0xfb, 0x5f, 0x58, 0x70, 0x2a, 0xf5, 0x45, 0x57, + 0xdc, 0x28, 0x46, 0x6f, 0x76, 0x7c, 0xd5, 0x7c, 0x7f, 0x5f, 0x45, 0x4b, 0xb3, 0x6f, 0x52, 0x73, + 0x4e, 0x42, 0xb4, 0x2f, 0xba, 0x04, 0x83, 0x6e, 0x4c, 0x76, 0xe5, 0xc7, 0x3c, 0xd2, 0xf5, 0x63, + 0x78, 0xab, 0x92, 0x11, 0x59, 0xa3, 0x25, 0x31, 0x67, 0x60, 0xff, 0x2f, 0x0b, 0x4a, 0x7c, 0xda, + 0xae, 0x3b, 0xad, 0x13, 0x18, 0x8b, 0x35, 0x18, 0x60, 0xdc, 0x79, 0xc3, 0x1f, 0xcb, 0x6e, 0xb8, + 0x68, 0xce, 0x3c, 0x55, 0xa6, 0xb8, 0xd2, 0xaa, 0x84, 0x19, 0x05, 0x61, 0xc6, 0x62, 0xf6, 0x05, + 0x28, 0x29, 0x02, 0x34, 0x05, 0xc5, 0x1d, 0xc2, 0x0f, 0x2a, 0x25, 0x4c, 0x7f, 0xa2, 0x19, 0x18, + 0xdc, 0x73, 0xbc, 0xb6, 0x58, 0xec, 0x98, 0xff, 0xf9, 0x44, 0xe1, 0x45, 0xcb, 0xfe, 0x16, 0x5b, + 0x63, 0xa2, 0x92, 0x15, 0x7f, 0x4f, 0x08, 0x93, 0x77, 0x61, 0xc6, 0xcb, 0x90, 0x61, 0xa2, 0x23, + 0xfa, 0x97, 0x79, 0x0f, 0x8a, 0xb6, 0xce, 0x64, 0x61, 0x71, 0x66, 0x1d, 0x74, 0x1b, 0x08, 0x5a, + 0x74, 0x46, 0x39, 0x1e, 0x6b, 0xaf, 0x50, 0x40, 0xaf, 0x09, 0x18, 0x56, 0x58, 0x2a, 0x20, 0x66, + 0x54, 0xe3, 0x2f, 0x93, 0xfd, 0x1a, 0xf1, 0x48, 0x3d, 0x0e, 0xc2, 0xf7, 0xb5, 0xf9, 0x0f, 0xf1, + 0xde, 0xe7, 0xf2, 0x65, 0x54, 0x30, 0x28, 0x5e, 0x26, 0xfb, 0x7c, 0x28, 0xf4, 0xaf, 0x2b, 0x76, + 0xfd, 0xba, 0xdf, 0xb0, 0x60, 0x5c, 0x7d, 0xdd, 0x09, 0x2c, 0xa4, 0x25, 0x73, 0x21, 0x3d, 0xd4, + 0x75, 0x3e, 0xe6, 0x2c, 0xa1, 0x1f, 0x33, 0x11, 0x20, 0x68, 0xaa, 0x61, 0x40, 0xbb, 0x86, 0xca, + 0xec, 0xf7, 0x73, 0x40, 0xfa, 0xf9, 0xae, 0xcb, 0x64, 0x7f, 0x23, 0xa0, 0xea, 0x43, 0xf6, 0x77, + 0x19, 0xa3, 0x36, 0xd0, 0x75, 0xd4, 0x7e, 0xb3, 0x00, 0xa7, 0x55, 0x0f, 0x18, 0x1b, 0xf4, 0x4f, + 0x7a, 0x1f, 0x3c, 0x03, 0xa3, 0x0d, 0xb2, 0xe5, 0xb4, 0xbd, 0x58, 0x9d, 0x45, 0x07, 0xb9, 0x3d, + 0xa2, 0x92, 0x80, 0xb1, 0x4e, 0x73, 0x84, 0x6e, 0xfb, 0xb7, 0xc0, 0x64, 0x6f, 0xec, 0xd0, 0x19, + 0x4c, 0xb5, 0x37, 0xcd, 0xa2, 0x30, 0xa6, 0x5b, 0x14, 0x84, 0xf5, 0xe0, 0x11, 0x18, 0x74, 0x77, + 0xe9, 0x5e, 0x5c, 0x30, 0xb7, 0xd8, 0x35, 0x0a, 0xc4, 0x1c, 0x87, 0x3e, 0x02, 0xc3, 0xf5, 0x60, + 0x77, 0xd7, 0xf1, 0x1b, 0xe5, 0x22, 0xd3, 0x27, 0x47, 0xe9, 0x76, 0xbd, 0xcc, 0x41, 0x58, 0xe2, + 0xd0, 0x83, 0x30, 0xe0, 0x84, 0xcd, 0xa8, 0x3c, 0xc0, 0x68, 0x46, 0x68, 0x4d, 0x8b, 0x61, 0x33, + 0xc2, 0x0c, 0x4a, 0xf5, 0xc4, 0x5b, 0x41, 0xb8, 0xe3, 0xfa, 0xcd, 0x8a, 0x1b, 0x32, 0xa5, 0x4f, + 0xd3, 0x13, 0x6f, 0x2a, 0x0c, 0xd6, 0xa8, 0xd0, 0x2a, 0x0c, 0xb6, 0x82, 0x30, 0x8e, 0xca, 0x43, + 0xac, 0xbb, 0x1f, 0xce, 0x59, 0x4a, 0xfc, 0x6b, 0xab, 0x41, 0x18, 0x27, 0x1f, 0x40, 0xff, 0x45, + 0x98, 0x17, 0x47, 0x1f, 0x87, 0x22, 0xf1, 0xf7, 0xca, 0xc3, 0x8c, 0xcb, 0x6c, 0x16, 0x97, 0x15, + 0x7f, 0xef, 0x86, 0x13, 0x26, 0x72, 0x66, 0xc5, 0xdf, 0xc3, 0xb4, 0x0c, 0x7a, 0x1d, 0x4a, 0xd2, + 0x1a, 0x19, 0x95, 0x47, 0xf2, 0xa7, 0x18, 0x16, 0x44, 0x98, 0xbc, 0xd3, 0x76, 0x43, 0xb2, 0x4b, + 0xfc, 0x38, 0x4a, 0xce, 0x93, 0x12, 0x1b, 0xe1, 0x84, 0x1b, 0x7a, 0x1d, 0xc6, 0xb8, 0x1e, 0xb9, + 0x1e, 0xb4, 0xfd, 0x38, 0x2a, 0x97, 0x58, 0xf3, 0x32, 0x4d, 0x57, 0x37, 0x12, 0xba, 0xa5, 0x19, + 0xc1, 0x74, 0x4c, 0x03, 0x46, 0xd8, 0x60, 0x85, 0x30, 0x8c, 0x7b, 0xee, 0x1e, 0xf1, 0x49, 0x14, + 0x55, 0xc3, 0x60, 0x93, 0x94, 0x81, 0xb5, 0xfc, 0x4c, 0xb6, 0x45, 0x27, 0xd8, 0x24, 0x4b, 0xd3, + 0x77, 0x0e, 0xe6, 0xc6, 0xaf, 0xe8, 0x65, 0xb0, 0xc9, 0x02, 0x5d, 0x87, 0x09, 0xaa, 0xa0, 0xba, + 0x09, 0xd3, 0xd1, 0x5e, 0x4c, 0x99, 0x76, 0x8a, 0x8d, 0x42, 0x38, 0xc5, 0x04, 0xbd, 0x0a, 0x25, + 0xcf, 0xdd, 0x22, 0xf5, 0xfd, 0xba, 0x47, 0xca, 0x63, 0x8c, 0x63, 0xe6, 0xb2, 0xba, 0x22, 0x89, + 0xf8, 0x01, 0x40, 0xfd, 0xc5, 0x49, 0x71, 0x74, 0x03, 0xee, 0x8b, 0x49, 0xb8, 0xeb, 0xfa, 0x0e, + 0x5d, 0x0e, 0x42, 0x9f, 0x64, 0x76, 0xb1, 0x71, 0x36, 0xdf, 0xce, 0x8a, 0xae, 0xbb, 0x6f, 0x23, + 0x93, 0x0a, 0xe7, 0x94, 0x46, 0xd7, 0x60, 0x92, 0xad, 0x84, 0x6a, 0xdb, 0xf3, 0xaa, 0x81, 0xe7, + 0xd6, 0xf7, 0xcb, 0x13, 0x8c, 0xe1, 0x47, 0xa4, 0xe1, 0x6b, 0xcd, 0x44, 0xd3, 0x13, 0x6f, 0xf2, + 0x0f, 0xa7, 0x4b, 0xa3, 0x4d, 0x66, 0x08, 0x69, 0x87, 0x6e, 0xbc, 0x4f, 0xe7, 0x2f, 0xb9, 0x1d, + 0x97, 0x27, 0xbb, 0x9e, 0x1f, 0x75, 0x52, 0x65, 0x2d, 0xd1, 0x81, 0x38, 0xcd, 0x90, 0x2e, 0xed, + 0x28, 0x6e, 0xb8, 0x7e, 0x79, 0x8a, 0x49, 0x0c, 0xb5, 0x32, 0x6a, 0x14, 0x88, 0x39, 0x8e, 0x19, + 0x41, 0xe8, 0x8f, 0x6b, 0x54, 0x82, 0x4e, 0x33, 0xc2, 0xc4, 0x08, 0x22, 0x11, 0x38, 0xa1, 0xa1, + 0xdb, 0x72, 0x1c, 0xef, 0x97, 0x11, 0x23, 0x55, 0xcb, 0x65, 0x63, 0xe3, 0x75, 0x4c, 0xe1, 0xe8, + 0x0a, 0x0c, 0x13, 0x7f, 0x6f, 0x35, 0x0c, 0x76, 0xcb, 0xa7, 0xf2, 0xd7, 0xec, 0x0a, 0x27, 0xe1, + 0x02, 0x3d, 0x39, 0x00, 0x08, 0x30, 0x96, 0x2c, 0xd0, 0x6d, 0x28, 0x67, 0x8c, 0x08, 0x1f, 0x80, + 0x19, 0x36, 0x00, 0x2f, 0x8b, 0xb2, 0xe5, 0x8d, 0x1c, 0xba, 0xc3, 0x2e, 0x38, 0x9c, 0xcb, 0xdd, + 0xde, 0x84, 0x09, 0x25, 0x58, 0xd8, 0xd8, 0xa2, 0x39, 0x18, 0xa4, 0x12, 0x53, 0x1e, 0xa9, 0x4b, + 0xb4, 0x2b, 0x99, 0x69, 0x0a, 0x73, 0x38, 0xeb, 0x4a, 0xf7, 0x5d, 0xb2, 0xb4, 0x1f, 0x13, 0x7e, + 0x2c, 0x2a, 0x6a, 0x5d, 0x29, 0x11, 0x38, 0xa1, 0xb1, 0xff, 0x1f, 0x57, 0x4c, 0x12, 0xe9, 0xd5, + 0x87, 0xbc, 0x7e, 0x0a, 0x46, 0xb6, 0x83, 0x28, 0xa6, 0xd4, 0xac, 0x8e, 0xc1, 0x44, 0x15, 0xb9, + 0x24, 0xe0, 0x58, 0x51, 0xa0, 0x97, 0x60, 0xbc, 0xae, 0x57, 0x20, 0x36, 0x9b, 0xd3, 0xa2, 0x88, + 0x59, 0x3b, 0x36, 0x69, 0xd1, 0x8b, 0x30, 0xc2, 0x2e, 0x28, 0xea, 0x81, 0x27, 0x0e, 0x60, 0x72, + 0xc7, 0x1c, 0xa9, 0x0a, 0xf8, 0xa1, 0xf6, 0x1b, 0x2b, 0x6a, 0x7a, 0x28, 0xa6, 0x4d, 0x58, 0xab, + 0x0a, 0x31, 0xaf, 0x0e, 0xc5, 0x97, 0x18, 0x14, 0x0b, 0xac, 0xfd, 0xd7, 0x0a, 0x5a, 0x2f, 0xd3, + 0x23, 0x05, 0x41, 0x55, 0x18, 0xbe, 0xe5, 0xb8, 0xb1, 0xeb, 0x37, 0xc5, 0x7e, 0xfe, 0x78, 0x57, + 0x99, 0xcf, 0x0a, 0xdd, 0xe4, 0x05, 0xf8, 0xae, 0x24, 0xfe, 0x60, 0xc9, 0x86, 0x72, 0x0c, 0xdb, + 0xbe, 0x4f, 0x39, 0x16, 0xfa, 0xe5, 0x88, 0x79, 0x01, 0xce, 0x51, 0xfc, 0xc1, 0x92, 0x0d, 0x7a, + 0x13, 0x40, 0xce, 0x1b, 0xd2, 0x10, 0x17, 0x03, 0x4f, 0xf5, 0x66, 0xba, 0xa1, 0xca, 0x2c, 0x4d, + 0xd0, 0x3d, 0x2f, 0xf9, 0x8f, 0x35, 0x7e, 0x76, 0xcc, 0xf4, 0x9e, 0xce, 0xc6, 0xa0, 0xcf, 0xd2, + 0xa5, 0xea, 0x84, 0x31, 0x69, 0x2c, 0xc6, 0xa2, 0x73, 0x9e, 0xe8, 0x4f, 0x6d, 0xdd, 0x70, 0x77, + 0x89, 0xbe, 0xac, 0x05, 0x13, 0x9c, 0xf0, 0xb3, 0x7f, 0xbb, 0x08, 0xe5, 0xbc, 0xe6, 0xd2, 0x49, + 0x47, 0x6e, 0xbb, 0xf1, 0x32, 0x55, 0x57, 0x2c, 0x73, 0xd2, 0xad, 0x08, 0x38, 0x56, 0x14, 0x74, + 0xf4, 0x23, 0xb7, 0x29, 0x4f, 0x1d, 0x83, 0xc9, 0xe8, 0xd7, 0x18, 0x14, 0x0b, 0x2c, 0xa5, 0x0b, + 0x89, 0x13, 0x89, 0x9b, 0x27, 0x6d, 0x96, 0x60, 0x06, 0xc5, 0x02, 0xab, 0x1b, 0x0c, 0x06, 0x7a, + 0x18, 0x0c, 0x8c, 0x2e, 0x1a, 0x3c, 0xde, 0x2e, 0x42, 0x6f, 0x01, 0x6c, 0xb9, 0xbe, 0x1b, 0x6d, + 0x33, 0xee, 0x43, 0x47, 0xe6, 0xae, 0x94, 0x9d, 0x55, 0xc5, 0x05, 0x6b, 0x1c, 0xd1, 0xf3, 0x30, + 0xaa, 0x16, 0xe0, 0x5a, 0xa5, 0x3c, 0x6c, 0x5e, 0x6b, 0x24, 0xd2, 0xa8, 0x82, 0x75, 0x3a, 0xfb, + 0xed, 0xf4, 0x7c, 0x11, 0x2b, 0x40, 0xeb, 0x5f, 0xab, 0xdf, 0xfe, 0x2d, 0x74, 0xef, 0x5f, 0xfb, + 0xf7, 0x8b, 0x30, 0x69, 0x54, 0xd6, 0x8e, 0xfa, 0x90, 0x59, 0x17, 0xe9, 0x46, 0xe4, 0xc4, 0x44, + 0xac, 0x3f, 0xbb, 0xf7, 0x52, 0xd1, 0x37, 0x2b, 0xba, 0x02, 0x78, 0x79, 0xf4, 0x16, 0x94, 0x3c, + 0x27, 0x62, 0xc6, 0x07, 0x22, 0xd6, 0x5d, 0x3f, 0xcc, 0x12, 0x45, 0xdf, 0x89, 0x62, 0x6d, 0x2f, + 0xe0, 0xbc, 0x13, 0x96, 0x74, 0xc7, 0xa4, 0xca, 0x89, 0xbc, 0xda, 0x54, 0x8d, 0xa0, 0x1a, 0xcc, + 0x3e, 0xe6, 0x38, 0xf4, 0x22, 0x8c, 0x85, 0x84, 0xcd, 0x8a, 0x65, 0xaa, 0x6b, 0xb1, 0x69, 0x36, + 0x98, 0x28, 0x65, 0x58, 0xc3, 0x61, 0x83, 0x32, 0xd1, 0xb5, 0x87, 0xba, 0xe8, 0xda, 0x8f, 0xc3, + 0x30, 0xfb, 0xa1, 0x66, 0x80, 0x1a, 0x8d, 0x35, 0x0e, 0xc6, 0x12, 0x9f, 0x9e, 0x30, 0x23, 0x7d, + 0x4e, 0x98, 0x27, 0x60, 0xa2, 0xe2, 0x90, 0xdd, 0xc0, 0x5f, 0xf1, 0x1b, 0xad, 0xc0, 0xf5, 0x63, + 0x54, 0x86, 0x01, 0xb6, 0x3b, 0xf0, 0xb5, 0x3d, 0x40, 0x39, 0xe0, 0x01, 0xaa, 0x39, 0xdb, 0x7f, + 0x54, 0x80, 0xf1, 0x0a, 0xf1, 0x48, 0x4c, 0xf8, 0x59, 0x23, 0x42, 0xab, 0x80, 0x9a, 0xa1, 0x53, + 0x27, 0x55, 0x12, 0xba, 0x41, 0x43, 0x37, 0x46, 0x16, 0x99, 0xc1, 0x1f, 0x5d, 0xec, 0xc0, 0xe2, + 0x8c, 0x12, 0xe8, 0x0d, 0x18, 0x6f, 0x85, 0xc4, 0xb0, 0xa1, 0x59, 0x79, 0xea, 0x42, 0x55, 0x27, + 0xe4, 0x9a, 0xaa, 0x01, 0xc2, 0x26, 0x2b, 0xf4, 0x69, 0x98, 0x0a, 0xc2, 0xd6, 0xb6, 0xe3, 0x57, + 0x48, 0x8b, 0xf8, 0x0d, 0xaa, 0x8a, 0x0b, 0x1b, 0xc1, 0xcc, 0x9d, 0x83, 0xb9, 0xa9, 0x6b, 0x29, + 0x1c, 0xee, 0xa0, 0x46, 0x6f, 0xc0, 0x74, 0x2b, 0x0c, 0x5a, 0x4e, 0x93, 0x4d, 0x14, 0xa1, 0x71, + 0x70, 0xe9, 0xf3, 0xd4, 0x9d, 0x83, 0xb9, 0xe9, 0x6a, 0x1a, 0x79, 0x78, 0x30, 0x77, 0x8a, 0x75, + 0x14, 0x85, 0x24, 0x48, 0xdc, 0xc9, 0xc6, 0x6e, 0xc2, 0xe9, 0x4a, 0x70, 0xcb, 0xbf, 0xe5, 0x84, + 0x8d, 0xc5, 0xea, 0x9a, 0x76, 0xb8, 0xbf, 0x2a, 0x0f, 0x97, 0xfc, 0xfa, 0x35, 0x73, 0x9f, 0xd2, + 0x4a, 0x72, 0xf5, 0x7f, 0xd5, 0xf5, 0x48, 0x8e, 0x11, 0xe1, 0x6f, 0x16, 0x8c, 0x9a, 0x12, 0x7a, + 0x65, 0xf7, 0xb7, 0x72, 0xed, 0xfe, 0xaf, 0xc1, 0xc8, 0x96, 0x4b, 0xbc, 0x06, 0x26, 0x5b, 0x62, + 0x64, 0x1e, 0xcb, 0xbf, 0x51, 0x5a, 0xa5, 0x94, 0xd2, 0x68, 0xc4, 0x8f, 0xa6, 0xab, 0xa2, 0x30, + 0x56, 0x6c, 0xd0, 0x0e, 0x4c, 0xc9, 0xb3, 0x8f, 0xc4, 0x8a, 0x45, 0xfc, 0x78, 0xb7, 0x03, 0x95, + 0xc9, 0x9c, 0x0d, 0x20, 0x4e, 0xb1, 0xc1, 0x1d, 0x8c, 0xe9, 0x59, 0x74, 0x97, 0x6e, 0x57, 0x03, + 0x6c, 0x4a, 0xb3, 0xb3, 0x28, 0x3b, 0x56, 0x33, 0xa8, 0xfd, 0x75, 0x0b, 0xee, 0xef, 0xe8, 0x19, + 0x61, 0x5e, 0x38, 0xe6, 0x51, 0x48, 0x1f, 0xf7, 0x0b, 0xbd, 0x8f, 0xfb, 0xf6, 0x3f, 0xb4, 0x60, + 0x66, 0x65, 0xb7, 0x15, 0xef, 0x57, 0x5c, 0xf3, 0x6e, 0xe2, 0x05, 0x18, 0xda, 0x25, 0x0d, 0xb7, + 0xbd, 0x2b, 0x46, 0x6e, 0x4e, 0x8a, 0xf4, 0x75, 0x06, 0x3d, 0x3c, 0x98, 0x1b, 0xaf, 0xc5, 0x41, + 0xe8, 0x34, 0x09, 0x07, 0x60, 0x41, 0xce, 0x36, 0x46, 0xf7, 0x5d, 0x72, 0xc5, 0xdd, 0x75, 0xe5, + 0x0d, 0x61, 0x57, 0x93, 0xd7, 0xbc, 0xec, 0xd0, 0xf9, 0xd7, 0xda, 0x8e, 0x1f, 0xbb, 0xf1, 0xbe, + 0xb8, 0x76, 0x91, 0x4c, 0x70, 0xc2, 0xcf, 0xfe, 0x9e, 0x05, 0x93, 0x52, 0x96, 0x2c, 0x36, 0x1a, + 0x21, 0x89, 0x22, 0x34, 0x0b, 0x05, 0xb7, 0x25, 0x5a, 0x09, 0xa2, 0x95, 0x85, 0xb5, 0x2a, 0x2e, + 0xb8, 0x2d, 0x54, 0x85, 0x12, 0xbf, 0x68, 0x4c, 0x26, 0x57, 0x5f, 0xd7, 0x95, 0xac, 0x05, 0x1b, + 0xb2, 0x24, 0x4e, 0x98, 0x48, 0xad, 0x98, 0xed, 0x43, 0x45, 0xf3, 0xce, 0xe6, 0x92, 0x80, 0x63, + 0x45, 0x81, 0xce, 0xc3, 0x88, 0x1f, 0x34, 0xf8, 0xbd, 0x2f, 0x5f, 0xd3, 0x6c, 0xca, 0x5e, 0x15, + 0x30, 0xac, 0xb0, 0xf6, 0x2f, 0x5a, 0x30, 0x26, 0xbf, 0xac, 0x4f, 0x05, 0x9d, 0x2e, 0xad, 0x44, + 0x39, 0x4f, 0x96, 0x16, 0x55, 0xb0, 0x19, 0xc6, 0xd0, 0xab, 0x8b, 0x47, 0xd1, 0xab, 0xed, 0xaf, + 0x15, 0x60, 0x42, 0x36, 0xa7, 0xd6, 0xde, 0x8c, 0x48, 0x8c, 0x36, 0xa0, 0xe4, 0xf0, 0x2e, 0x27, + 0x72, 0xc6, 0x3e, 0x92, 0x7d, 0xe2, 0x32, 0xc6, 0x27, 0x51, 0x75, 0x16, 0x65, 0x69, 0x9c, 0x30, + 0x42, 0x1e, 0x4c, 0xfb, 0x41, 0xcc, 0xb6, 0x3d, 0x85, 0xef, 0x76, 0x2f, 0x90, 0xe6, 0x7e, 0x46, + 0x70, 0x9f, 0xbe, 0x9a, 0xe6, 0x82, 0x3b, 0x19, 0xa3, 0x15, 0x69, 0xe5, 0x29, 0xb2, 0x1a, 0xce, + 0x75, 0xab, 0x21, 0xdf, 0xc8, 0x63, 0xff, 0xae, 0x05, 0x25, 0x49, 0x76, 0x12, 0x57, 0x40, 0xeb, + 0x30, 0x1c, 0xb1, 0x41, 0x90, 0x5d, 0x63, 0x77, 0x6b, 0x38, 0x1f, 0xaf, 0x64, 0x37, 0xe7, 0xff, + 0x23, 0x2c, 0x79, 0x30, 0x33, 0xb5, 0x6a, 0xfe, 0x07, 0xc4, 0x4c, 0xad, 0xda, 0x93, 0xb3, 0xc3, + 0xfc, 0x57, 0xd6, 0x66, 0xed, 0x2c, 0x4f, 0x95, 0xce, 0x56, 0x48, 0xb6, 0xdc, 0xdb, 0x69, 0xa5, + 0xb3, 0xca, 0xa0, 0x58, 0x60, 0xd1, 0x9b, 0x30, 0x56, 0x97, 0xd6, 0xdd, 0x44, 0x0c, 0x3c, 0xda, + 0xd5, 0x56, 0xae, 0xae, 0x55, 0xb8, 0x4f, 0xd8, 0xb2, 0x56, 0x1e, 0x1b, 0xdc, 0xcc, 0x8b, 0xf9, + 0x62, 0xaf, 0x8b, 0xf9, 0x84, 0x6f, 0xee, 0xd5, 0xb2, 0xfd, 0x2b, 0x16, 0x0c, 0x71, 0x1b, 0x61, + 0x7f, 0x46, 0x55, 0xed, 0x9a, 0x28, 0xe9, 0xbb, 0x1b, 0x14, 0x28, 0x6e, 0x8d, 0xd0, 0x3a, 0x94, + 0xd8, 0x0f, 0x66, 0x2b, 0x29, 0xe6, 0x3b, 0xc3, 0xf1, 0x5a, 0xf5, 0x06, 0xde, 0x90, 0xc5, 0x70, + 0xc2, 0xc1, 0xfe, 0x6a, 0x91, 0x8a, 0xaa, 0x84, 0xd4, 0xd8, 0xc1, 0xad, 0x7b, 0xb7, 0x83, 0x17, + 0xee, 0xd5, 0x0e, 0xde, 0x84, 0xc9, 0xba, 0x76, 0x27, 0x95, 0x8c, 0xe4, 0xf9, 0xae, 0x93, 0x44, + 0xbb, 0xbe, 0xe2, 0x76, 0xb2, 0x65, 0x93, 0x09, 0x4e, 0x73, 0x45, 0x9f, 0x85, 0x31, 0x3e, 0xce, + 0xa2, 0x96, 0x01, 0x56, 0xcb, 0x47, 0xf2, 0xe7, 0x8b, 0x5e, 0x05, 0x9b, 0x89, 0x35, 0xad, 0x38, + 0x36, 0x98, 0xd9, 0x5f, 0x1a, 0x84, 0xc1, 0x95, 0x3d, 0xe2, 0xc7, 0x27, 0x20, 0x90, 0xea, 0x30, + 0xe1, 0xfa, 0x7b, 0x81, 0xb7, 0x47, 0x1a, 0x1c, 0x7f, 0x94, 0xcd, 0xf5, 0x3e, 0xc1, 0x7a, 0x62, + 0xcd, 0x60, 0x81, 0x53, 0x2c, 0xef, 0xc5, 0xa9, 0xfd, 0x22, 0x0c, 0xf1, 0xb1, 0x17, 0x47, 0xf6, + 0x4c, 0x0b, 0x38, 0xeb, 0x44, 0xb1, 0x0a, 0x12, 0x8b, 0x02, 0x37, 0xb9, 0x8b, 0xe2, 0xe8, 0x6d, + 0x98, 0xd8, 0x72, 0xc3, 0x28, 0xa6, 0xc7, 0xed, 0x28, 0x76, 0x76, 0x5b, 0x77, 0x71, 0x4a, 0x57, + 0xfd, 0xb0, 0x6a, 0x70, 0xc2, 0x29, 0xce, 0xa8, 0x09, 0xe3, 0xf4, 0xe0, 0x98, 0x54, 0x35, 0x7c, + 0xe4, 0xaa, 0x94, 0x19, 0xee, 0x8a, 0xce, 0x08, 0x9b, 0x7c, 0xa9, 0x30, 0xa9, 0xb3, 0x83, 0xe6, + 0x08, 0xd3, 0x28, 0x94, 0x30, 0xe1, 0x27, 0x4c, 0x8e, 0xa3, 0x32, 0x89, 0xf9, 0x72, 0x94, 0x4c, + 0x99, 0x94, 0x78, 0x6c, 0xd8, 0xdf, 0xa0, 0xbb, 0x23, 0xed, 0xc3, 0x13, 0xd8, 0x5a, 0x5e, 0x31, + 0xb7, 0x96, 0x33, 0xb9, 0xe3, 0x99, 0xb3, 0xad, 0x7c, 0x0e, 0x46, 0xb5, 0xe1, 0x46, 0x0b, 0x50, + 0xaa, 0x4b, 0xc7, 0x03, 0x21, 0x75, 0x95, 0xfa, 0xa2, 0x3c, 0x12, 0x70, 0x42, 0x43, 0x7b, 0x83, + 0x2a, 0x7b, 0x69, 0xb7, 0x26, 0xaa, 0x0a, 0x62, 0x86, 0xb1, 0x9f, 0x05, 0x58, 0xb9, 0x4d, 0xea, + 0x8b, 0xfc, 0xe0, 0xa5, 0xdd, 0x6f, 0x59, 0xf9, 0xf7, 0x5b, 0xf6, 0x7f, 0xb0, 0x60, 0x62, 0x75, + 0xd9, 0x50, 0xc8, 0xe7, 0x01, 0xb8, 0x16, 0x7a, 0xf3, 0xe6, 0x55, 0x69, 0x19, 0xe6, 0xc6, 0x3d, + 0x05, 0xc5, 0x1a, 0x05, 0x3a, 0x03, 0x45, 0xaf, 0xed, 0x0b, 0xe5, 0x70, 0xf8, 0xce, 0xc1, 0x5c, + 0xf1, 0x4a, 0xdb, 0xc7, 0x14, 0xa6, 0x79, 0x12, 0x15, 0xfb, 0xf6, 0x24, 0xea, 0xe9, 0x82, 0x8d, + 0xe6, 0x60, 0xf0, 0xd6, 0x2d, 0xb7, 0x11, 0x95, 0x07, 0x13, 0xab, 0xf5, 0xcd, 0x9b, 0x6b, 0x95, + 0x08, 0x73, 0xb8, 0xfd, 0x17, 0x8a, 0x30, 0xb5, 0xea, 0x91, 0xdb, 0xc6, 0x67, 0x3d, 0x0a, 0x43, + 0x8d, 0xd0, 0xdd, 0x23, 0x61, 0x7a, 0x17, 0xaf, 0x30, 0x28, 0x16, 0xd8, 0xbe, 0xbd, 0x9f, 0xae, + 0x77, 0xee, 0xc7, 0xc7, 0xed, 0xef, 0xd5, 0xbb, 0x2b, 0xde, 0x84, 0x61, 0x7e, 0x4d, 0xca, 0x3b, + 0x63, 0xf4, 0xc2, 0x33, 0x59, 0x4d, 0x48, 0xf7, 0xc5, 0xbc, 0x30, 0x7c, 0x70, 0x9f, 0x11, 0x25, + 0xc4, 0x04, 0x14, 0x4b, 0x96, 0xb3, 0x9f, 0x80, 0x31, 0x9d, 0xf2, 0x48, 0xce, 0x23, 0x7f, 0xd1, + 0x82, 0x53, 0xab, 0x5e, 0x50, 0xdf, 0x49, 0xb9, 0xa2, 0x3d, 0x0f, 0xa3, 0x74, 0x3d, 0x45, 0x86, + 0x5b, 0xab, 0xe1, 0xe8, 0x2c, 0x50, 0x58, 0xa7, 0xd3, 0x8a, 0x5d, 0xbf, 0xbe, 0x56, 0xc9, 0xf2, + 0x8f, 0x16, 0x28, 0xac, 0xd3, 0xd9, 0xdf, 0xb5, 0xe0, 0xa1, 0x8b, 0xcb, 0x2b, 0x89, 0x37, 0x66, + 0x87, 0x8b, 0x36, 0x55, 0xee, 0x1a, 0x5a, 0x53, 0x12, 0xe5, 0xae, 0xc2, 0x5a, 0x21, 0xb0, 0x1f, + 0x94, 0xf0, 0x83, 0x5f, 0xb3, 0xe0, 0xd4, 0x45, 0x37, 0xc6, 0xa4, 0x15, 0xa4, 0x9d, 0x85, 0x43, + 0xd2, 0x0a, 0x22, 0x37, 0x0e, 0xc2, 0xfd, 0xb4, 0xb3, 0x30, 0x56, 0x18, 0xac, 0x51, 0xf1, 0x9a, + 0xf7, 0xdc, 0x88, 0xb6, 0xb4, 0x60, 0x9e, 0x30, 0xb1, 0x80, 0x63, 0x45, 0x41, 0x3f, 0xac, 0xe1, + 0x86, 0x4c, 0x43, 0xd8, 0x17, 0xcb, 0x59, 0x7d, 0x58, 0x45, 0x22, 0x70, 0x42, 0x63, 0x7f, 0xdd, + 0x82, 0xd3, 0x17, 0xbd, 0x76, 0x14, 0x93, 0x70, 0x2b, 0x32, 0x1a, 0xfb, 0x2c, 0x94, 0x88, 0xd4, + 0xc2, 0x45, 0x5b, 0xd5, 0xbe, 0xa1, 0xd4, 0x73, 0xee, 0xa9, 0xac, 0xe8, 0xfa, 0xf0, 0xeb, 0x3c, + 0x9a, 0x3f, 0xe2, 0x37, 0x0b, 0x30, 0x7e, 0x69, 0x63, 0xa3, 0x7a, 0x91, 0xc4, 0x42, 0x64, 0xf6, + 0xb6, 0x20, 0x61, 0xed, 0x20, 0xdc, 0x4d, 0xd7, 0x69, 0xc7, 0xae, 0x37, 0xcf, 0x43, 0x63, 0xe6, + 0xd7, 0xfc, 0xf8, 0x5a, 0x58, 0x8b, 0x43, 0xd7, 0x6f, 0x66, 0x1e, 0x9d, 0xa5, 0x60, 0x2f, 0xe6, + 0x09, 0x76, 0xf4, 0x2c, 0x0c, 0xb1, 0xd8, 0x1c, 0xa9, 0x75, 0x3c, 0xa0, 0x54, 0x05, 0x06, 0x3d, + 0x3c, 0x98, 0x2b, 0x5d, 0xc7, 0x6b, 0xfc, 0x0f, 0x16, 0xa4, 0xe8, 0x3a, 0x8c, 0x6e, 0xc7, 0x71, + 0xeb, 0x12, 0x71, 0x1a, 0x24, 0x94, 0xd2, 0xe1, 0x6c, 0x96, 0x74, 0xa0, 0x9d, 0xc0, 0xc9, 0x92, + 0x05, 0x95, 0xc0, 0x22, 0xac, 0xf3, 0xb1, 0x6b, 0x00, 0x09, 0xee, 0x98, 0x8e, 0x0d, 0xf6, 0x0f, + 0x2d, 0x18, 0xbe, 0xe4, 0xf8, 0x0d, 0x8f, 0x84, 0xe8, 0x65, 0x18, 0x20, 0xb7, 0x49, 0x5d, 0xec, + 0xe0, 0x99, 0x0d, 0x4e, 0x76, 0x39, 0x6e, 0x04, 0xa3, 0xff, 0x31, 0x2b, 0x85, 0x2e, 0xc1, 0x30, + 0x6d, 0xed, 0x45, 0xe5, 0x33, 0xfe, 0x70, 0xde, 0x17, 0xab, 0x61, 0xe7, 0x1b, 0xa3, 0x00, 0x61, + 0x59, 0x9c, 0x19, 0x74, 0xea, 0xad, 0x1a, 0x15, 0x60, 0x71, 0xb7, 0xe3, 0xd6, 0xc6, 0x72, 0x95, + 0x13, 0x09, 0x6e, 0xdc, 0xa0, 0x23, 0x81, 0x38, 0x61, 0x62, 0x6f, 0x40, 0x89, 0x0e, 0xea, 0xa2, + 0xe7, 0x3a, 0xdd, 0x6d, 0x49, 0x4f, 0x42, 0x49, 0xda, 0x75, 0x22, 0xe1, 0x76, 0xce, 0xb8, 0x4a, + 0xb3, 0x4f, 0x84, 0x13, 0xbc, 0xbd, 0x05, 0x33, 0xec, 0x92, 0xd4, 0x89, 0xb7, 0x8d, 0x35, 0xd6, + 0x7b, 0x32, 0x3f, 0x25, 0xf4, 0x2b, 0x3e, 0x32, 0x65, 0xcd, 0x4f, 0x76, 0x4c, 0x72, 0xd4, 0x74, + 0xad, 0xff, 0x3c, 0x00, 0xd3, 0x6b, 0xb5, 0xe5, 0x9a, 0x69, 0x58, 0x7c, 0x11, 0xc6, 0xb8, 0x26, + 0x40, 0x27, 0xb4, 0xe3, 0x89, 0xda, 0xd4, 0xc5, 0xc1, 0x86, 0x86, 0xc3, 0x06, 0x25, 0x7a, 0x08, + 0x8a, 0xee, 0x3b, 0x7e, 0xda, 0x15, 0x6e, 0xed, 0xb5, 0xab, 0x98, 0xc2, 0x29, 0x9a, 0x2a, 0x15, + 0x5c, 0x80, 0x2a, 0xb4, 0x52, 0x2c, 0x5e, 0x81, 0x09, 0x37, 0xaa, 0x47, 0xee, 0x9a, 0x4f, 0xa5, + 0x4b, 0x12, 0x73, 0x91, 0x68, 0xfc, 0xb4, 0xa9, 0x0a, 0x8b, 0x53, 0xd4, 0x9a, 0x34, 0x1f, 0xec, + 0x5b, 0x31, 0xe9, 0xe9, 0x7d, 0x4d, 0x75, 0xae, 0x16, 0xfb, 0xba, 0x88, 0xb9, 0xe5, 0x08, 0x9d, + 0x8b, 0x7f, 0x70, 0x84, 0x25, 0x0e, 0x5d, 0x84, 0xe9, 0xfa, 0xb6, 0xd3, 0x5a, 0x6c, 0xc7, 0xdb, + 0x15, 0x37, 0xaa, 0x07, 0x7b, 0x24, 0xdc, 0x67, 0x9a, 0xf0, 0x48, 0x62, 0x64, 0x52, 0x88, 0xe5, + 0x4b, 0x8b, 0x55, 0x4a, 0x89, 0x3b, 0xcb, 0x98, 0x2a, 0x08, 0x1c, 0x9b, 0x0a, 0xb2, 0x08, 0x93, + 0xb2, 0xae, 0x1a, 0x89, 0xd8, 0xf6, 0x30, 0xca, 0x5a, 0xa7, 0x42, 0xa2, 0x04, 0x58, 0xb5, 0x2d, + 0x4d, 0x8f, 0x5e, 0x80, 0x71, 0xd7, 0x77, 0x63, 0xd7, 0x89, 0x83, 0x90, 0x6d, 0xae, 0x63, 0x7c, + 0xc3, 0xa0, 0x12, 0x7e, 0x4d, 0x47, 0x60, 0x93, 0xce, 0x7e, 0x1b, 0x4a, 0xca, 0xd7, 0x4c, 0xba, + 0x4b, 0x5a, 0x39, 0xee, 0x92, 0xbd, 0x77, 0x04, 0x69, 0x31, 0x2f, 0x66, 0x5a, 0xcc, 0xff, 0x96, + 0x05, 0x89, 0xcb, 0x0d, 0xba, 0x04, 0xa5, 0x56, 0xc0, 0x6e, 0xcd, 0x42, 0x79, 0x15, 0xfd, 0x40, + 0xa6, 0xf0, 0xe0, 0x82, 0x8a, 0xf7, 0x5f, 0x55, 0x96, 0xc0, 0x49, 0x61, 0xb4, 0x04, 0xc3, 0xad, + 0x90, 0xd4, 0x62, 0x16, 0x34, 0xd2, 0x93, 0x0f, 0x9f, 0x23, 0x9c, 0x1e, 0xcb, 0x82, 0xf6, 0x6f, + 0x5a, 0x00, 0xdc, 0x28, 0xed, 0xf8, 0x4d, 0x72, 0x02, 0x07, 0xed, 0x0a, 0x0c, 0x44, 0x2d, 0x52, + 0xef, 0x76, 0x9f, 0x99, 0xb4, 0xa7, 0xd6, 0x22, 0xf5, 0xa4, 0xc3, 0xe9, 0x3f, 0xcc, 0x4a, 0xdb, + 0xbf, 0x00, 0x30, 0x91, 0x90, 0xd1, 0x03, 0x10, 0x7a, 0xda, 0x70, 0xc9, 0x3f, 0x93, 0x72, 0xc9, + 0x2f, 0x31, 0x6a, 0xcd, 0x0b, 0xff, 0x6d, 0x28, 0xee, 0x3a, 0xb7, 0xc5, 0x29, 0xeb, 0xc9, 0xee, + 0xcd, 0xa0, 0xfc, 0xe7, 0xd7, 0x9d, 0xdb, 0x5c, 0x8f, 0x7d, 0x52, 0x4e, 0x90, 0x75, 0xe7, 0xf6, + 0x21, 0xbf, 0xb5, 0x64, 0x42, 0x8a, 0x1e, 0xe6, 0xbe, 0xf0, 0x9f, 0x92, 0xff, 0x6c, 0xda, 0xd1, + 0x4a, 0x58, 0x5d, 0xae, 0x2f, 0x4c, 0xb4, 0x7d, 0xd5, 0xe5, 0xfa, 0xe9, 0xba, 0x5c, 0xbf, 0x8f, + 0xba, 0x5c, 0x1f, 0xbd, 0x0b, 0xc3, 0xe2, 0x3a, 0x84, 0xf9, 0x12, 0x8e, 0x5e, 0x58, 0xe8, 0xa3, + 0x3e, 0x71, 0x9b, 0xc2, 0xeb, 0x5c, 0x90, 0x7a, 0xba, 0x80, 0xf6, 0xac, 0x57, 0x56, 0x88, 0xfe, + 0x86, 0x05, 0x13, 0xe2, 0x37, 0x26, 0xef, 0xb4, 0x49, 0x14, 0x0b, 0x7d, 0xe0, 0x63, 0xfd, 0xb7, + 0x41, 0x14, 0xe4, 0x4d, 0xf9, 0x98, 0x14, 0xb3, 0x26, 0xb2, 0x67, 0x8b, 0x52, 0xad, 0x40, 0xff, + 0xd8, 0x82, 0x99, 0x5d, 0xe7, 0x36, 0xaf, 0x91, 0xc3, 0xb0, 0x13, 0xbb, 0x81, 0xf0, 0x8d, 0x7c, + 0xb9, 0xbf, 0xe1, 0xef, 0x28, 0xce, 0x1b, 0x29, 0xdd, 0xa8, 0x66, 0xb2, 0x48, 0x7a, 0x36, 0x35, + 0xb3, 0x5d, 0xb3, 0x5b, 0x30, 0x22, 0xe7, 0x5b, 0xc6, 0x69, 0xa8, 0xa2, 0x2b, 0x3b, 0x47, 0xbe, + 0x8d, 0xd2, 0x4e, 0x4f, 0xac, 0x1e, 0x31, 0xd7, 0xee, 0x69, 0x3d, 0x6f, 0xc3, 0x98, 0x3e, 0xc7, + 0xee, 0x69, 0x5d, 0xef, 0xc0, 0xa9, 0x8c, 0xb9, 0x74, 0x4f, 0xab, 0xbc, 0x05, 0x67, 0x72, 0xe7, + 0xc7, 0xbd, 0xac, 0xd8, 0xfe, 0xa6, 0xa5, 0xcb, 0xc1, 0x13, 0x30, 0x4f, 0x2d, 0x9b, 0xe6, 0xa9, + 0xb3, 0xdd, 0x57, 0x4e, 0x8e, 0x8d, 0xea, 0x4d, 0xbd, 0xd1, 0x54, 0xaa, 0xa3, 0x57, 0x61, 0xc8, + 0xa3, 0x10, 0x79, 0x0f, 0x67, 0xf7, 0x5e, 0x91, 0x89, 0x2e, 0xc5, 0xe0, 0x11, 0x16, 0x1c, 0xec, + 0xdf, 0xb1, 0x60, 0xe0, 0x04, 0x7a, 0x02, 0x9b, 0x3d, 0xf1, 0x74, 0x2e, 0x6b, 0x91, 0xf7, 0x60, + 0x1e, 0x3b, 0xb7, 0x56, 0x64, 0x6e, 0x87, 0x9c, 0x8e, 0xf9, 0xbf, 0x05, 0x18, 0xa5, 0x55, 0x49, + 0x87, 0x91, 0x97, 0x60, 0xdc, 0x73, 0x36, 0x89, 0x27, 0x4d, 0xe6, 0xe9, 0x43, 0xec, 0x15, 0x1d, + 0x89, 0x4d, 0x5a, 0x5a, 0x78, 0x4b, 0xbf, 0x3d, 0x10, 0xfa, 0x8b, 0x2a, 0x6c, 0x5c, 0x2d, 0x60, + 0x93, 0x96, 0x9e, 0xa7, 0x6e, 0x39, 0x71, 0x7d, 0x5b, 0x1c, 0x70, 0x55, 0x73, 0x6f, 0x52, 0x20, + 0xe6, 0x38, 0xaa, 0xc0, 0xc9, 0xd9, 0x79, 0x83, 0x84, 0x4c, 0x81, 0xe3, 0xea, 0xb1, 0x52, 0xe0, + 0xb0, 0x89, 0xc6, 0x69, 0xfa, 0x8c, 0xd8, 0xbc, 0x41, 0xe6, 0x0e, 0xd3, 0x47, 0x6c, 0x1e, 0xaa, + 0xc2, 0x8c, 0xeb, 0xd7, 0xbd, 0x76, 0x83, 0x5c, 0xf7, 0xb9, 0x76, 0xe7, 0xb9, 0xef, 0x92, 0x86, + 0x50, 0xa0, 0x95, 0xe7, 0xd2, 0x5a, 0x06, 0x0d, 0xce, 0x2c, 0x69, 0xff, 0x39, 0x38, 0x75, 0x25, + 0x70, 0x1a, 0x4b, 0x8e, 0xe7, 0xf8, 0x75, 0x12, 0xae, 0xf9, 0xcd, 0x9e, 0x17, 0xf2, 0xfa, 0xf5, + 0x79, 0xa1, 0xd7, 0xf5, 0xb9, 0xbd, 0x0d, 0x48, 0xaf, 0x40, 0xb8, 0x81, 0x61, 0x18, 0x76, 0x79, + 0x55, 0x62, 0xfa, 0x3f, 0x96, 0xad, 0x5d, 0x77, 0xb4, 0x4c, 0x73, 0x70, 0xe2, 0x00, 0x2c, 0x19, + 0xd9, 0x2f, 0x42, 0x66, 0x6c, 0x46, 0xef, 0xa3, 0xb4, 0xfd, 0x3c, 0x4c, 0xb3, 0x92, 0x47, 0x3b, + 0xe6, 0xd9, 0x7f, 0xc5, 0x82, 0xc9, 0xab, 0xa9, 0x68, 0xda, 0x47, 0x61, 0x88, 0x67, 0x38, 0x49, + 0x1b, 0xbd, 0x6a, 0x0c, 0x8a, 0x05, 0xf6, 0xd8, 0x6d, 0x2e, 0x3f, 0xb6, 0xa0, 0xa4, 0x42, 0xdf, + 0x4f, 0x40, 0xa9, 0x5d, 0x36, 0x94, 0xda, 0x4c, 0x5b, 0x80, 0x6a, 0x4e, 0x9e, 0x4e, 0x8b, 0x2e, + 0xab, 0xb8, 0xd0, 0x2e, 0x66, 0x80, 0x84, 0x0d, 0x8f, 0x22, 0x9c, 0x30, 0x83, 0x47, 0x65, 0xa4, + 0x28, 0xbb, 0x11, 0x57, 0xb4, 0x1f, 0x90, 0x1b, 0x71, 0xd5, 0x9e, 0x1c, 0xe9, 0x57, 0xd5, 0x9a, + 0xcc, 0x76, 0x85, 0x4f, 0x31, 0xaf, 0x51, 0xb6, 0x36, 0x55, 0x38, 0xf6, 0x9c, 0xf0, 0x02, 0x15, + 0xd0, 0x43, 0x26, 0xc8, 0xc4, 0x3f, 0x9e, 0xa6, 0x20, 0x29, 0x62, 0x5f, 0x82, 0xc9, 0x54, 0x87, + 0xa1, 0xe7, 0x61, 0xb0, 0xb5, 0xed, 0x44, 0x24, 0xe5, 0x05, 0x34, 0x58, 0xa5, 0xc0, 0xc3, 0x83, + 0xb9, 0x09, 0x55, 0x80, 0x41, 0x30, 0xa7, 0xb6, 0xff, 0xa7, 0x05, 0x03, 0x57, 0x83, 0xc6, 0x49, + 0x4c, 0xa6, 0x57, 0x8c, 0xc9, 0xf4, 0x60, 0x5e, 0x92, 0x97, 0xdc, 0x79, 0xb4, 0x9a, 0x9a, 0x47, + 0x67, 0x73, 0x39, 0x74, 0x9f, 0x42, 0xbb, 0x30, 0xca, 0x52, 0xc7, 0x08, 0xaf, 0xa4, 0x67, 0x8d, + 0xf3, 0xd5, 0x5c, 0xea, 0x7c, 0x35, 0xa9, 0x91, 0x6a, 0xa7, 0xac, 0xc7, 0x61, 0x58, 0x78, 0xc6, + 0xa4, 0xfd, 0x63, 0x05, 0x2d, 0x96, 0x78, 0xfb, 0x57, 0x8a, 0x60, 0xa4, 0xaa, 0x41, 0xbf, 0x6b, + 0xc1, 0x7c, 0xc8, 0x23, 0x82, 0x1a, 0x95, 0x76, 0xe8, 0xfa, 0xcd, 0x5a, 0x7d, 0x9b, 0x34, 0xda, + 0x9e, 0xeb, 0x37, 0xd7, 0x9a, 0x7e, 0xa0, 0xc0, 0x2b, 0xb7, 0x49, 0xbd, 0xcd, 0xec, 0xe0, 0x3d, + 0xf2, 0xe2, 0xa8, 0x9b, 0xe7, 0x0b, 0x77, 0x0e, 0xe6, 0xe6, 0xf1, 0x91, 0x78, 0xe3, 0x23, 0xb6, + 0x05, 0x7d, 0xd7, 0x82, 0x05, 0x9e, 0xc1, 0xa5, 0xff, 0xf6, 0x77, 0x39, 0x8d, 0x56, 0x25, 0xab, + 0x84, 0xc9, 0x06, 0x09, 0x77, 0x97, 0x5e, 0x10, 0x1d, 0xba, 0x50, 0x3d, 0x5a, 0x5d, 0xf8, 0xa8, + 0x8d, 0xb3, 0xff, 0x55, 0x11, 0xc6, 0x69, 0x2f, 0x26, 0x51, 0xf0, 0xcf, 0x1b, 0x53, 0xe2, 0xe1, + 0xd4, 0x94, 0x98, 0x36, 0x88, 0x8f, 0x27, 0x00, 0x3e, 0x82, 0x69, 0xcf, 0x89, 0xe2, 0x4b, 0xc4, + 0x09, 0xe3, 0x4d, 0xe2, 0xb0, 0xab, 0x5e, 0x31, 0xcd, 0x8f, 0x72, 0x7b, 0xac, 0xcc, 0x5f, 0x57, + 0xd2, 0xcc, 0x70, 0x27, 0x7f, 0xb4, 0x07, 0x88, 0x5d, 0x2b, 0x87, 0x8e, 0x1f, 0xf1, 0x6f, 0x71, + 0x85, 0x8d, 0xfc, 0x68, 0xb5, 0xce, 0x8a, 0x5a, 0xd1, 0x95, 0x0e, 0x6e, 0x38, 0xa3, 0x06, 0xcd, + 0x5d, 0x60, 0xb0, 0x5f, 0x77, 0x81, 0xa1, 0x1e, 0x4e, 0xe8, 0xbb, 0x30, 0x25, 0x46, 0x65, 0xcb, + 0x6d, 0x8a, 0x4d, 0xfa, 0xf5, 0x94, 0x3b, 0x91, 0xd5, 0xbf, 0xe3, 0x43, 0x0f, 0x5f, 0x22, 0xfb, + 0xe7, 0xe1, 0x14, 0xad, 0xce, 0x74, 0x99, 0x8e, 0x10, 0x81, 0xc9, 0x9d, 0xf6, 0x26, 0xf1, 0x48, + 0x2c, 0x61, 0xa2, 0xd2, 0x4c, 0xb5, 0xdf, 0x2c, 0x9d, 0xe8, 0x96, 0x97, 0x4d, 0x16, 0x38, 0xcd, + 0xd3, 0xfe, 0x55, 0x0b, 0x98, 0x63, 0xe2, 0x09, 0x6c, 0x7f, 0x9f, 0x34, 0xb7, 0xbf, 0x72, 0x9e, + 0x04, 0xca, 0xd9, 0xf9, 0x9e, 0xe3, 0xc3, 0x52, 0x0d, 0x83, 0xdb, 0xfb, 0x52, 0xf7, 0xef, 0xad, + 0x71, 0xfd, 0x1f, 0x8b, 0x2f, 0x48, 0x15, 0x20, 0x89, 0x3e, 0x0f, 0x23, 0x75, 0xa7, 0xe5, 0xd4, + 0x79, 0x8e, 0xb0, 0x5c, 0xeb, 0x8f, 0x51, 0x68, 0x7e, 0x59, 0x94, 0xe0, 0xd6, 0x8c, 0x8f, 0xca, + 0xaf, 0x94, 0xe0, 0x9e, 0x16, 0x0c, 0x55, 0xe5, 0xec, 0x0e, 0x8c, 0x1b, 0xcc, 0xee, 0xe9, 0xd1, + 0xf7, 0xf3, 0x7c, 0xbb, 0x50, 0x27, 0x96, 0x5d, 0x98, 0xf6, 0xb5, 0xff, 0x54, 0x38, 0x4a, 0x75, + 0xfa, 0xc3, 0xbd, 0x36, 0x04, 0x26, 0x49, 0x35, 0xc7, 0xcb, 0x14, 0x1b, 0xdc, 0xc9, 0xd9, 0xfe, + 0x3b, 0x16, 0xdc, 0xaf, 0x13, 0x6a, 0xb1, 0xab, 0xbd, 0xec, 0xc9, 0x15, 0x18, 0x09, 0x5a, 0x24, + 0x74, 0x92, 0x33, 0xd9, 0x79, 0xd9, 0xe9, 0xd7, 0x04, 0xfc, 0xf0, 0x60, 0x6e, 0x46, 0xe7, 0x2e, + 0xe1, 0x58, 0x95, 0x44, 0x36, 0x0c, 0xb1, 0xce, 0x88, 0x44, 0x5c, 0x31, 0xcb, 0xa3, 0xc5, 0xae, + 0xbb, 0x22, 0x2c, 0x30, 0xf6, 0x2f, 0x58, 0x7c, 0x62, 0xe9, 0x4d, 0x47, 0xef, 0xc0, 0xd4, 0x2e, + 0x3d, 0xbe, 0xad, 0xdc, 0x6e, 0x85, 0xdc, 0x8c, 0x2e, 0xfb, 0xe9, 0xc9, 0x5e, 0xfd, 0xa4, 0x7d, + 0xe4, 0x52, 0x59, 0xb4, 0x79, 0x6a, 0x3d, 0xc5, 0x0c, 0x77, 0xb0, 0xb7, 0xff, 0xb4, 0xc0, 0x57, + 0x22, 0xd3, 0xea, 0x1e, 0x87, 0xe1, 0x56, 0xd0, 0x58, 0x5e, 0xab, 0x60, 0xd1, 0x43, 0x4a, 0x5c, + 0x55, 0x39, 0x18, 0x4b, 0x3c, 0xba, 0x00, 0x40, 0x6e, 0xc7, 0x24, 0xf4, 0x1d, 0x4f, 0x5d, 0xc6, + 0x2b, 0xe5, 0x69, 0x45, 0x61, 0xb0, 0x46, 0x45, 0xcb, 0xb4, 0xc2, 0x60, 0xcf, 0x6d, 0xb0, 0xc0, + 0x8e, 0xa2, 0x59, 0xa6, 0xaa, 0x30, 0x58, 0xa3, 0xa2, 0x47, 0xe5, 0xb6, 0x1f, 0xf1, 0x0d, 0xd0, + 0xd9, 0x14, 0xa9, 0x78, 0x46, 0x92, 0xa3, 0xf2, 0x75, 0x1d, 0x89, 0x4d, 0x5a, 0xb4, 0x08, 0x43, + 0xb1, 0xc3, 0xae, 0x98, 0x07, 0xf3, 0x5d, 0x76, 0x36, 0x28, 0x85, 0x9e, 0x34, 0x8a, 0x16, 0xc0, + 0xa2, 0x20, 0x7a, 0x43, 0x8a, 0x60, 0x2e, 0x92, 0x85, 0xeb, 0x55, 0xee, 0xb4, 0xd5, 0xc5, 0xb7, + 0x2e, 0x83, 0x85, 0x4b, 0x97, 0xc1, 0xcb, 0xfe, 0x62, 0x09, 0x20, 0xd1, 0xf6, 0xd0, 0xbb, 0x1d, + 0x22, 0xe2, 0xa9, 0xee, 0xfa, 0xe1, 0xf1, 0xc9, 0x07, 0xf4, 0x25, 0x0b, 0x46, 0x1d, 0xcf, 0x0b, + 0xea, 0x4e, 0xcc, 0x7a, 0xb9, 0xd0, 0x5d, 0x44, 0x89, 0xfa, 0x17, 0x93, 0x12, 0xbc, 0x09, 0xcf, + 0xca, 0xdb, 0x63, 0x0d, 0xd3, 0xb3, 0x15, 0x7a, 0xc5, 0xe8, 0xa3, 0xf2, 0x10, 0xc0, 0xa7, 0xc7, + 0x6c, 0xfa, 0x10, 0x50, 0x62, 0xd2, 0x58, 0xd3, 0xff, 0xd1, 0x75, 0x23, 0x67, 0xcd, 0x40, 0x7e, + 0x78, 0xae, 0xa1, 0xf4, 0xf4, 0x4a, 0x57, 0x83, 0xaa, 0xba, 0x0b, 0xfa, 0x60, 0x7e, 0x0c, 0xbb, + 0xa6, 0x5d, 0xf7, 0x70, 0x3f, 0x7f, 0x1b, 0x26, 0x1b, 0xe6, 0x76, 0x2b, 0x66, 0xd3, 0x63, 0x79, + 0x7c, 0x53, 0xbb, 0x73, 0xb2, 0xc1, 0xa6, 0x10, 0x38, 0xcd, 0x18, 0x55, 0x79, 0x30, 0xc0, 0x9a, + 0xbf, 0x15, 0x08, 0x17, 0x3e, 0x3b, 0x77, 0x2c, 0xf7, 0xa3, 0x98, 0xec, 0x52, 0xca, 0x64, 0x1f, + 0xbd, 0x2a, 0xca, 0x62, 0xc5, 0x05, 0xbd, 0x0a, 0x43, 0x2c, 0x42, 0x2b, 0x2a, 0x8f, 0xe4, 0xdb, + 0x01, 0xcd, 0xe0, 0xe2, 0x64, 0x51, 0xb1, 0xbf, 0x11, 0x16, 0x1c, 0xd0, 0x25, 0x99, 0x22, 0x20, + 0x5a, 0xf3, 0xaf, 0x47, 0x84, 0xa5, 0x08, 0x28, 0x2d, 0x7d, 0x38, 0x89, 0xfe, 0xe7, 0xf0, 0xcc, + 0xf4, 0x90, 0x46, 0x49, 0xaa, 0xaf, 0x88, 0xff, 0x32, 0xeb, 0x64, 0x19, 0xf2, 0x9b, 0x67, 0x66, + 0xa6, 0x4c, 0xba, 0xf3, 0x86, 0xc9, 0x02, 0xa7, 0x79, 0x9e, 0xe8, 0xf6, 0x39, 0xeb, 0xc3, 0x54, + 0x7a, 0x61, 0xdd, 0xd3, 0xed, 0xfa, 0x87, 0x03, 0x30, 0x61, 0x4e, 0x04, 0xb4, 0x00, 0x25, 0xc1, + 0x44, 0xa5, 0x0b, 0x53, 0x73, 0x7b, 0x5d, 0x22, 0x70, 0x42, 0xc3, 0xd2, 0xa5, 0xb1, 0xe2, 0x9a, + 0x6f, 0x56, 0x92, 0x2e, 0x4d, 0x61, 0xb0, 0x46, 0x45, 0x95, 0xe8, 0xcd, 0x20, 0x88, 0xd5, 0x56, + 0xa0, 0x66, 0xcb, 0x12, 0x83, 0x62, 0x81, 0xa5, 0x5b, 0xc0, 0x0e, 0x09, 0x7d, 0xe2, 0x99, 0x96, + 0x4c, 0xb5, 0x05, 0x5c, 0xd6, 0x91, 0xd8, 0xa4, 0xa5, 0x5b, 0x5a, 0x10, 0xb1, 0xe9, 0x27, 0x54, + 0xf5, 0xc4, 0xd7, 0xad, 0xc6, 0x23, 0x14, 0x25, 0x1e, 0xbd, 0x0e, 0xf7, 0xab, 0x80, 0x42, 0xcc, + 0x2d, 0xc3, 0xb2, 0xc6, 0x21, 0xe3, 0x64, 0x7d, 0xff, 0x72, 0x36, 0x19, 0xce, 0x2b, 0x8f, 0x5e, + 0x81, 0x09, 0xa1, 0x02, 0x4b, 0x8e, 0xc3, 0xa6, 0xb3, 0xc2, 0x65, 0x03, 0x8b, 0x53, 0xd4, 0xa8, + 0x02, 0x53, 0x14, 0xc2, 0xb4, 0x50, 0xc9, 0x81, 0x07, 0x46, 0xaa, 0xbd, 0xfe, 0x72, 0x0a, 0x8f, + 0x3b, 0x4a, 0xa0, 0x45, 0x98, 0xe4, 0x3a, 0x0a, 0x3d, 0x53, 0xb2, 0x71, 0x10, 0x9e, 0xb5, 0x6a, + 0x21, 0x5c, 0x33, 0xd1, 0x38, 0x4d, 0x8f, 0x5e, 0x84, 0x31, 0x27, 0xac, 0x6f, 0xbb, 0x31, 0xa9, + 0xc7, 0xed, 0x90, 0x27, 0xe0, 0xd0, 0xbc, 0x3d, 0x16, 0x35, 0x1c, 0x36, 0x28, 0xed, 0x77, 0xe1, + 0x54, 0x86, 0x53, 0x3e, 0x9d, 0x38, 0x4e, 0xcb, 0x95, 0xdf, 0x94, 0xf2, 0x5a, 0x5b, 0xac, 0xae, + 0xc9, 0xaf, 0xd1, 0xa8, 0xe8, 0xec, 0x64, 0x26, 0x71, 0x2d, 0x35, 0xac, 0x9a, 0x9d, 0xab, 0x12, + 0x81, 0x13, 0x1a, 0xfb, 0x0f, 0x00, 0x34, 0x83, 0x4e, 0x1f, 0x3e, 0x4b, 0x2f, 0xc2, 0x98, 0xcc, + 0x67, 0xac, 0xe5, 0xd1, 0x54, 0x9f, 0x79, 0x51, 0xc3, 0x61, 0x83, 0x92, 0xb6, 0xcd, 0x57, 0x59, + 0x40, 0x53, 0x3e, 0x72, 0x49, 0x0e, 0xd0, 0x84, 0x06, 0x3d, 0x05, 0x23, 0x11, 0xf1, 0xb6, 0xae, + 0xb8, 0xfe, 0x8e, 0x98, 0xd8, 0x4a, 0x0a, 0xd7, 0x04, 0x1c, 0x2b, 0x0a, 0xb4, 0x04, 0xc5, 0xb6, + 0xdb, 0x10, 0x53, 0x59, 0x6e, 0xf8, 0xc5, 0xeb, 0x6b, 0x95, 0xc3, 0x83, 0xb9, 0x87, 0xf3, 0xd2, + 0x34, 0xd3, 0xa3, 0x7d, 0x34, 0x4f, 0x97, 0x1f, 0x2d, 0x9c, 0x75, 0x37, 0x30, 0x74, 0xc4, 0xbb, + 0x81, 0x0b, 0x00, 0xe2, 0xab, 0xe5, 0x5c, 0x2e, 0x26, 0xa3, 0x76, 0x51, 0x61, 0xb0, 0x46, 0x85, + 0x22, 0x98, 0xae, 0x87, 0xc4, 0x91, 0x67, 0x68, 0xee, 0x5e, 0x3e, 0x72, 0xf7, 0x06, 0x82, 0xe5, + 0x34, 0x33, 0xdc, 0xc9, 0x1f, 0x05, 0x30, 0xdd, 0x10, 0xf1, 0xab, 0x49, 0xa5, 0xa5, 0xa3, 0xfb, + 0xb4, 0x33, 0x87, 0x9c, 0x34, 0x23, 0xdc, 0xc9, 0x1b, 0xbd, 0x05, 0xb3, 0x12, 0xd8, 0x19, 0x32, + 0xcc, 0x96, 0x4b, 0x71, 0xe9, 0xec, 0x9d, 0x83, 0xb9, 0xd9, 0x4a, 0x2e, 0x15, 0xee, 0xc2, 0x01, + 0x61, 0x18, 0x62, 0x77, 0x49, 0x51, 0x79, 0x94, 0xed, 0x73, 0x4f, 0xe4, 0x1b, 0x03, 0xe8, 0x5c, + 0x9f, 0x67, 0xf7, 0x50, 0xc2, 0xcd, 0x37, 0xb9, 0x96, 0x63, 0x40, 0x2c, 0x38, 0xa1, 0x2d, 0x18, + 0x75, 0x7c, 0x3f, 0x88, 0x1d, 0xae, 0x42, 0x8d, 0xe5, 0xeb, 0x7e, 0x1a, 0xe3, 0xc5, 0xa4, 0x04, + 0xe7, 0xae, 0x3c, 0x07, 0x35, 0x0c, 0xd6, 0x19, 0xa3, 0x5b, 0x30, 0x19, 0xdc, 0xa2, 0xc2, 0x51, + 0x5a, 0x29, 0xa2, 0xf2, 0x38, 0xab, 0xeb, 0xb9, 0x3e, 0xed, 0xb4, 0x46, 0x61, 0x4d, 0x6a, 0x99, + 0x4c, 0x71, 0xba, 0x16, 0x34, 0x6f, 0x58, 0xab, 0x27, 0x12, 0x7f, 0xf6, 0xc4, 0x5a, 0xad, 0x1b, + 0xa7, 0x59, 0x08, 0x3a, 0x77, 0x5b, 0x65, 0xab, 0x7f, 0x32, 0x15, 0x82, 0x9e, 0xa0, 0xb0, 0x4e, + 0x87, 0xb6, 0x61, 0x2c, 0xb9, 0xb2, 0x0a, 0x23, 0x96, 0xa1, 0x66, 0xf4, 0xc2, 0x85, 0xfe, 0x3e, + 0x6e, 0x4d, 0x2b, 0xc9, 0x4f, 0x0e, 0x3a, 0x04, 0x1b, 0x9c, 0x67, 0x3f, 0x0e, 0xa3, 0xda, 0xc0, + 0x1e, 0xc5, 0x2b, 0x7b, 0xf6, 0x15, 0x98, 0x4a, 0x0f, 0xdd, 0x91, 0xbc, 0xba, 0xff, 0x77, 0x01, + 0x26, 0x33, 0x6e, 0xae, 0x58, 0xaa, 0xe7, 0x94, 0x40, 0x4d, 0x32, 0x3b, 0x9b, 0x62, 0xb1, 0xd0, + 0x87, 0x58, 0x94, 0x32, 0xba, 0x98, 0x2b, 0xa3, 0x85, 0x28, 0x1c, 0x78, 0x2f, 0xa2, 0xd0, 0xdc, + 0x7d, 0x06, 0xfb, 0xda, 0x7d, 0x8e, 0x41, 0x7c, 0x1a, 0x1b, 0xd8, 0x70, 0x1f, 0x1b, 0xd8, 0x57, + 0x0b, 0x30, 0x95, 0xce, 0x27, 0x7c, 0x02, 0xf7, 0x1d, 0xaf, 0x1a, 0xf7, 0x1d, 0xd9, 0x89, 0xd3, + 0xd3, 0x59, 0x8e, 0xf3, 0xee, 0x3e, 0x70, 0xea, 0xee, 0xe3, 0x89, 0xbe, 0xb8, 0x75, 0xbf, 0x07, + 0xf9, 0xbb, 0x05, 0x38, 0x9d, 0x2e, 0xb2, 0xec, 0x39, 0xee, 0xee, 0x09, 0xf4, 0xcd, 0x35, 0xa3, + 0x6f, 0x9e, 0xee, 0xe7, 0x6b, 0x58, 0xd3, 0x72, 0x3b, 0xe8, 0x66, 0xaa, 0x83, 0x16, 0xfa, 0x67, + 0xd9, 0xbd, 0x97, 0xbe, 0x57, 0x84, 0xb3, 0x99, 0xe5, 0x92, 0xeb, 0x82, 0x55, 0xe3, 0xba, 0xe0, + 0x42, 0xea, 0xba, 0xc0, 0xee, 0x5e, 0xfa, 0x78, 0xee, 0x0f, 0x44, 0xe4, 0x19, 0xcb, 0x9e, 0x76, + 0x97, 0x77, 0x07, 0x46, 0xe4, 0x99, 0x62, 0x84, 0x4d, 0xbe, 0x3f, 0x4d, 0x77, 0x06, 0x7f, 0x60, + 0xc1, 0x99, 0xcc, 0xb1, 0x39, 0x01, 0xbb, 0xfa, 0x55, 0xd3, 0xae, 0xfe, 0x78, 0xdf, 0xb3, 0x35, + 0xc7, 0xd0, 0xfe, 0xf5, 0x62, 0xce, 0xb7, 0x30, 0xcb, 0xe4, 0x35, 0x18, 0x75, 0xea, 0x75, 0x12, + 0x45, 0xeb, 0x41, 0x43, 0x25, 0x2b, 0x7b, 0x9a, 0x69, 0x1b, 0x09, 0xf8, 0xf0, 0x60, 0x6e, 0x36, + 0xcd, 0x22, 0x41, 0x63, 0x9d, 0x83, 0x99, 0x00, 0xb1, 0x70, 0xac, 0x09, 0x10, 0x2f, 0x00, 0xec, + 0x29, 0x7b, 0x45, 0xda, 0xcc, 0xa9, 0x59, 0x32, 0x34, 0x2a, 0xf4, 0x73, 0xec, 0x14, 0xc0, 0x9d, + 0x81, 0xf8, 0x54, 0x7c, 0xb6, 0xcf, 0xb1, 0xd2, 0x1d, 0x8b, 0x78, 0x88, 0xb3, 0x32, 0x09, 0x2b, + 0x96, 0xe8, 0xd3, 0x30, 0x15, 0xf1, 0x0c, 0x1a, 0xcb, 0x9e, 0x13, 0xb1, 0xc0, 0x1a, 0x31, 0x0b, + 0x59, 0xdc, 0x72, 0x2d, 0x85, 0xc3, 0x1d, 0xd4, 0xf6, 0x57, 0x07, 0xe0, 0x81, 0x2e, 0xc2, 0x07, + 0x2d, 0x9a, 0x97, 0xf7, 0x4f, 0xa6, 0xed, 0x76, 0xb3, 0x99, 0x85, 0x0d, 0x43, 0x5e, 0x6a, 0x8c, + 0x0b, 0xef, 0x79, 0x8c, 0xbf, 0x6c, 0x69, 0x16, 0x55, 0xee, 0xe2, 0xfb, 0xc9, 0x23, 0x0a, 0xd5, + 0x63, 0x34, 0xb1, 0x6e, 0x65, 0xd8, 0x29, 0x2f, 0xf4, 0xdd, 0x9c, 0xbe, 0x0d, 0x97, 0x27, 0x7b, + 0xd5, 0xf3, 0x05, 0x0b, 0x1e, 0xce, 0x6c, 0xaf, 0xe1, 0x6c, 0xb4, 0x00, 0xa5, 0x3a, 0x05, 0x6a, + 0x41, 0x76, 0x49, 0xa8, 0xab, 0x44, 0xe0, 0x84, 0xc6, 0xf0, 0x29, 0x2a, 0xf4, 0xf4, 0x29, 0xfa, + 0x97, 0x16, 0xcc, 0xa4, 0x1b, 0x71, 0x02, 0x12, 0x70, 0xcd, 0x94, 0x80, 0x1f, 0xee, 0x67, 0x2c, + 0x73, 0x84, 0xdf, 0x8f, 0x26, 0xe0, 0xbe, 0x9c, 0xf7, 0x22, 0xf6, 0x60, 0xba, 0x59, 0x27, 0x66, + 0xf8, 0xa2, 0xf8, 0x98, 0xcc, 0x48, 0xcf, 0xae, 0xb1, 0x8e, 0xfc, 0x20, 0xdb, 0x41, 0x82, 0x3b, + 0xab, 0x40, 0x5f, 0xb0, 0x60, 0xc6, 0xb9, 0x15, 0x75, 0xbc, 0xdf, 0x24, 0xe6, 0xcc, 0x73, 0x99, + 0xf6, 0xd5, 0x1e, 0xef, 0x3d, 0xb1, 0x10, 0xa3, 0x99, 0x2c, 0x2a, 0x9c, 0x59, 0x17, 0xc2, 0x22, + 0x2f, 0x24, 0xd5, 0x93, 0xbb, 0x04, 0xd8, 0x66, 0x85, 0x3f, 0x71, 0x59, 0x28, 0x31, 0x58, 0xf1, + 0x41, 0x37, 0xa0, 0xd4, 0x94, 0x31, 0x89, 0x42, 0xd6, 0x66, 0x6e, 0x5e, 0x99, 0x81, 0x8b, 0x3c, + 0xe6, 0x43, 0xa1, 0x70, 0xc2, 0x0a, 0xbd, 0x02, 0x45, 0x7f, 0x2b, 0xea, 0xf6, 0x60, 0x46, 0xca, + 0x07, 0x8f, 0x47, 0x4a, 0x5f, 0x5d, 0xad, 0x61, 0x5a, 0x10, 0x5d, 0x82, 0x62, 0xb8, 0xd9, 0x10, + 0x57, 0x02, 0x99, 0xfa, 0x24, 0x5e, 0xaa, 0x64, 0x4f, 0x12, 0xce, 0x09, 0x2f, 0x55, 0x30, 0x65, + 0x81, 0x56, 0x61, 0x90, 0x05, 0x3b, 0x09, 0xcb, 0x7f, 0x66, 0xce, 0x87, 0x8e, 0x40, 0x2e, 0x1e, + 0x44, 0xcd, 0xc0, 0x98, 0x17, 0x47, 0xaf, 0xc2, 0x50, 0x9d, 0xbd, 0x24, 0x21, 0xcc, 0x34, 0xd9, + 0x79, 0x4c, 0x3a, 0xde, 0x9a, 0xe0, 0xf7, 0x9d, 0x1c, 0x8e, 0x05, 0x07, 0xb4, 0x01, 0x43, 0x75, + 0xd2, 0xda, 0xde, 0x8a, 0x84, 0xf5, 0xe5, 0xa3, 0x99, 0xbc, 0xba, 0x3c, 0x9c, 0x22, 0xb8, 0x32, + 0x0a, 0x2c, 0x78, 0xa1, 0x4f, 0x40, 0x61, 0xab, 0x2e, 0xe2, 0x9e, 0x32, 0x2d, 0xfe, 0x66, 0x60, + 0xfb, 0xd2, 0xd0, 0x9d, 0x83, 0xb9, 0xc2, 0xea, 0x32, 0x2e, 0x6c, 0xd5, 0xd1, 0x55, 0x18, 0xde, + 0xe2, 0xd1, 0xc9, 0x22, 0xe3, 0xef, 0x63, 0xd9, 0x81, 0xd3, 0x1d, 0x01, 0xcc, 0x3c, 0x5e, 0x47, + 0x20, 0xb0, 0x64, 0x82, 0x36, 0x00, 0xb6, 0x54, 0x94, 0xb5, 0x48, 0xf9, 0xfb, 0xe1, 0x7e, 0x62, + 0xb1, 0x85, 0x29, 0x42, 0x41, 0xb1, 0xc6, 0x07, 0x7d, 0x0e, 0x4a, 0x8e, 0x7c, 0x1b, 0x88, 0xa5, + 0xfb, 0x35, 0x35, 0x83, 0x64, 0xe9, 0x75, 0x7f, 0x36, 0x89, 0xcf, 0x5b, 0x45, 0x84, 0x13, 0xa6, + 0x68, 0x07, 0xc6, 0xf7, 0xa2, 0xd6, 0x36, 0x91, 0x4b, 0x95, 0xe5, 0x00, 0xce, 0xd9, 0x9a, 0x6e, + 0x08, 0x42, 0x37, 0x8c, 0xdb, 0x8e, 0xd7, 0x21, 0x5d, 0x58, 0x70, 0xd7, 0x0d, 0x9d, 0x19, 0x36, + 0x79, 0xd3, 0x4e, 0x7f, 0xa7, 0x1d, 0x6c, 0xee, 0xc7, 0x44, 0x64, 0x06, 0xce, 0xec, 0xf4, 0xd7, + 0x38, 0x49, 0x67, 0xa7, 0x0b, 0x04, 0x96, 0x4c, 0xe8, 0x62, 0x76, 0xe4, 0xbb, 0x5b, 0xc2, 0xde, + 0xf2, 0x78, 0x6e, 0xf7, 0x74, 0xb4, 0x37, 0xe9, 0x14, 0x26, 0x05, 0x13, 0x56, 0x4c, 0xfa, 0xb5, + 0xb6, 0x83, 0x38, 0xf0, 0x53, 0x92, 0x77, 0x3a, 0x5f, 0xfa, 0x55, 0x33, 0xe8, 0x3b, 0xa5, 0x5f, + 0x16, 0x15, 0xce, 0xac, 0x0b, 0x35, 0x60, 0xa2, 0x15, 0x84, 0xf1, 0xad, 0x20, 0x94, 0xb3, 0x0a, + 0x75, 0x39, 0x88, 0x1b, 0x94, 0xa2, 0x46, 0xe6, 0xab, 0x6d, 0x62, 0x70, 0x8a, 0x27, 0x1d, 0x92, + 0xa8, 0xee, 0x78, 0x64, 0xed, 0x5a, 0xf9, 0x54, 0xfe, 0x90, 0xd4, 0x38, 0x49, 0xe7, 0x90, 0x08, + 0x04, 0x96, 0x4c, 0xa8, 0xf4, 0x61, 0x49, 0xe6, 0x59, 0x2a, 0xe3, 0x1c, 0xe9, 0xd3, 0xe1, 0xc5, + 0xcc, 0xa5, 0x0f, 0x03, 0x63, 0x5e, 0x9c, 0xce, 0x7c, 0xa1, 0x85, 0x06, 0x51, 0xf9, 0x74, 0xfe, + 0xcc, 0x17, 0xca, 0xeb, 0xb5, 0x5a, 0xb7, 0x99, 0xaf, 0x88, 0x70, 0xc2, 0xd4, 0xfe, 0xd6, 0x50, + 0xa7, 0xde, 0xc0, 0x4e, 0x1b, 0x5f, 0xb4, 0x3a, 0xae, 0xe2, 0x3f, 0xd6, 0xaf, 0xf1, 0xe3, 0x18, + 0x35, 0xc6, 0x2f, 0x58, 0x70, 0x5f, 0x2b, 0xf3, 0xa3, 0xc4, 0x26, 0xdc, 0x9f, 0x0d, 0x85, 0x77, + 0x83, 0x4a, 0x12, 0x9e, 0x8d, 0xc7, 0x39, 0x35, 0xa5, 0xb5, 0xf2, 0xe2, 0x7b, 0xd6, 0xca, 0xd7, + 0x61, 0x84, 0x29, 0x7a, 0x49, 0x52, 0xa2, 0xbe, 0x1c, 0xda, 0xd8, 0x76, 0xbe, 0x2c, 0x0a, 0x62, + 0xc5, 0x02, 0xfd, 0xa2, 0x05, 0x0f, 0xa5, 0x9b, 0x8e, 0x09, 0x43, 0x8b, 0x04, 0x97, 0xfc, 0xa0, + 0xb3, 0x2a, 0xbe, 0xff, 0xa1, 0x6a, 0x37, 0xe2, 0xc3, 0x5e, 0x04, 0xb8, 0x7b, 0x65, 0xa8, 0x92, + 0x71, 0xd2, 0x1a, 0x32, 0x6f, 0xea, 0x7a, 0x9f, 0xb6, 0xd0, 0x73, 0x30, 0xb6, 0x1b, 0xb4, 0x7d, + 0x19, 0x6d, 0x22, 0x62, 0x89, 0x99, 0x55, 0x78, 0x5d, 0x83, 0x63, 0x83, 0xea, 0x64, 0x35, 0xff, + 0x6f, 0x58, 0x19, 0x2a, 0x2b, 0x3f, 0x0b, 0xbe, 0x6c, 0x9e, 0x05, 0x1f, 0x4d, 0x9f, 0x05, 0x3b, + 0x6c, 0x76, 0xc6, 0x31, 0xb0, 0xff, 0xc4, 0xbd, 0xfd, 0x66, 0x6d, 0xb2, 0x3d, 0x38, 0xd7, 0x4b, + 0x38, 0x33, 0xa7, 0xbe, 0x86, 0xba, 0xed, 0x4e, 0x9c, 0xfa, 0x1a, 0x6b, 0x15, 0xcc, 0x30, 0xfd, + 0xe6, 0xff, 0xb0, 0xff, 0xbb, 0x05, 0xc5, 0x6a, 0xd0, 0x38, 0x01, 0x1b, 0xe4, 0x27, 0x0d, 0x1b, + 0xe4, 0x03, 0x39, 0xaf, 0x78, 0xe6, 0x5a, 0x1c, 0x57, 0x52, 0x16, 0xc7, 0x87, 0xf2, 0x18, 0x74, + 0xb7, 0x2f, 0xfe, 0xbd, 0x22, 0xe8, 0x6f, 0x8e, 0xa2, 0x7f, 0x7d, 0x37, 0xde, 0xe1, 0xc5, 0x6e, + 0xcf, 0x90, 0x0a, 0xce, 0xcc, 0x17, 0x50, 0x06, 0x9e, 0xfe, 0x84, 0x39, 0x89, 0xdf, 0x24, 0x6e, + 0x73, 0x3b, 0x26, 0x8d, 0xf4, 0xe7, 0x9c, 0x9c, 0x93, 0xf8, 0x7f, 0xb1, 0x60, 0x32, 0x55, 0x3b, + 0xf2, 0xb2, 0xa2, 0xd8, 0xee, 0xd2, 0xf6, 0x34, 0xdd, 0x33, 0xec, 0x6d, 0x1e, 0x40, 0x5d, 0xf0, + 0x48, 0xfb, 0x0e, 0xd3, 0x7d, 0xd5, 0x0d, 0x50, 0x84, 0x35, 0x0a, 0xf4, 0x3c, 0x8c, 0xc6, 0x41, + 0x2b, 0xf0, 0x82, 0xe6, 0xfe, 0x65, 0x22, 0x33, 0xce, 0xa8, 0x6b, 0xb8, 0x8d, 0x04, 0x85, 0x75, + 0x3a, 0xfb, 0xd7, 0x8a, 0x90, 0x7e, 0xa7, 0xf6, 0x67, 0x73, 0xf2, 0x83, 0x39, 0x27, 0xbf, 0x67, + 0xc1, 0x14, 0xad, 0x9d, 0xf9, 0x59, 0x49, 0xf7, 0x6a, 0xf5, 0xc2, 0x87, 0xd5, 0xe5, 0x85, 0x8f, + 0x47, 0xa9, 0xec, 0x6a, 0x04, 0xed, 0x58, 0xd8, 0x87, 0x34, 0xe1, 0x44, 0xa1, 0x58, 0x60, 0x05, + 0x1d, 0x09, 0x43, 0x11, 0x9b, 0xa6, 0xd3, 0x91, 0x30, 0xc4, 0x02, 0x2b, 0x1f, 0x00, 0x19, 0xc8, + 0x79, 0x00, 0x84, 0x25, 0x6b, 0x13, 0xbe, 0x3d, 0x42, 0xa1, 0xd0, 0x92, 0xb5, 0x49, 0xa7, 0x9f, + 0x84, 0xc6, 0xfe, 0x66, 0x11, 0xc6, 0xaa, 0x41, 0x23, 0xb9, 0x62, 0x79, 0xce, 0xb8, 0x62, 0x39, + 0x97, 0xba, 0x62, 0x99, 0xd2, 0x69, 0x7f, 0x76, 0xa1, 0xf2, 0x7e, 0x5d, 0xa8, 0xfc, 0x99, 0x05, + 0x13, 0xd5, 0xa0, 0x41, 0x27, 0xe8, 0x4f, 0xd3, 0x6c, 0xd4, 0x53, 0x01, 0x0e, 0x75, 0x49, 0x05, + 0xf8, 0xf7, 0x2d, 0x18, 0xae, 0x06, 0x8d, 0x13, 0xb0, 0x9d, 0xbe, 0x6c, 0xda, 0x4e, 0xef, 0xcf, + 0x91, 0xb2, 0x39, 0xe6, 0xd2, 0xdf, 0x2a, 0xc2, 0x38, 0x6d, 0x67, 0xd0, 0x94, 0xa3, 0x64, 0xf4, + 0x88, 0xd5, 0x47, 0x8f, 0x50, 0x65, 0x2e, 0xf0, 0xbc, 0xe0, 0x56, 0x7a, 0xc4, 0x56, 0x19, 0x14, + 0x0b, 0x2c, 0x7a, 0x0a, 0x46, 0x5a, 0x21, 0xd9, 0x73, 0x83, 0x76, 0x94, 0x8e, 0x6e, 0xad, 0x0a, + 0x38, 0x56, 0x14, 0x54, 0x6f, 0x8f, 0x5c, 0xbf, 0x4e, 0xa4, 0xbf, 0xcf, 0x00, 0xf3, 0xf7, 0xe1, + 0xd9, 0x54, 0x35, 0x38, 0x36, 0xa8, 0xd0, 0x4d, 0x28, 0xb1, 0xff, 0x6c, 0xdd, 0x1c, 0xfd, 0x7d, + 0x0f, 0x91, 0xc2, 0x5c, 0x30, 0xc0, 0x09, 0x2f, 0x74, 0x01, 0x20, 0x96, 0x9e, 0x49, 0x91, 0x08, + 0xbe, 0x56, 0x1a, 0xa5, 0xf2, 0x59, 0x8a, 0xb0, 0x46, 0x85, 0x9e, 0x84, 0x52, 0xec, 0xb8, 0xde, + 0x15, 0xd7, 0x27, 0x91, 0xf0, 0xec, 0x12, 0x19, 0xca, 0x05, 0x10, 0x27, 0x78, 0xba, 0xa3, 0xb3, + 0xd0, 0x7e, 0xfe, 0x3a, 0xd0, 0x08, 0xa3, 0x66, 0x3b, 0xfa, 0x15, 0x05, 0xc5, 0x1a, 0x85, 0xfd, + 0x22, 0x9c, 0xae, 0x06, 0x8d, 0x6a, 0x10, 0xc6, 0xab, 0x41, 0x78, 0xcb, 0x09, 0x1b, 0x72, 0xfc, + 0xe6, 0x64, 0xb2, 0x6c, 0xba, 0xeb, 0x0e, 0x72, 0x6b, 0x80, 0x91, 0x06, 0xfb, 0x59, 0xb6, 0xa7, + 0x1f, 0x31, 0x0c, 0xe7, 0xdf, 0x15, 0x00, 0x55, 0x99, 0xef, 0x94, 0xf1, 0x84, 0xd4, 0x5b, 0x30, + 0x11, 0x91, 0x2b, 0xae, 0xdf, 0xbe, 0x2d, 0xcf, 0x57, 0x5d, 0x62, 0x9c, 0x6a, 0x2b, 0x3a, 0x25, + 0xb7, 0xa8, 0x98, 0x30, 0x9c, 0xe2, 0x46, 0xbb, 0x30, 0x6c, 0xfb, 0x8b, 0xd1, 0xf5, 0x88, 0x84, + 0xe2, 0xc9, 0x24, 0xd6, 0x85, 0x58, 0x02, 0x71, 0x82, 0xa7, 0x53, 0x86, 0xfd, 0xb9, 0x1a, 0xf8, + 0x38, 0x08, 0x62, 0x39, 0xc9, 0xd8, 0xa3, 0x1b, 0x1a, 0x1c, 0x1b, 0x54, 0x68, 0x15, 0x50, 0xd4, + 0x6e, 0xb5, 0x3c, 0x76, 0x21, 0xe9, 0x78, 0x17, 0xc3, 0xa0, 0xdd, 0xe2, 0x97, 0x4a, 0xe2, 0xbd, + 0x8a, 0x5a, 0x07, 0x16, 0x67, 0x94, 0xa0, 0x82, 0x61, 0x2b, 0x62, 0xbf, 0x45, 0x74, 0x3f, 0xb7, + 0x6d, 0xd6, 0x18, 0x08, 0x4b, 0x9c, 0xfd, 0x79, 0xb6, 0x99, 0xb1, 0x97, 0x6e, 0xe2, 0x76, 0x48, + 0xd0, 0x2e, 0x8c, 0xb7, 0xd8, 0x86, 0x15, 0x87, 0x81, 0xe7, 0x11, 0xa9, 0x37, 0xde, 0x9d, 0x1f, + 0x17, 0x7f, 0xf9, 0x42, 0x67, 0x87, 0x4d, 0xee, 0xf6, 0x17, 0x27, 0x99, 0x5c, 0xaa, 0xf1, 0x43, + 0xcb, 0xb0, 0xf0, 0xce, 0x16, 0x1a, 0xda, 0x6c, 0xfe, 0xcb, 0x72, 0x89, 0xa4, 0x17, 0x1e, 0xde, + 0x58, 0x96, 0x45, 0xaf, 0xb1, 0xdb, 0x38, 0x2e, 0x0c, 0x7a, 0xbd, 0x69, 0xc9, 0xa9, 0x8c, 0x8b, + 0x37, 0x51, 0x10, 0x6b, 0x4c, 0xd0, 0x15, 0x18, 0x17, 0x0f, 0xa3, 0x08, 0xc3, 0x43, 0xd1, 0x38, + 0xfe, 0x8e, 0x63, 0x1d, 0x79, 0x98, 0x06, 0x60, 0xb3, 0x30, 0x6a, 0xc2, 0x43, 0xda, 0x33, 0x5e, + 0x19, 0xbe, 0x84, 0x5c, 0xb6, 0x3c, 0x7c, 0xe7, 0x60, 0xee, 0xa1, 0x8d, 0x6e, 0x84, 0xb8, 0x3b, + 0x1f, 0x74, 0x0d, 0x4e, 0x3b, 0xf5, 0xd8, 0xdd, 0x23, 0x15, 0xe2, 0x34, 0x3c, 0xd7, 0x27, 0x66, + 0xba, 0x87, 0x33, 0x77, 0x0e, 0xe6, 0x4e, 0x2f, 0x66, 0x11, 0xe0, 0xec, 0x72, 0xe8, 0x65, 0x28, + 0x35, 0xfc, 0x48, 0xf4, 0xc1, 0x90, 0xf1, 0x42, 0x5d, 0xa9, 0x72, 0xb5, 0xa6, 0xbe, 0x3f, 0xf9, + 0x83, 0x93, 0x02, 0xa8, 0x09, 0x63, 0x7a, 0x48, 0x97, 0x78, 0xdd, 0xf0, 0xe9, 0x2e, 0x67, 0x5b, + 0x23, 0x0e, 0x8a, 0x5b, 0xdd, 0x94, 0xa7, 0xae, 0x11, 0x22, 0x65, 0x30, 0x46, 0xaf, 0x02, 0x8a, + 0x48, 0xb8, 0xe7, 0xd6, 0xc9, 0x62, 0x9d, 0xa5, 0x1b, 0x66, 0xb6, 0x9a, 0x11, 0x23, 0xec, 0x04, + 0xd5, 0x3a, 0x28, 0x70, 0x46, 0x29, 0x74, 0x89, 0x4a, 0x14, 0x1d, 0x2a, 0x1c, 0xab, 0xa5, 0x9a, + 0x57, 0xae, 0x90, 0x56, 0x48, 0xea, 0x4e, 0x4c, 0x1a, 0x26, 0x47, 0x9c, 0x2a, 0x47, 0xf7, 0x1b, + 0xf5, 0x8a, 0x03, 0x98, 0xee, 0xc0, 0x9d, 0x2f, 0x39, 0xd0, 0x13, 0xd2, 0x76, 0x10, 0xc5, 0x57, + 0x49, 0x7c, 0x2b, 0x08, 0x77, 0x44, 0x8e, 0xb6, 0x24, 0x85, 0x63, 0x82, 0xc2, 0x3a, 0x1d, 0xd5, + 0x88, 0xd8, 0x75, 0xd8, 0x5a, 0x85, 0xdd, 0x53, 0x8c, 0x24, 0xeb, 0xe4, 0x12, 0x07, 0x63, 0x89, + 0x97, 0xa4, 0x6b, 0xd5, 0x65, 0x76, 0xfb, 0x90, 0x22, 0x5d, 0xab, 0x2e, 0x63, 0x89, 0x47, 0xa4, + 0xf3, 0xf5, 0xbf, 0x89, 0xfc, 0x7b, 0xa3, 0x4e, 0xb9, 0xdc, 0xe7, 0x03, 0x80, 0x3e, 0x4c, 0xa9, + 0x77, 0x07, 0x79, 0xf2, 0xba, 0xa8, 0x3c, 0xc9, 0x26, 0x49, 0xff, 0x99, 0xef, 0x94, 0x2d, 0x6e, + 0x2d, 0xc5, 0x09, 0x77, 0xf0, 0x36, 0xd2, 0x88, 0x4c, 0xf5, 0x7c, 0x85, 0x63, 0x01, 0x4a, 0x51, + 0x7b, 0xb3, 0x11, 0xec, 0x3a, 0xae, 0xcf, 0x2e, 0x0b, 0x34, 0x45, 0xa4, 0x26, 0x11, 0x38, 0xa1, + 0x41, 0xab, 0x30, 0xe2, 0x88, 0xc3, 0x97, 0x30, 0xef, 0x67, 0xe6, 0x15, 0x90, 0x07, 0x34, 0x6e, + 0x07, 0x95, 0xff, 0xb0, 0x2a, 0x8b, 0x5e, 0x82, 0x71, 0x11, 0xfa, 0x26, 0xbc, 0x56, 0x4f, 0x99, + 0x51, 0x12, 0x35, 0x1d, 0x89, 0x4d, 0x5a, 0xf4, 0x73, 0x30, 0x41, 0xb9, 0x24, 0x82, 0xad, 0x3c, + 0xd3, 0x8f, 0x44, 0xd4, 0xb2, 0xab, 0xeb, 0x85, 0x71, 0x8a, 0x19, 0x6a, 0xc0, 0x83, 0x4e, 0x3b, + 0x0e, 0x98, 0xb1, 0xd2, 0x9c, 0xff, 0x1b, 0xc1, 0x0e, 0xf1, 0x99, 0x75, 0x7f, 0x64, 0xe9, 0xdc, + 0x9d, 0x83, 0xb9, 0x07, 0x17, 0xbb, 0xd0, 0xe1, 0xae, 0x5c, 0xd0, 0x75, 0x18, 0x8d, 0x03, 0x4f, + 0xb8, 0x9b, 0x47, 0xe5, 0xfb, 0xf2, 0xd3, 0x20, 0x6d, 0x28, 0x32, 0xdd, 0x9c, 0xa0, 0x8a, 0x62, + 0x9d, 0x0f, 0xda, 0xe0, 0x6b, 0x8c, 0x25, 0xed, 0x24, 0x51, 0xf9, 0xfe, 0xfc, 0x8e, 0x51, 0xb9, + 0x3d, 0xcd, 0x25, 0x28, 0x4a, 0x62, 0x9d, 0x0d, 0xba, 0x08, 0xd3, 0xad, 0xd0, 0x0d, 0xd8, 0xc4, + 0x56, 0x86, 0xe2, 0xb2, 0x91, 0x20, 0x6f, 0xba, 0x9a, 0x26, 0xc0, 0x9d, 0x65, 0xd0, 0x79, 0xaa, + 0xa0, 0x72, 0x60, 0xf9, 0x0c, 0x7f, 0x9d, 0x85, 0x2b, 0xa7, 0x1c, 0x86, 0x15, 0x76, 0xf6, 0x53, + 0x30, 0xdd, 0x21, 0x29, 0x8f, 0xe4, 0xfa, 0xfb, 0x4f, 0x06, 0xa1, 0xa4, 0xcc, 0x81, 0x68, 0xc1, + 0xb4, 0xf2, 0x9e, 0x49, 0x5b, 0x79, 0x47, 0xa8, 0xbe, 0xa6, 0x1b, 0x76, 0x37, 0x32, 0x1e, 0x97, + 0x3f, 0x97, 0x23, 0x1a, 0xfa, 0x8f, 0xd3, 0x3b, 0xc2, 0xc3, 0xfb, 0xc9, 0x81, 0x71, 0xa0, 0xeb, + 0x81, 0xb1, 0xcf, 0x87, 0x1e, 0xe9, 0xd1, 0xb0, 0x15, 0x34, 0xd6, 0xaa, 0xe9, 0x97, 0xcf, 0xaa, + 0x14, 0x88, 0x39, 0x8e, 0x29, 0xf7, 0x74, 0x5b, 0x67, 0xca, 0xfd, 0xf0, 0x5d, 0x2a, 0xf7, 0x92, + 0x01, 0x4e, 0x78, 0x21, 0x0f, 0xa6, 0xeb, 0xe6, 0xa3, 0x75, 0x2a, 0x36, 0xef, 0x91, 0x9e, 0xcf, + 0xc7, 0xb5, 0xb5, 0xd7, 0x6c, 0x96, 0xd3, 0x5c, 0x70, 0x27, 0x63, 0xf4, 0x12, 0x8c, 0xbc, 0x13, + 0x44, 0x6c, 0xda, 0x89, 0xbd, 0x4d, 0x46, 0x43, 0x8d, 0xbc, 0x76, 0xad, 0xc6, 0xe0, 0x87, 0x07, + 0x73, 0xa3, 0xd5, 0xa0, 0x21, 0xff, 0x62, 0x55, 0x00, 0xdd, 0x86, 0xd3, 0x86, 0x44, 0x50, 0xcd, + 0x85, 0xfe, 0x9b, 0xfb, 0x90, 0xa8, 0xee, 0xf4, 0x5a, 0x16, 0x27, 0x9c, 0x5d, 0x81, 0xfd, 0x2d, + 0x6e, 0xf4, 0x14, 0xa6, 0x11, 0x12, 0xb5, 0xbd, 0x93, 0x78, 0xb2, 0x62, 0xc5, 0xb0, 0xda, 0xdc, + 0xb5, 0x61, 0xfd, 0xf7, 0x2d, 0x66, 0x58, 0xdf, 0x20, 0xbb, 0x2d, 0xcf, 0x89, 0x4f, 0xc2, 0xe1, + 0xfb, 0x35, 0x18, 0x89, 0x45, 0x6d, 0xdd, 0x5e, 0xd9, 0xd0, 0x1a, 0xc5, 0x2e, 0x17, 0xd4, 0x86, + 0x28, 0xa1, 0x58, 0xb1, 0xb1, 0xff, 0x19, 0x1f, 0x01, 0x89, 0x39, 0x01, 0xdb, 0x42, 0xc5, 0xb4, + 0x2d, 0xcc, 0xf5, 0xf8, 0x82, 0x1c, 0x1b, 0xc3, 0x3f, 0x35, 0xdb, 0xcd, 0xce, 0x1e, 0x1f, 0xf4, + 0x1b, 0x1d, 0xfb, 0x97, 0x2d, 0x98, 0xc9, 0x72, 0x04, 0xa0, 0x4a, 0x0c, 0x3f, 0xf9, 0xa8, 0x1b, + 0x2e, 0xd5, 0x83, 0x37, 0x04, 0x1c, 0x2b, 0x8a, 0xbe, 0x33, 0xdd, 0x1f, 0x2d, 0xf5, 0xd7, 0x35, + 0x30, 0xdf, 0x37, 0x44, 0xaf, 0xf0, 0x08, 0x0e, 0x4b, 0x3d, 0x40, 0x78, 0xb4, 0xe8, 0x0d, 0xfb, + 0xd7, 0x0b, 0x30, 0xc3, 0x4d, 0xd4, 0x8b, 0x7b, 0x81, 0xdb, 0xa8, 0x06, 0x0d, 0x11, 0xcf, 0xf2, + 0x06, 0x8c, 0xb5, 0xb4, 0xe3, 0x6a, 0xb7, 0xe4, 0x43, 0xfa, 0xb1, 0x36, 0x39, 0x36, 0xe8, 0x50, + 0x6c, 0xf0, 0x42, 0x0d, 0x18, 0x23, 0x7b, 0x6e, 0x5d, 0xd9, 0x39, 0x0b, 0x47, 0x16, 0xe9, 0xaa, + 0x96, 0x15, 0x8d, 0x0f, 0x36, 0xb8, 0xde, 0x83, 0xf7, 0x68, 0xec, 0xaf, 0x59, 0x70, 0x7f, 0x4e, + 0xaa, 0x22, 0x5a, 0xdd, 0x2d, 0x76, 0x19, 0x20, 0x1e, 0xcb, 0x54, 0xd5, 0xf1, 0x2b, 0x02, 0x2c, + 0xb0, 0xe8, 0x33, 0x00, 0xdc, 0xc4, 0x4f, 0xb5, 0x68, 0xf1, 0xe9, 0xfd, 0xa5, 0xf0, 0xd0, 0xf2, + 0x3c, 0xc8, 0xf2, 0x58, 0xe3, 0x65, 0xff, 0x6a, 0x11, 0x06, 0xf9, 0xcb, 0xe9, 0xab, 0x30, 0xbc, + 0xcd, 0x13, 0x23, 0xf7, 0x93, 0x83, 0x39, 0x39, 0x8e, 0x70, 0x00, 0x96, 0x85, 0xd1, 0x3a, 0x9c, + 0x12, 0x31, 0x53, 0x15, 0xe2, 0x39, 0xfb, 0xf2, 0x54, 0xcb, 0x1f, 0x29, 0x91, 0x09, 0xf4, 0x4f, + 0xad, 0x75, 0x92, 0xe0, 0xac, 0x72, 0xe8, 0x95, 0x8e, 0x74, 0x88, 0x3c, 0xa5, 0xb4, 0xd2, 0x81, + 0x7b, 0xa4, 0x44, 0x7c, 0x09, 0xc6, 0x5b, 0x1d, 0xe7, 0x77, 0xed, 0xd1, 0x6a, 0xf3, 0xcc, 0x6e, + 0xd2, 0x32, 0xaf, 0x82, 0x36, 0xf3, 0xa1, 0xd8, 0xd8, 0x0e, 0x49, 0xb4, 0x1d, 0x78, 0x0d, 0xf1, + 0x42, 0x6b, 0xe2, 0x55, 0x90, 0xc2, 0xe3, 0x8e, 0x12, 0x94, 0xcb, 0x96, 0xe3, 0x7a, 0xed, 0x90, + 0x24, 0x5c, 0x86, 0x4c, 0x2e, 0xab, 0x29, 0x3c, 0xee, 0x28, 0x41, 0xe7, 0xd1, 0x69, 0xf1, 0xbc, + 0xa7, 0x8c, 0xa4, 0x57, 0xae, 0x22, 0xc3, 0xd2, 0xa3, 0xbe, 0x4b, 0x76, 0x17, 0x71, 0xe5, 0xaf, + 0x1e, 0x08, 0xd5, 0x1e, 0x8f, 0x13, 0xbe, 0xf4, 0x92, 0xcb, 0xdd, 0x3c, 0x32, 0xf9, 0x27, 0x16, + 0x9c, 0xca, 0x70, 0x1f, 0xe3, 0xa2, 0xaa, 0xe9, 0x46, 0xb1, 0x7a, 0x1b, 0x43, 0x13, 0x55, 0x1c, + 0x8e, 0x15, 0x05, 0x5d, 0x0f, 0x5c, 0x18, 0xa6, 0x05, 0xa0, 0x70, 0xf9, 0x10, 0xd8, 0xa3, 0x09, + 0x40, 0x74, 0x0e, 0x06, 0xda, 0x11, 0x09, 0xe5, 0xeb, 0x8c, 0x52, 0x7e, 0x33, 0x8b, 0x20, 0xc3, + 0x50, 0x8d, 0xb2, 0xa9, 0x8c, 0x71, 0x9a, 0x46, 0xc9, 0xcd, 0x71, 0x1c, 0x67, 0x7f, 0xa5, 0x08, + 0x67, 0x72, 0x5d, 0x41, 0x69, 0x93, 0x76, 0x03, 0xdf, 0x8d, 0x03, 0x95, 0x97, 0x8f, 0xa7, 0x21, + 0x21, 0xad, 0xed, 0x75, 0x01, 0xc7, 0x8a, 0x02, 0x3d, 0x2a, 0x1f, 0xef, 0x4d, 0xbf, 0xfe, 0xb1, + 0x54, 0x31, 0xde, 0xef, 0xed, 0xf7, 0x19, 0x9f, 0x47, 0x60, 0xa0, 0x15, 0xa8, 0x97, 0xd5, 0xd5, + 0xc8, 0xd2, 0xe6, 0x06, 0x81, 0x87, 0x19, 0x12, 0x7d, 0x44, 0xf4, 0x43, 0xea, 0xe6, 0x02, 0x3b, + 0x8d, 0x20, 0xd2, 0x3a, 0xe3, 0x71, 0x18, 0xde, 0x21, 0xfb, 0xa1, 0xeb, 0x37, 0xd3, 0xf7, 0x36, + 0x97, 0x39, 0x18, 0x4b, 0xbc, 0xf9, 0x32, 0xde, 0x70, 0xaf, 0x97, 0xf1, 0x8e, 0xfa, 0x08, 0xcf, + 0x48, 0xcf, 0xad, 0xed, 0xcb, 0x45, 0x98, 0xc4, 0x4b, 0x95, 0x9f, 0x0d, 0xc4, 0xf5, 0xce, 0x81, + 0x38, 0xee, 0x27, 0x91, 0x7a, 0x8f, 0xc6, 0x6f, 0x59, 0x30, 0xc9, 0x92, 0x11, 0x8b, 0x34, 0x1a, + 0x6e, 0xe0, 0x9f, 0x80, 0xea, 0xf6, 0x08, 0x0c, 0x86, 0xb4, 0xd2, 0xf4, 0x3b, 0x27, 0xac, 0x25, + 0x98, 0xe3, 0xd0, 0x83, 0x30, 0xc0, 0x9a, 0x40, 0x07, 0x6f, 0x8c, 0x3f, 0x47, 0x50, 0x71, 0x62, + 0x07, 0x33, 0x28, 0x8b, 0x67, 0xc4, 0xa4, 0xe5, 0xb9, 0xbc, 0xd1, 0x89, 0x05, 0xfc, 0x83, 0x11, + 0xcf, 0x98, 0xd9, 0xb4, 0xf7, 0x16, 0xcf, 0x98, 0xcd, 0xb2, 0xfb, 0xb1, 0xe8, 0x7f, 0x14, 0xe0, + 0x6c, 0x66, 0xb9, 0xbe, 0xe3, 0x19, 0xbb, 0x97, 0x3e, 0x9e, 0xeb, 0xf7, 0xec, 0x5b, 0xf1, 0xe2, + 0x09, 0xde, 0x8a, 0x0f, 0xf4, 0xab, 0x39, 0x0e, 0xf6, 0x11, 0x66, 0x98, 0xd9, 0x65, 0x1f, 0x90, + 0x30, 0xc3, 0xcc, 0xb6, 0xe5, 0x1c, 0xeb, 0x7e, 0x5c, 0xc8, 0xf9, 0x16, 0x76, 0xc0, 0x3b, 0x4f, + 0xe5, 0x0c, 0x43, 0x46, 0x42, 0x13, 0x1e, 0xe3, 0x32, 0x86, 0xc3, 0xb0, 0xc2, 0x22, 0x57, 0x0b, + 0xd8, 0xe3, 0x4d, 0x7b, 0xe9, 0x48, 0x4b, 0x66, 0xde, 0xbc, 0xb0, 0xd0, 0x73, 0x7e, 0xa4, 0x83, + 0xf7, 0xd6, 0xb5, 0x43, 0x79, 0xb1, 0xff, 0x43, 0xf9, 0x58, 0xf6, 0x81, 0x1c, 0x2d, 0xc2, 0xe4, + 0xae, 0xeb, 0xb3, 0xc7, 0x8a, 0x4d, 0x55, 0x54, 0xc5, 0xaf, 0xaf, 0x9b, 0x68, 0x9c, 0xa6, 0x9f, + 0x7d, 0x09, 0xc6, 0xef, 0xde, 0x8a, 0xf8, 0xbd, 0x22, 0x3c, 0xd0, 0x65, 0xd9, 0x73, 0x59, 0x6f, + 0x8c, 0x81, 0x26, 0xeb, 0x3b, 0xc6, 0xa1, 0x0a, 0x33, 0x5b, 0x6d, 0xcf, 0xdb, 0x67, 0x8e, 0x67, + 0xa4, 0x21, 0x29, 0x84, 0xae, 0xa8, 0x32, 0x8d, 0xaf, 0x66, 0xd0, 0xe0, 0xcc, 0x92, 0xe8, 0x55, + 0x40, 0xc1, 0x26, 0xcb, 0x7e, 0xdd, 0x48, 0x32, 0x99, 0xb0, 0x8e, 0x2f, 0x26, 0x8b, 0xf1, 0x5a, + 0x07, 0x05, 0xce, 0x28, 0x45, 0x95, 0x7e, 0xba, 0x2b, 0xed, 0xab, 0x66, 0xa5, 0x94, 0x7e, 0xac, + 0x23, 0xb1, 0x49, 0x8b, 0x2e, 0xc2, 0xb4, 0xb3, 0xe7, 0xb8, 0x3c, 0xb3, 0x9d, 0x64, 0xc0, 0xb5, + 0x7e, 0x65, 0xbb, 0x5b, 0x4c, 0x13, 0xe0, 0xce, 0x32, 0xa9, 0xc8, 0xc3, 0xa1, 0xfc, 0xc8, 0xc3, + 0xee, 0x72, 0xb1, 0x97, 0x29, 0xd6, 0xfe, 0x8f, 0x16, 0xdd, 0xbe, 0x32, 0x5e, 0xc7, 0xa5, 0xfd, + 0xa0, 0x4c, 0x8a, 0x5a, 0x10, 0xa0, 0xea, 0x87, 0x65, 0x1d, 0x89, 0x4d, 0x5a, 0x3e, 0x21, 0xa2, + 0xc4, 0xef, 0xdd, 0x50, 0xdd, 0x45, 0x74, 0xae, 0xa2, 0x40, 0xaf, 0xc3, 0x70, 0xc3, 0xdd, 0x73, + 0xa3, 0x20, 0x14, 0x8b, 0xe5, 0xa8, 0x2f, 0xc2, 0x2b, 0x39, 0x58, 0xe1, 0x6c, 0xb0, 0xe4, 0x67, + 0x7f, 0xb9, 0x00, 0xe3, 0xb2, 0xc6, 0xd7, 0xda, 0x41, 0xec, 0x9c, 0xc0, 0xb6, 0x7c, 0xd1, 0xd8, + 0x96, 0x3f, 0xd2, 0x2d, 0x44, 0x99, 0x35, 0x29, 0x77, 0x3b, 0xbe, 0x96, 0xda, 0x8e, 0x1f, 0xeb, + 0xcd, 0xaa, 0xfb, 0x36, 0xfc, 0xcf, 0x2d, 0x98, 0x36, 0xe8, 0x4f, 0x60, 0x37, 0x58, 0x35, 0x77, + 0x83, 0x87, 0x7b, 0x7e, 0x43, 0xce, 0x2e, 0xf0, 0x8d, 0x42, 0xaa, 0xed, 0x4c, 0xfa, 0xbf, 0x03, + 0x03, 0xdb, 0x4e, 0xd8, 0xe8, 0x96, 0x9f, 0xb5, 0xa3, 0xd0, 0xfc, 0x25, 0x27, 0x6c, 0x70, 0x19, + 0xfe, 0x94, 0x7a, 0xb8, 0xcf, 0x09, 0x1b, 0x3d, 0xc3, 0x3c, 0x58, 0x55, 0xe8, 0x45, 0x18, 0x8a, + 0xea, 0x41, 0x4b, 0xb9, 0xc3, 0x9e, 0xe3, 0x8f, 0xfa, 0x51, 0xc8, 0xe1, 0xc1, 0x1c, 0x32, 0xab, + 0xa3, 0x60, 0x2c, 0xe8, 0x67, 0x9b, 0x50, 0x52, 0x55, 0xdf, 0x53, 0x47, 0xff, 0x3f, 0x2a, 0xc2, + 0xa9, 0x8c, 0x79, 0x81, 0x22, 0xa3, 0xb7, 0x9e, 0xe9, 0x73, 0x3a, 0xbd, 0xc7, 0xfe, 0x8a, 0xd8, + 0x89, 0xa5, 0x21, 0xc6, 0xbf, 0xef, 0x4a, 0xaf, 0x47, 0x24, 0x5d, 0x29, 0x05, 0xf5, 0xae, 0x94, + 0x56, 0x76, 0x62, 0x5d, 0x4d, 0x2b, 0x52, 0x2d, 0xbd, 0xa7, 0x63, 0xfa, 0xa3, 0x22, 0xcc, 0x64, + 0x65, 0x36, 0x40, 0x3f, 0x9f, 0x7a, 0xed, 0xe5, 0xb9, 0x7e, 0x73, 0x22, 0xf0, 0x27, 0x60, 0x44, + 0x2a, 0xa8, 0x79, 0xf3, 0xfd, 0x97, 0x9e, 0xdd, 0x2c, 0xea, 0x64, 0x71, 0x57, 0x21, 0x7f, 0xa5, + 0x47, 0x2e, 0xf1, 0x8f, 0xf5, 0xdd, 0x00, 0xf1, 0xbc, 0x4f, 0x94, 0x8a, 0xbb, 0x92, 0xe0, 0xde, + 0x71, 0x57, 0xb2, 0xe6, 0x59, 0x17, 0x46, 0xb5, 0xaf, 0xb9, 0xa7, 0x23, 0xbe, 0x43, 0x77, 0x14, + 0xad, 0xdd, 0xf7, 0x74, 0xd4, 0xbf, 0x66, 0x41, 0xca, 0x75, 0x4d, 0x99, 0xa4, 0xac, 0x5c, 0x93, + 0xd4, 0x39, 0x18, 0x08, 0x03, 0x8f, 0xa4, 0x1f, 0x00, 0xc1, 0x81, 0x47, 0x30, 0xc3, 0xa8, 0x57, + 0xba, 0x8b, 0x79, 0xaf, 0x74, 0xd3, 0xa3, 0xb1, 0x47, 0xf6, 0x88, 0xb4, 0x46, 0x28, 0x99, 0x7c, + 0x85, 0x02, 0x31, 0xc7, 0xd9, 0xbf, 0x31, 0x00, 0xa7, 0x32, 0xa2, 0x0c, 0xe9, 0x41, 0xa5, 0xe9, + 0xc4, 0xe4, 0x96, 0xb3, 0x9f, 0x4e, 0x4a, 0x7c, 0x91, 0x83, 0xb1, 0xc4, 0x33, 0xf7, 0x5a, 0x9e, + 0xd7, 0x30, 0x65, 0xb6, 0x13, 0xe9, 0x0c, 0x05, 0xf6, 0x5e, 0x3d, 0xdc, 0x7c, 0x01, 0x20, 0x8a, + 0xbc, 0x15, 0x9f, 0x2a, 0x5f, 0x0d, 0xe1, 0xbc, 0x9b, 0x24, 0xc1, 0xac, 0x5d, 0x11, 0x18, 0xac, + 0x51, 0xa1, 0x0a, 0x4c, 0xb5, 0xc2, 0x20, 0xe6, 0xa6, 0xd0, 0x0a, 0x77, 0x1b, 0x19, 0x34, 0xe3, + 0xc5, 0xaa, 0x29, 0x3c, 0xee, 0x28, 0x81, 0x9e, 0x87, 0x51, 0x11, 0x43, 0x56, 0x0d, 0x02, 0x4f, + 0x58, 0x69, 0x94, 0x13, 0x42, 0x2d, 0x41, 0x61, 0x9d, 0x4e, 0x2b, 0xc6, 0xec, 0xab, 0xc3, 0x99, + 0xc5, 0xb8, 0x8d, 0x55, 0xa3, 0x4b, 0x25, 0x38, 0x19, 0xe9, 0x2b, 0xc1, 0x49, 0x62, 0xb7, 0x2a, + 0xf5, 0x7d, 0xa5, 0x04, 0x3d, 0x2d, 0x3d, 0xdf, 0x2a, 0xc2, 0x10, 0x1f, 0x8a, 0x13, 0x50, 0xc5, + 0x56, 0x85, 0xed, 0xa6, 0x4b, 0xba, 0x07, 0xde, 0x96, 0xf9, 0x8a, 0x13, 0x3b, 0x5c, 0x0c, 0xa9, + 0xd5, 0x90, 0x58, 0x79, 0xd0, 0xbc, 0xb1, 0x5e, 0x66, 0x53, 0xc6, 0x09, 0xe0, 0x3c, 0xb4, 0xd5, + 0xf3, 0x16, 0x40, 0xc4, 0x1e, 0x0f, 0xa6, 0x3c, 0x44, 0xe2, 0x90, 0x27, 0xba, 0xd4, 0x5e, 0x53, + 0xc4, 0xbc, 0x0d, 0xc9, 0x14, 0x54, 0x08, 0xac, 0x71, 0x9c, 0x7d, 0x01, 0x4a, 0x8a, 0xb8, 0xd7, + 0x49, 0x6e, 0x4c, 0x17, 0x5e, 0x9f, 0x84, 0xc9, 0x54, 0x5d, 0x47, 0x3a, 0x08, 0xfe, 0xb6, 0x05, + 0x93, 0xbc, 0xc9, 0x2b, 0xfe, 0x9e, 0x58, 0xec, 0xef, 0xc2, 0x8c, 0x97, 0xb1, 0xe8, 0xc4, 0x88, + 0xf6, 0xbf, 0x48, 0xd5, 0xc1, 0x2f, 0x0b, 0x8b, 0x33, 0xeb, 0xa0, 0x87, 0x7f, 0xfe, 0xec, 0xb9, + 0xe3, 0x09, 0xa7, 0xf0, 0x31, 0x9e, 0xf8, 0x9d, 0xc3, 0xb0, 0xc2, 0xda, 0xdf, 0xb7, 0x60, 0x9a, + 0xb7, 0xfc, 0x32, 0xd9, 0x57, 0x87, 0x9c, 0xf7, 0xb3, 0xed, 0x22, 0xaf, 0x7d, 0x21, 0x27, 0xaf, + 0xbd, 0xfe, 0x69, 0xc5, 0xae, 0x9f, 0xf6, 0xeb, 0x16, 0x88, 0x19, 0x78, 0x02, 0xea, 0xfc, 0xa7, + 0x4c, 0x75, 0x7e, 0x36, 0x7f, 0x52, 0xe7, 0xe8, 0xf1, 0x7f, 0x66, 0xc1, 0x14, 0x27, 0x48, 0xee, + 0x93, 0xde, 0xd7, 0x71, 0xe8, 0xe7, 0xb1, 0x25, 0xf5, 0xba, 0x6d, 0xf6, 0x47, 0x19, 0x83, 0x35, + 0xd0, 0x75, 0xb0, 0x1a, 0x72, 0x01, 0x1d, 0xe1, 0x11, 0xb1, 0x23, 0xa7, 0x62, 0xb4, 0xff, 0x9b, + 0x05, 0x88, 0x57, 0x93, 0x7e, 0x6f, 0x9e, 0x6f, 0x7d, 0xda, 0x81, 0x3e, 0x11, 0x35, 0x0a, 0x83, + 0x35, 0xaa, 0x63, 0xe9, 0x9e, 0xd4, 0xa5, 0x60, 0xb1, 0xf7, 0xa5, 0xe0, 0x11, 0x7a, 0xf4, 0xaf, + 0x0e, 0x40, 0xda, 0x03, 0x15, 0xdd, 0x80, 0xb1, 0xba, 0xd3, 0x72, 0x36, 0x5d, 0xcf, 0x8d, 0x5d, + 0x12, 0x75, 0xf3, 0x26, 0x58, 0xd6, 0xe8, 0xc4, 0x75, 0x8f, 0x06, 0xc1, 0x06, 0x1f, 0x34, 0x0f, + 0xd0, 0x0a, 0xdd, 0x3d, 0xd7, 0x23, 0x4d, 0x76, 0xa2, 0x61, 0x61, 0x28, 0xfc, 0x8a, 0x5c, 0x42, + 0xb1, 0x46, 0x91, 0x11, 0xb6, 0x50, 0xbc, 0x77, 0x61, 0x0b, 0x03, 0x47, 0x0c, 0x5b, 0x18, 0xec, + 0x2b, 0x6c, 0x01, 0xc3, 0x7d, 0x72, 0xef, 0xa6, 0xff, 0x57, 0x5d, 0x8f, 0x08, 0x85, 0x8d, 0x07, + 0xa7, 0xcc, 0xde, 0x39, 0x98, 0xbb, 0x0f, 0x67, 0x52, 0xe0, 0x9c, 0x92, 0xe8, 0x33, 0x50, 0x76, + 0x3c, 0x2f, 0xb8, 0xa5, 0x7a, 0x6d, 0x25, 0xaa, 0x3b, 0x5e, 0x92, 0x99, 0x78, 0x64, 0xe9, 0xc1, + 0x3b, 0x07, 0x73, 0xe5, 0xc5, 0x1c, 0x1a, 0x9c, 0x5b, 0xda, 0xde, 0x81, 0x53, 0x35, 0x12, 0xca, + 0x77, 0x09, 0xd5, 0x12, 0xdb, 0x80, 0x52, 0x98, 0x12, 0x2a, 0x7d, 0x65, 0x30, 0xd0, 0xb2, 0xc6, + 0x49, 0x21, 0x92, 0x30, 0xb2, 0xff, 0xd4, 0x82, 0x61, 0xe1, 0xd5, 0x7a, 0x02, 0xba, 0xcc, 0xa2, + 0x61, 0x56, 0x9a, 0xcb, 0x16, 0xbc, 0xac, 0x31, 0xb9, 0x06, 0xa5, 0xb5, 0x94, 0x41, 0xe9, 0xe1, + 0x6e, 0x4c, 0xba, 0x9b, 0x92, 0x7e, 0xa9, 0x08, 0x13, 0xa6, 0x47, 0xef, 0x09, 0x74, 0xc1, 0x55, + 0x18, 0x8e, 0x84, 0xfb, 0x78, 0x21, 0xdf, 0x0d, 0x31, 0x3d, 0x88, 0x89, 0xb3, 0x82, 0x70, 0x18, + 0x97, 0x4c, 0x32, 0xfd, 0xd2, 0x8b, 0xf7, 0xd0, 0x2f, 0xbd, 0x97, 0x53, 0xf5, 0xc0, 0x71, 0x38, + 0x55, 0xdb, 0xdf, 0x66, 0xc2, 0x5f, 0x87, 0x9f, 0x80, 0x5e, 0x70, 0xd1, 0xdc, 0x26, 0xec, 0x2e, + 0x33, 0x4b, 0x34, 0x2a, 0x47, 0x3f, 0xf8, 0x47, 0x16, 0x8c, 0x0a, 0xc2, 0x13, 0x68, 0xf6, 0xa7, + 0xcd, 0x66, 0x3f, 0xd0, 0xa5, 0xd9, 0x39, 0xed, 0xfd, 0xdb, 0x05, 0xd5, 0xde, 0x6a, 0x10, 0xc6, + 0x7d, 0x65, 0xaa, 0x1f, 0xa1, 0xa7, 0xc1, 0xa0, 0x1e, 0x78, 0x62, 0x33, 0x7f, 0x30, 0x89, 0x4f, + 0xe4, 0xf0, 0x43, 0xed, 0x37, 0x56, 0xd4, 0x2c, 0x7c, 0x2e, 0x08, 0x63, 0xb1, 0x81, 0x26, 0xe1, + 0x73, 0x41, 0x18, 0x63, 0x86, 0x41, 0x0d, 0x80, 0xd8, 0x09, 0x9b, 0x24, 0xa6, 0x30, 0x11, 0xd0, + 0x9b, 0xbf, 0x0a, 0xdb, 0xb1, 0xeb, 0xcd, 0xbb, 0x7e, 0x1c, 0xc5, 0xe1, 0xfc, 0x9a, 0x1f, 0x5f, + 0x0b, 0xf9, 0xd9, 0x40, 0x0b, 0x38, 0x54, 0xbc, 0xb0, 0xc6, 0x57, 0x46, 0xbc, 0xb0, 0x3a, 0x06, + 0xcd, 0xfb, 0x9e, 0xab, 0x02, 0x8e, 0x15, 0x85, 0xfd, 0x02, 0x93, 0xc9, 0xac, 0x83, 0x8e, 0x16, + 0x0b, 0xf8, 0xdd, 0x11, 0xd5, 0xb5, 0xcc, 0xd8, 0x5b, 0xd1, 0x23, 0x0e, 0xbb, 0x8b, 0x40, 0x5a, + 0xb1, 0xee, 0xdd, 0x9d, 0x84, 0x25, 0xa2, 0xcf, 0x76, 0x5c, 0x03, 0x3e, 0xdd, 0x43, 0x96, 0x1e, + 0xe1, 0xe2, 0x8f, 0xa5, 0x4d, 0x64, 0xe9, 0xe5, 0xd6, 0xaa, 0xe9, 0xb7, 0x04, 0x96, 0x25, 0x02, + 0x27, 0x34, 0x68, 0x41, 0x9c, 0x2c, 0xb9, 0x99, 0xe5, 0x81, 0xd4, 0xc9, 0x52, 0x7e, 0xbe, 0x76, + 0xb4, 0x7c, 0x06, 0x46, 0xd5, 0xfb, 0x4c, 0x55, 0xfe, 0xcc, 0x4d, 0x89, 0xeb, 0x52, 0x2b, 0x09, + 0x18, 0xeb, 0x34, 0x68, 0x03, 0x26, 0x23, 0xfe, 0x78, 0x94, 0x0c, 0x42, 0x11, 0x76, 0x83, 0x27, + 0xe4, 0xf5, 0x61, 0xcd, 0x44, 0x1f, 0x32, 0x10, 0x5f, 0xac, 0x32, 0x6c, 0x25, 0xcd, 0x02, 0xbd, + 0x02, 0x13, 0x9e, 0xfe, 0x88, 0x6e, 0x55, 0x98, 0x15, 0x94, 0x77, 0x9d, 0xf1, 0xc4, 0x6e, 0x15, + 0xa7, 0xa8, 0xa9, 0x12, 0xa0, 0x43, 0x44, 0x4e, 0x23, 0xc7, 0x6f, 0x92, 0x48, 0xbc, 0x2e, 0xc3, + 0x94, 0x80, 0x2b, 0x39, 0x34, 0x38, 0xb7, 0x34, 0x7a, 0x11, 0xc6, 0xe4, 0xe7, 0x6b, 0x41, 0x59, + 0x89, 0x0f, 0xa7, 0x86, 0xc3, 0x06, 0x25, 0xba, 0x05, 0xa7, 0xe5, 0xff, 0x8d, 0xd0, 0xd9, 0xda, + 0x72, 0xeb, 0x22, 0x26, 0x6e, 0x94, 0xb1, 0x58, 0x94, 0x0e, 0xed, 0x2b, 0x59, 0x44, 0x87, 0x07, + 0x73, 0xe7, 0x44, 0xaf, 0x65, 0xe2, 0xd9, 0x20, 0x66, 0xf3, 0x47, 0xeb, 0x70, 0x6a, 0x9b, 0x38, + 0x5e, 0xbc, 0xbd, 0xbc, 0x4d, 0xea, 0x3b, 0x72, 0x11, 0xb1, 0x50, 0x2f, 0xcd, 0xf3, 0xf1, 0x52, + 0x27, 0x09, 0xce, 0x2a, 0x87, 0xde, 0x84, 0x72, 0xab, 0xbd, 0xe9, 0xb9, 0xd1, 0xf6, 0xd5, 0x20, + 0x66, 0x37, 0x96, 0xea, 0x79, 0x23, 0x11, 0x13, 0xa6, 0xc2, 0xdc, 0xaa, 0x39, 0x74, 0x38, 0x97, + 0x03, 0x7a, 0x17, 0x4e, 0xa7, 0x26, 0x03, 0x7f, 0x31, 0x4b, 0xc4, 0x8e, 0x3d, 0x9e, 0xbd, 0x9c, + 0x32, 0x0a, 0xf0, 0x48, 0xc5, 0x4c, 0x14, 0xce, 0xae, 0xe2, 0xbd, 0xdd, 0x63, 0xbf, 0x43, 0x0b, + 0x6b, 0xda, 0x0d, 0xfa, 0x1c, 0x8c, 0xe9, 0xb3, 0x48, 0x6c, 0x30, 0x8f, 0xf6, 0x7a, 0x30, 0x5a, + 0xe8, 0x46, 0x6a, 0x46, 0xe9, 0x38, 0x6c, 0x70, 0xb4, 0x09, 0x64, 0x7f, 0x1f, 0xba, 0x02, 0x23, + 0x75, 0xcf, 0x25, 0x7e, 0xbc, 0x56, 0xed, 0x16, 0xcb, 0xbc, 0x2c, 0x68, 0x44, 0x87, 0x89, 0x94, + 0x5a, 0x1c, 0x86, 0x15, 0x07, 0xfb, 0xf7, 0x0a, 0x30, 0xd7, 0x23, 0xab, 0x5a, 0xca, 0x06, 0x68, + 0xf5, 0x65, 0x03, 0x5c, 0x94, 0x8f, 0x35, 0x5d, 0x4d, 0x9d, 0x3f, 0x53, 0x0f, 0x31, 0x25, 0xa7, + 0xd0, 0x34, 0x7d, 0xdf, 0xee, 0x6f, 0xba, 0x19, 0x71, 0xa0, 0xa7, 0x63, 0xa6, 0xe1, 0x3e, 0x38, + 0xd8, 0xbf, 0x46, 0x9f, 0x6b, 0x0a, 0xb6, 0xbf, 0x5d, 0x80, 0xd3, 0xaa, 0x0b, 0x7f, 0x7a, 0x3b, + 0xee, 0x7a, 0x67, 0xc7, 0x1d, 0x83, 0x21, 0xdd, 0xbe, 0x06, 0x43, 0xb5, 0xfd, 0xa8, 0x1e, 0x7b, + 0x7d, 0x28, 0x40, 0x8f, 0x18, 0x0b, 0x34, 0xd9, 0xa6, 0xd9, 0x7b, 0x8b, 0x62, 0xbd, 0xda, 0x7f, + 0xc9, 0x82, 0xc9, 0x8d, 0xe5, 0x6a, 0x2d, 0xa8, 0xef, 0x90, 0x78, 0x91, 0x9b, 0x89, 0xb0, 0xd0, + 0x7f, 0xac, 0xbb, 0xd4, 0x6b, 0xb2, 0x34, 0xa6, 0x73, 0x30, 0xb0, 0x1d, 0x44, 0x71, 0xfa, 0xb2, + 0xe4, 0x52, 0x10, 0xc5, 0x98, 0x61, 0xec, 0x3f, 0xb6, 0x60, 0x90, 0x3d, 0x31, 0xd8, 0xeb, 0x29, + 0xca, 0x7e, 0xbe, 0x0b, 0x3d, 0x0f, 0x43, 0x64, 0x6b, 0x8b, 0xd4, 0x63, 0x31, 0xaa, 0x32, 0x48, + 0x6a, 0x68, 0x85, 0x41, 0xe9, 0xa6, 0xcf, 0x2a, 0xe3, 0x7f, 0xb1, 0x20, 0x46, 0x37, 0xa1, 0x14, + 0xbb, 0xbb, 0x64, 0xb1, 0xd1, 0x10, 0xf7, 0x14, 0x77, 0x11, 0x93, 0xb6, 0x21, 0x19, 0xe0, 0x84, + 0x97, 0xfd, 0x95, 0x02, 0x40, 0x12, 0x48, 0xd9, 0xeb, 0x13, 0x97, 0x3a, 0x5e, 0xdb, 0x7c, 0x34, + 0xe3, 0xb5, 0x4d, 0x94, 0x30, 0xcc, 0x78, 0x6b, 0x53, 0x75, 0x53, 0xb1, 0xaf, 0x6e, 0x1a, 0x38, + 0x4a, 0x37, 0x2d, 0xc3, 0x74, 0x12, 0x08, 0x6a, 0x46, 0xc5, 0xb3, 0x3c, 0xca, 0x1b, 0x69, 0x24, + 0xee, 0xa4, 0xb7, 0xbf, 0x64, 0x81, 0xf0, 0x1a, 0xef, 0x63, 0x32, 0xbf, 0x21, 0x1f, 0xc6, 0x33, + 0xd2, 0x3c, 0x9e, 0xcb, 0x77, 0xa3, 0x17, 0xc9, 0x1d, 0xd5, 0xe6, 0x61, 0xa4, 0x74, 0x34, 0x78, + 0xd9, 0x7f, 0xbd, 0x00, 0xa3, 0x1c, 0xcd, 0x52, 0x08, 0xf6, 0xd1, 0x9a, 0x23, 0x65, 0xe1, 0x66, + 0x6f, 0xc6, 0x51, 0xc6, 0x2a, 0x59, 0xb3, 0xfe, 0x66, 0x9c, 0x44, 0xe0, 0x84, 0x06, 0x3d, 0x0e, + 0xc3, 0x51, 0x7b, 0x93, 0x91, 0xa7, 0xbc, 0x94, 0x6b, 0x1c, 0x8c, 0x25, 0x1e, 0x7d, 0x06, 0xa6, + 0x78, 0xb9, 0x30, 0x68, 0x39, 0x4d, 0x6e, 0xdb, 0x19, 0x54, 0x61, 0x43, 0x53, 0xeb, 0x29, 0xdc, + 0xe1, 0xc1, 0xdc, 0x4c, 0x1a, 0xc6, 0xac, 0x82, 0x1d, 0x5c, 0xe8, 0x8c, 0x9d, 0x4a, 0x47, 0x24, + 0xa0, 0x4b, 0x30, 0xc4, 0x85, 0x91, 0x10, 0x0e, 0x5d, 0xee, 0x7a, 0xb4, 0x38, 0x06, 0x96, 0xa0, + 0x58, 0xc8, 0x33, 0x51, 0x1e, 0xbd, 0x09, 0xa3, 0x8d, 0xe0, 0x96, 0x7f, 0xcb, 0x09, 0x1b, 0x8b, + 0xd5, 0x35, 0x31, 0x9e, 0x99, 0x3a, 0x4d, 0x25, 0x21, 0xd3, 0x63, 0x23, 0x98, 0x5d, 0x33, 0x41, + 0x61, 0x9d, 0x1d, 0xda, 0x60, 0x59, 0x6f, 0xf8, 0xa3, 0xce, 0xdd, 0xdc, 0x7a, 0xd4, 0x3b, 0xd0, + 0x1a, 0xe7, 0x71, 0x91, 0x1a, 0x47, 0x3c, 0x09, 0x9d, 0x30, 0xb2, 0xbf, 0x70, 0x0a, 0x8c, 0x79, + 0x64, 0x64, 0xe1, 0xb6, 0x8e, 0x29, 0x0b, 0x37, 0x86, 0x11, 0xb2, 0xdb, 0x8a, 0xf7, 0x2b, 0x6e, + 0xd8, 0xed, 0xf9, 0x85, 0x15, 0x41, 0xd3, 0xc9, 0x53, 0x62, 0xb0, 0xe2, 0x93, 0x9d, 0x2a, 0xbd, + 0xf8, 0x3e, 0xa6, 0x4a, 0x1f, 0x38, 0xc1, 0x54, 0xe9, 0x57, 0x61, 0xb8, 0xe9, 0xc6, 0x98, 0xb4, + 0x02, 0xb1, 0x11, 0x67, 0xce, 0x84, 0x8b, 0x9c, 0xa4, 0x33, 0x8d, 0xaf, 0x40, 0x60, 0xc9, 0x04, + 0xbd, 0xaa, 0xd6, 0xc0, 0x50, 0xbe, 0x1e, 0xdb, 0x79, 0x2d, 0x90, 0xb9, 0x0a, 0x44, 0x6a, 0xf4, + 0xe1, 0xbb, 0x4d, 0x8d, 0xae, 0x12, 0x9a, 0x8f, 0xbc, 0xb7, 0x84, 0xe6, 0x46, 0xea, 0xf7, 0xd2, + 0xf1, 0xa5, 0x7e, 0xff, 0x92, 0x05, 0xa7, 0x5b, 0x59, 0xaf, 0x20, 0x88, 0xd4, 0xe4, 0xcf, 0xf7, + 0xfd, 0xcc, 0x83, 0x51, 0x21, 0x3b, 0xd0, 0x64, 0x92, 0xe1, 0xec, 0xea, 0x68, 0x47, 0x87, 0x9b, + 0x0d, 0x91, 0xcf, 0xfc, 0x91, 0x9c, 0x1c, 0xf2, 0x5d, 0x32, 0xc7, 0xdf, 0x9b, 0x1c, 0xe6, 0x49, + 0x1e, 0xf9, 0xf1, 0xf7, 0x9c, 0x47, 0xfe, 0x55, 0x95, 0x47, 0xbe, 0x4b, 0x6e, 0x11, 0x9e, 0x25, + 0xbe, 0x67, 0xf6, 0x78, 0x2d, 0x03, 0xfc, 0xe4, 0x71, 0x64, 0x80, 0x7f, 0xcb, 0x14, 0xf6, 0x3c, + 0x1d, 0xf9, 0x93, 0x3d, 0x84, 0xbd, 0xc1, 0xb7, 0xbb, 0xb8, 0xe7, 0xd9, 0xee, 0xa7, 0xef, 0x2a, + 0xdb, 0xfd, 0x0d, 0x3d, 0x8f, 0x3c, 0xea, 0x91, 0x28, 0x9d, 0x12, 0xf5, 0x99, 0x3d, 0xfe, 0x86, + 0xbe, 0x05, 0x9d, 0xca, 0xe7, 0xab, 0x76, 0x9a, 0x4e, 0xbe, 0x59, 0x9b, 0x50, 0x67, 0x56, 0xfa, + 0x99, 0x93, 0xc9, 0x4a, 0x7f, 0xfa, 0xd8, 0xb3, 0xd2, 0xdf, 0x77, 0x02, 0x59, 0xe9, 0xef, 0x7f, + 0x5f, 0xb3, 0xd2, 0x97, 0xef, 0x6d, 0x56, 0xfa, 0x33, 0xc7, 0x91, 0x95, 0xfe, 0x06, 0x94, 0x5a, + 0x32, 0x68, 0xb5, 0x3c, 0x9b, 0x3f, 0x24, 0x99, 0x91, 0xad, 0x7c, 0x48, 0x14, 0x0a, 0x27, 0xac, + 0x28, 0xdf, 0x24, 0x4b, 0xfd, 0x03, 0x5d, 0x4c, 0x56, 0x59, 0xc6, 0x80, 0x2e, 0xb9, 0xe9, 0xff, + 0x72, 0x01, 0xce, 0x76, 0x9f, 0xd7, 0x89, 0x25, 0xa1, 0x9a, 0x58, 0xbe, 0x53, 0x96, 0x04, 0xa6, + 0x74, 0x69, 0x54, 0x7d, 0x47, 0xf6, 0x5f, 0x84, 0x69, 0xe5, 0x28, 0xe6, 0xb9, 0xf5, 0x7d, 0xed, + 0x29, 0x2b, 0x15, 0x7b, 0x50, 0x4b, 0x13, 0xe0, 0xce, 0x32, 0x68, 0x11, 0x26, 0x0d, 0xe0, 0x5a, + 0x45, 0x28, 0xfb, 0xca, 0x74, 0x51, 0x33, 0xd1, 0x38, 0x4d, 0x6f, 0x7f, 0xc3, 0x82, 0xfb, 0x73, + 0x52, 0xd5, 0xf6, 0x1d, 0xb8, 0xbe, 0x05, 0x93, 0x2d, 0xb3, 0x68, 0x8f, 0xfc, 0x16, 0x46, 0x42, + 0x5c, 0xd5, 0xd6, 0x14, 0x02, 0xa7, 0x99, 0x2e, 0x9d, 0xff, 0xce, 0x0f, 0xce, 0x7e, 0xe8, 0x0f, + 0x7f, 0x70, 0xf6, 0x43, 0xdf, 0xff, 0xc1, 0xd9, 0x0f, 0xfd, 0xf9, 0x3b, 0x67, 0xad, 0xef, 0xdc, + 0x39, 0x6b, 0xfd, 0xe1, 0x9d, 0xb3, 0xd6, 0xf7, 0xef, 0x9c, 0xb5, 0xfe, 0xe4, 0xce, 0x59, 0xeb, + 0x2b, 0x3f, 0x3c, 0xfb, 0xa1, 0x37, 0x0a, 0x7b, 0xcf, 0xfc, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x4e, 0x48, 0x31, 0x8e, 0xf9, 0xd2, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index 738a291af0..047d83e2f2 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -2287,7 +2287,7 @@ message PersistentVolumeSource { // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md // +optional - optional RBDVolumeSource rbd = 6; + optional RBDPersistentVolumeSource rbd = 6; // ISCSI represents an ISCSI Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Provisioned by an admin. @@ -3157,6 +3157,57 @@ message QuobyteVolumeSource { optional string group = 5; } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +message RBDPersistentVolumeSource { + // A collection of Ceph monitors. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + repeated string monitors = 1; + + // The rados image name. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + optional string image = 2; + + // Filesystem type of the volume that you want to mount. + // Tip: Ensure that the filesystem type is supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + optional string fsType = 3; + + // The rados pool name. + // Default is rbd. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string pool = 4; + + // The rados user name. + // Default is admin. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string user = 5; + + // Keyring is the path to key ring for RBDUser. + // Default is /etc/ceph/keyring. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string keyring = 6; + + // SecretRef is name of the authentication secret for RBDUser. If provided + // overrides keyring. + // Default is nil. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional SecretReference secretRef = 7; + + // ReadOnly here will force the ReadOnly setting in VolumeMounts. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional bool readOnly = 8; +} + // Represents a Rados Block Device mount that lasts the lifetime of a pod. // RBD volumes support ownership management and SELinux relabeling. message RBDVolumeSource { diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index 169c394a82..02088d9c4c 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -398,7 +398,7 @@ type PersistentVolumeSource struct { // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md // +optional - RBD *RBDVolumeSource `json:"rbd,omitempty" protobuf:"bytes,6,opt,name=rbd"` + RBD *RBDPersistentVolumeSource `json:"rbd,omitempty" protobuf:"bytes,6,opt,name=rbd"` // ISCSI represents an ISCSI Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Provisioned by an admin. // +optional @@ -838,6 +838,50 @@ type RBDVolumeSource struct { ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,8,opt,name=readOnly"` } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +type RBDPersistentVolumeSource struct { + // A collection of Ceph monitors. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + CephMonitors []string `json:"monitors" protobuf:"bytes,1,rep,name=monitors"` + // The rados image name. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + RBDImage string `json:"image" protobuf:"bytes,2,opt,name=image"` + // Filesystem type of the volume that you want to mount. + // Tip: Ensure that the filesystem type is supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + FSType string `json:"fsType,omitempty" protobuf:"bytes,3,opt,name=fsType"` + // The rados pool name. + // Default is rbd. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + RBDPool string `json:"pool,omitempty" protobuf:"bytes,4,opt,name=pool"` + // The rados user name. + // Default is admin. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + RadosUser string `json:"user,omitempty" protobuf:"bytes,5,opt,name=user"` + // Keyring is the path to key ring for RBDUser. + // Default is /etc/ceph/keyring. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + Keyring string `json:"keyring,omitempty" protobuf:"bytes,6,opt,name=keyring"` + // SecretRef is name of the authentication secret for RBDUser. If provided + // overrides keyring. + // Default is nil. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + SecretRef *SecretReference `json:"secretRef,omitempty" protobuf:"bytes,7,opt,name=secretRef"` + // ReadOnly here will force the ReadOnly setting in VolumeMounts. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,8,opt,name=readOnly"` +} + // Represents a cinder volume resource in Openstack. // A Cinder volume must exist before mounting to a container. // The volume must also be in the same region as the kubelet. diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index 7e3b122c33..b74588bd9b 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -1571,6 +1571,22 @@ func (QuobyteVolumeSource) SwaggerDoc() map[string]string { return map_QuobyteVolumeSource } +var map_RBDPersistentVolumeSource = map[string]string{ + "": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "monitors": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "image": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "pool": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "user": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "keyring": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "secretRef": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "readOnly": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", +} + +func (RBDPersistentVolumeSource) SwaggerDoc() map[string]string { + return map_RBDPersistentVolumeSource +} + var map_RBDVolumeSource = map[string]string{ "": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "monitors": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index 18d046eb66..f1e27a98f4 100644 --- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -571,6 +571,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*QuobyteVolumeSource).DeepCopyInto(out.(*QuobyteVolumeSource)) return nil }, InType: reflect.TypeOf(&QuobyteVolumeSource{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RBDPersistentVolumeSource).DeepCopyInto(out.(*RBDPersistentVolumeSource)) + return nil + }, InType: reflect.TypeOf(&RBDPersistentVolumeSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*RBDVolumeSource).DeepCopyInto(out.(*RBDVolumeSource)) return nil @@ -3733,7 +3737,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(RBDVolumeSource) + *out = new(RBDPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -4801,6 +4805,36 @@ func (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) { + *out = *in + if in.CephMonitors != nil { + in, out := &in.CephMonitors, &out.CephMonitors + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource. +func (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource { + if in == nil { + return nil + } + out := new(RBDPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) { *out = *in