From 999dc3a89f4d252b65113da6ae955da9e429c28a Mon Sep 17 00:00:00 2001 From: Ben Parees Date: Wed, 11 Oct 2017 14:08:40 -0400 Subject: [PATCH] remove experimental extended builds api --- .../apis-build.openshift.io/v1.Build.adoc | 11 - .../v1.BuildConfig.adoc | 11 - api/docs/oapi/v1.Build.adoc | 11 - api/docs/oapi/v1.BuildConfig.adoc | 11 - ...shift_origin_pkg_build_apis_build_v1.proto | 16 - api/swagger-spec/oapi-v1.json | 11 - api/swagger-spec/openshift-openapi-spec.json | 11 - pkg/api/meta/builds.go | 8 - pkg/api/meta/builds_test.go | 32 +- pkg/build/apis/build/types.go | 14 - pkg/build/apis/build/v1/generated.pb.go | 590 ++++++++---------- pkg/build/apis/build/v1/generated.proto | 16 - pkg/build/apis/build/v1/swagger_doc.go | 16 +- pkg/build/apis/build/v1/types.go | 21 +- .../apis/build/v1/zz_generated.conversion.go | 20 - .../apis/build/v1/zz_generated.deepcopy.go | 10 - pkg/build/apis/build/validation/validation.go | 19 - .../apis/build/validation/validation_test.go | 52 -- pkg/build/apis/build/zz_generated.deepcopy.go | 10 - pkg/build/builder/sti.go | 9 - pkg/build/generator/generator.go | 22 +- pkg/openapi/zz_generated.openapi.go | 21 +- test/extended/builds/failure_status.go | 46 +- test/extended/builds/s2i_extended_build.go | 156 ----- test/extended/testdata/bindata.go | 265 -------- .../build-extended/bc-scripts-by-url.yaml | 23 - .../build-extended/bc-scripts-in-repo.yaml | 23 - .../bc-scripts-in-the-image.yaml | 21 - .../jvm-runner-with-scripts.yaml | 32 - .../testdata/build-extended/jvm-runner.yaml | 24 - .../testdata/statusfail-runtimeartifacts.yaml | 20 - 31 files changed, 275 insertions(+), 1277 deletions(-) delete mode 100644 test/extended/builds/s2i_extended_build.go delete mode 100644 test/extended/testdata/build-extended/bc-scripts-by-url.yaml delete mode 100644 test/extended/testdata/build-extended/bc-scripts-in-repo.yaml delete mode 100644 test/extended/testdata/build-extended/bc-scripts-in-the-image.yaml delete mode 100644 test/extended/testdata/build-extended/jvm-runner-with-scripts.yaml delete mode 100644 test/extended/testdata/build-extended/jvm-runner.yaml delete mode 100644 test/extended/testdata/statusfail-runtimeartifacts.yaml diff --git a/api/docs/apis-build.openshift.io/v1.Build.adoc b/api/docs/apis-build.openshift.io/v1.Build.adoc index 549f762504c3..f20126cea0d3 100644 --- a/api/docs/apis-build.openshift.io/v1.Build.adoc +++ b/api/docs/apis-build.openshift.io/v1.Build.adoc @@ -306,17 +306,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu
incremental:
pullSecret:
name: -
runtimeArtifacts: -
- destinationDir: -
sourcePath: -
runtimeImage: -
apiVersion: -
fieldPath: -
kind: -
name: -
namespace: -
resourceVersion: -
uid:
scripts:
type:
triggeredBy: diff --git a/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc b/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc index c084689a4621..9d7690070d5e 100644 --- a/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc +++ b/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc @@ -310,17 +310,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu
incremental:
pullSecret:
name: -
runtimeArtifacts: -
- destinationDir: -
sourcePath: -
runtimeImage: -
apiVersion: -
fieldPath: -
kind: -
name: -
namespace: -
resourceVersion: -
uid:
scripts:
type:
successfulBuildsHistoryLimit: diff --git a/api/docs/oapi/v1.Build.adoc b/api/docs/oapi/v1.Build.adoc index 28924cd094ff..31c05b3461a1 100644 --- a/api/docs/oapi/v1.Build.adoc +++ b/api/docs/oapi/v1.Build.adoc @@ -306,17 +306,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu
incremental:
pullSecret:
name: -
runtimeArtifacts: -
- destinationDir: -
sourcePath: -
runtimeImage: -
apiVersion: -
fieldPath: -
kind: -
name: -
namespace: -
resourceVersion: -
uid:
scripts:
type:
triggeredBy: diff --git a/api/docs/oapi/v1.BuildConfig.adoc b/api/docs/oapi/v1.BuildConfig.adoc index 306fc8a97e9e..602403d66902 100644 --- a/api/docs/oapi/v1.BuildConfig.adoc +++ b/api/docs/oapi/v1.BuildConfig.adoc @@ -310,17 +310,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu
incremental:
pullSecret:
name: -
runtimeArtifacts: -
- destinationDir: -
sourcePath: -
runtimeImage: -
apiVersion: -
fieldPath: -
kind: -
name: -
namespace: -
resourceVersion: -
uid:
scripts:
type:
successfulBuildsHistoryLimit: diff --git a/api/protobuf-spec/github_com_openshift_origin_pkg_build_apis_build_v1.proto b/api/protobuf-spec/github_com_openshift_origin_pkg_build_apis_build_v1.proto index 52dd22c7c4d4..d298fd2f9415 100644 --- a/api/protobuf-spec/github_com_openshift_origin_pkg_build_apis_build_v1.proto +++ b/api/protobuf-spec/github_com_openshift_origin_pkg_build_apis_build_v1.proto @@ -887,22 +887,6 @@ message SourceBuildStrategy { // forcePull describes if the builder should pull the images from registry prior to building. optional bool forcePull = 6; - - // runtimeImage is an optional image that is used to run an application - // without unneeded dependencies installed. The building of the application - // is still done in the builder image but, post build, you can copy the - // needed artifacts in the runtime image for use. - // Deprecated: This feature will be removed in a future release. Use ImageSource - // to copy binary artifacts created from one build into a separate runtime image. - optional k8s.io.kubernetes.pkg.api.v1.ObjectReference runtimeImage = 7; - - // runtimeArtifacts specifies a list of source/destination pairs that will be - // copied from the builder to the runtime image. sourcePath can be a file or - // directory. destinationDir must be a directory. destinationDir can also be - // empty or equal to ".", in this case it just refers to the root of WORKDIR. - // Deprecated: This feature will be removed in a future release. Use ImageSource - // to copy binary artifacts created from one build into a separate runtime image. - repeated ImageSourcePath runtimeArtifacts = 8; } // SourceControlUser defines the identity of a user of source control diff --git a/api/swagger-spec/oapi-v1.json b/api/swagger-spec/oapi-v1.json index b715c85d5df9..18184b5b7815 100644 --- a/api/swagger-spec/oapi-v1.json +++ b/api/swagger-spec/oapi-v1.json @@ -22055,17 +22055,6 @@ "forcePull": { "type": "boolean", "description": "forcePull describes if the builder should pull the images from registry prior to building." - }, - "runtimeImage": { - "$ref": "v1.ObjectReference", - "description": "runtimeImage is an optional image that is used to run an application without unneeded dependencies installed. The building of the application is still done in the builder image but, post build, you can copy the needed artifacts in the runtime image for use. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image." - }, - "runtimeArtifacts": { - "type": "array", - "items": { - "$ref": "v1.ImageSourcePath" - }, - "description": "runtimeArtifacts specifies a list of source/destination pairs that will be copied from the builder to the runtime image. sourcePath can be a file or directory. destinationDir must be a directory. destinationDir can also be empty or equal to \".\", in this case it just refers to the root of WORKDIR. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image." } } }, diff --git a/api/swagger-spec/openshift-openapi-spec.json b/api/swagger-spec/openshift-openapi-spec.json index cab55d9a3550..560dcaef7b1d 100644 --- a/api/swagger-spec/openshift-openapi-spec.json +++ b/api/swagger-spec/openshift-openapi-spec.json @@ -89700,17 +89700,6 @@ "description": "pullSecret is the name of a Secret that would be used for setting up the authentication for pulling the Docker images from the private Docker registries", "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.LocalObjectReference" }, - "runtimeArtifacts": { - "description": "runtimeArtifacts specifies a list of source/destination pairs that will be copied from the builder to the runtime image. sourcePath can be a file or directory. destinationDir must be a directory. destinationDir can also be empty or equal to \".\", in this case it just refers to the root of WORKDIR. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image.", - "type": "array", - "items": { - "$ref": "#/definitions/com.github.openshift.origin.pkg.build.apis.build.v1.ImageSourcePath" - } - }, - "runtimeImage": { - "description": "runtimeImage is an optional image that is used to run an application without unneeded dependencies installed. The building of the application is still done in the builder image but, post build, you can copy the needed artifacts in the runtime image for use. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image.", - "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ObjectReference" - }, "scripts": { "description": "scripts is the location of Source scripts", "type": "string" diff --git a/pkg/api/meta/builds.go b/pkg/api/meta/builds.go index f358aba437a3..df8431c56682 100644 --- a/pkg/api/meta/builds.go +++ b/pkg/api/meta/builds.go @@ -94,14 +94,6 @@ func (m *buildSpecMutator) Mutate(fn ImageReferenceMutateFunc) field.ErrorList { } } } - if s := m.spec.Strategy.SourceStrategy; s != nil && s.RuntimeImage != nil { - if m.oldSpec == nil || m.oldSpec.Strategy.SourceStrategy == nil || !hasIdenticalObjectReference(s.RuntimeImage, m.oldSpec.Strategy.SourceStrategy.RuntimeImage) { - if err := fn(s.RuntimeImage); err != nil { - errs = append(errs, fieldErrorOrInternal(err, m.path.Child("strategy", "sourceStrategy", "runtimeImage", "from", "name"))) - } - } - } - if m.output { if s := m.spec.Output.To; s != nil { if m.oldSpec == nil || m.oldSpec.Output.To == nil || !hasIdenticalObjectReference(s, m.oldSpec.Output.To) { diff --git a/pkg/api/meta/builds_test.go b/pkg/api/meta/builds_test.go index 05f418dcd8d3..b19ae5f53369 100644 --- a/pkg/api/meta/builds_test.go +++ b/pkg/api/meta/builds_test.go @@ -92,29 +92,6 @@ func Test_buildSpecMutator_Mutate(t *testing.T) { }, }, }, - { - name: "mutates source runtimeImage reference", - fields: fields{spec: &buildapi.CommonSpec{ - Strategy: buildapi.BuildStrategy{ - SourceStrategy: &buildapi.SourceBuildStrategy{ - RuntimeImage: imageRef("test"), - }, - }, - }}, - args: args{fn: func(ref *kapi.ObjectReference) error { - if ref.Name == "test" { - ref.Name = "test-2" - } - return nil - }}, - wantSpec: &buildapi.CommonSpec{ - Strategy: buildapi.BuildStrategy{ - SourceStrategy: &buildapi.SourceBuildStrategy{ - RuntimeImage: imageRef("test-2"), - }, - }, - }, - }, { name: "mutates custom reference", fields: fields{spec: &buildapi.CommonSpec{ @@ -265,16 +242,14 @@ func Test_buildSpecMutator_Mutate(t *testing.T) { spec: &buildapi.CommonSpec{ Strategy: buildapi.BuildStrategy{ SourceStrategy: &buildapi.SourceBuildStrategy{ - From: imageRefValue("test"), - RuntimeImage: imageRef("test-2"), + From: imageRefValue("test"), }, }, }, oldSpec: &buildapi.CommonSpec{ Strategy: buildapi.BuildStrategy{ SourceStrategy: &buildapi.SourceBuildStrategy{ - From: imageRefValue("test"), - RuntimeImage: imageRef("test-2"), + From: imageRefValue("test"), }, }, }, @@ -286,8 +261,7 @@ func Test_buildSpecMutator_Mutate(t *testing.T) { wantSpec: &buildapi.CommonSpec{ Strategy: buildapi.BuildStrategy{ SourceStrategy: &buildapi.SourceBuildStrategy{ - From: imageRefValue("test"), - RuntimeImage: imageRef("test-2"), + From: imageRefValue("test"), }, }, }, diff --git a/pkg/build/apis/build/types.go b/pkg/build/apis/build/types.go index 5f73f4f864e2..d72ad359ee1d 100644 --- a/pkg/build/apis/build/types.go +++ b/pkg/build/apis/build/types.go @@ -854,20 +854,6 @@ type SourceBuildStrategy struct { // ForcePull describes if the builder should pull the images from registry prior to building. ForcePull bool - - // RuntimeImage is an optional image that is used to run an application - // without unneeded dependencies installed. The building of the application - // is still done in the builder image but, post build, you can copy the - // needed artifacts in the runtime image for use. - // This field and the feature it enables are in tech preview. - RuntimeImage *kapi.ObjectReference - - // RuntimeArtifacts specifies a list of source/destination pairs that will be - // copied from the builder to a runtime image. sourcePath can be a file or - // directory. destinationDir must be a directory. destinationDir can also be - // empty or equal to ".", in this case it just refers to the root of WORKDIR. - // This field and the feature it enables are in tech preview. - RuntimeArtifacts []ImageSourcePath } // JenkinsPipelineStrategy holds parameters specific to a Jenkins Pipeline build. diff --git a/pkg/build/apis/build/v1/generated.pb.go b/pkg/build/apis/build/v1/generated.pb.go index 0c5992eaee8e..836a48600a1f 100644 --- a/pkg/build/apis/build/v1/generated.pb.go +++ b/pkg/build/apis/build/v1/generated.pb.go @@ -2472,28 +2472,6 @@ func (m *SourceBuildStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0 } i++ - if m.RuntimeImage != nil { - dAtA[i] = 0x3a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RuntimeImage.Size())) - n75, err := m.RuntimeImage.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n75 - } - if len(m.RuntimeArtifacts) > 0 { - for _, msg := range m.RuntimeArtifacts { - dAtA[i] = 0x42 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } return i, nil } @@ -2546,11 +2524,11 @@ func (m *SourceRevision) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Git.Size())) - n76, err := m.Git.MarshalTo(dAtA[i:]) + n75, err := m.Git.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n76 + i += n75 } return i, nil } @@ -2605,11 +2583,11 @@ func (m *StageInfo) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartTime.Size())) - n77, err := m.StartTime.MarshalTo(dAtA[i:]) + n76, err := m.StartTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n77 + i += n76 dAtA[i] = 0x18 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DurationMilliseconds)) @@ -2650,11 +2628,11 @@ func (m *StepInfo) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartTime.Size())) - n78, err := m.StartTime.MarshalTo(dAtA[i:]) + n77, err := m.StartTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n78 + i += n77 dAtA[i] = 0x18 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DurationMilliseconds)) @@ -3505,16 +3483,6 @@ func (m *SourceBuildStrategy) Size() (n int) { n += 2 } n += 2 - if m.RuntimeImage != nil { - l = m.RuntimeImage.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.RuntimeArtifacts) > 0 { - for _, e := range m.RuntimeArtifacts { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } return n } @@ -4157,8 +4125,6 @@ func (this *SourceBuildStrategy) String() string { `Scripts:` + fmt.Sprintf("%v", this.Scripts) + `,`, `Incremental:` + valueToStringGenerated(this.Incremental) + `,`, `ForcePull:` + fmt.Sprintf("%v", this.ForcePull) + `,`, - `RuntimeImage:` + strings.Replace(fmt.Sprintf("%v", this.RuntimeImage), "ObjectReference", "k8s_io_kubernetes_pkg_api_v1.ObjectReference", 1) + `,`, - `RuntimeArtifacts:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RuntimeArtifacts), "ImageSourcePath", "ImageSourcePath", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -11449,70 +11415,6 @@ func (m *SourceBuildStrategy) Unmarshal(dAtA []byte) error { } } m.ForcePull = bool(v != 0) - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuntimeImage", 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.RuntimeImage == nil { - m.RuntimeImage = &k8s_io_kubernetes_pkg_api_v1.ObjectReference{} - } - if err := m.RuntimeImage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuntimeArtifacts", 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 - } - m.RuntimeArtifacts = append(m.RuntimeArtifacts, ImageSourcePath{}) - if err := m.RuntimeArtifacts[len(m.RuntimeArtifacts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -12321,247 +12223,245 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 3872 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3b, 0x5b, 0x6c, 0x24, 0x57, - 0x56, 0x53, 0xfd, 0xee, 0xd3, 0x1e, 0x8f, 0x7d, 0x3d, 0xb3, 0xd3, 0x33, 0x3b, 0xeb, 0x9e, 0xad, - 0x25, 0xab, 0x84, 0x4d, 0xda, 0xcc, 0xe4, 0xa1, 0x10, 0xd8, 0x80, 0xbb, 0xfd, 0x18, 0x7b, 0x9d, - 0x19, 0xef, 0x6d, 0x27, 0x41, 0x59, 0x04, 0x29, 0x97, 0x6f, 0xb7, 0x2b, 0xae, 0xae, 0xea, 0xd4, - 0xbd, 0xed, 0x89, 0x57, 0x20, 0x22, 0x16, 0x76, 0x25, 0x84, 0xc4, 0x02, 0x42, 0x42, 0x20, 0x24, - 0xf8, 0x5b, 0x69, 0x41, 0x20, 0xa1, 0xfd, 0x40, 0xf0, 0x81, 0xf8, 0xd9, 0x08, 0x09, 0xb1, 0x3f, - 0xa0, 0x7c, 0x40, 0x8b, 0x34, 0x48, 0xfc, 0xf2, 0x3d, 0x3f, 0xa0, 0xfb, 0xa8, 0xaa, 0x5b, 0xd5, - 0x65, 0x4f, 0xdc, 0xed, 0x19, 0x82, 0xf8, 0xeb, 0x3a, 0xe7, 0xdc, 0x73, 0xce, 0x3d, 0xf7, 0xdc, - 0x7b, 0xcf, 0xe3, 0x36, 0xb4, 0x7b, 0x0e, 0x3b, 0x1c, 0xee, 0x37, 0x6d, 0xbf, 0xbf, 0xe2, 0x0f, - 0x88, 0x47, 0x0f, 0x9d, 0x2e, 0x5b, 0xf1, 0x03, 0xa7, 0xe7, 0x78, 0x2b, 0x83, 0xa3, 0xde, 0xca, - 0xfe, 0xd0, 0x71, 0x0f, 0x56, 0xac, 0x81, 0x43, 0xd5, 0xcf, 0xe3, 0x3b, 0x2b, 0x3d, 0xe2, 0x91, - 0xc0, 0x62, 0xe4, 0xa0, 0x39, 0x08, 0x7c, 0xe6, 0xa3, 0x17, 0x63, 0x26, 0xcd, 0x88, 0x49, 0x53, - 0x32, 0x69, 0x0e, 0x8e, 0x7a, 0x4d, 0x31, 0xb2, 0xc9, 0x99, 0xa8, 0x9f, 0xc7, 0x77, 0x6e, 0xbe, - 0xa0, 0x49, 0xee, 0xf9, 0x3d, 0x7f, 0x45, 0xf0, 0xda, 0x1f, 0x76, 0xc5, 0x97, 0xf8, 0x10, 0xbf, - 0xa4, 0x8c, 0x9b, 0x2f, 0x1d, 0xbd, 0x4a, 0x9b, 0x8e, 0xcf, 0x35, 0xe9, 0x5b, 0xf6, 0xa1, 0xe3, - 0x91, 0xe0, 0x44, 0x28, 0x28, 0x54, 0xeb, 0x13, 0x66, 0x65, 0x68, 0x76, 0x73, 0xe5, 0xb4, 0x51, - 0xc1, 0xd0, 0x63, 0x4e, 0x9f, 0x4c, 0x0c, 0x78, 0xe5, 0x71, 0x03, 0xa8, 0x7d, 0x48, 0xfa, 0xd6, - 0xc4, 0xb8, 0x17, 0x4f, 0x1b, 0x37, 0x64, 0x8e, 0xbb, 0xe2, 0x78, 0x8c, 0xb2, 0x60, 0x62, 0xd0, - 0xf3, 0x6a, 0xd0, 0xd1, 0x70, 0x9f, 0x04, 0x1e, 0x61, 0x84, 0x86, 0x33, 0xca, 0x98, 0x8b, 0xf9, - 0xb7, 0x05, 0xb8, 0xd1, 0x72, 0x3c, 0x2b, 0x38, 0x69, 0x71, 0x1b, 0x62, 0xf2, 0xfe, 0x90, 0x50, - 0xf6, 0x60, 0xc0, 0x1c, 0xdf, 0xa3, 0xe8, 0x5d, 0xa8, 0x70, 0x23, 0x1c, 0x58, 0xcc, 0xaa, 0x1b, - 0xb7, 0x8d, 0x67, 0x6b, 0x77, 0x7f, 0xa2, 0x29, 0xd9, 0x37, 0x75, 0x9d, 0xc4, 0x72, 0x88, 0x85, - 0xe0, 0xd4, 0xcd, 0xe3, 0x3b, 0xcd, 0x07, 0xfb, 0xef, 0x11, 0x9b, 0xbd, 0x41, 0x98, 0xd5, 0x42, - 0x1f, 0x8d, 0x1a, 0x97, 0xc6, 0xa3, 0x06, 0xc4, 0x30, 0x1c, 0x71, 0x45, 0x5f, 0x86, 0x92, 0x45, - 0x37, 0x1c, 0x97, 0xd4, 0x73, 0xb7, 0x8d, 0x67, 0xab, 0xad, 0x79, 0x45, 0x5d, 0x5a, 0x15, 0x50, - 0xac, 0xb0, 0xe8, 0x15, 0x98, 0x0f, 0xc8, 0xb1, 0x43, 0x1d, 0xdf, 0x6b, 0xfb, 0xfd, 0xbe, 0xc3, - 0xea, 0xf9, 0x24, 0xbd, 0x84, 0xe2, 0x14, 0x15, 0xfa, 0x49, 0xb8, 0x12, 0x42, 0xde, 0x20, 0x94, - 0x5a, 0x3d, 0x52, 0x2f, 0x88, 0x81, 0x57, 0xd4, 0xc0, 0xb2, 0x02, 0xe3, 0x34, 0x1d, 0x6a, 0x01, - 0x0a, 0x41, 0xab, 0x43, 0x76, 0xe8, 0x07, 0xf7, 0xad, 0x3e, 0xa9, 0x17, 0xc5, 0xe8, 0x68, 0x52, - 0x31, 0x06, 0x67, 0x50, 0xa3, 0x75, 0x58, 0x4a, 0x42, 0xd7, 0xfb, 0x96, 0xe3, 0xd6, 0x4b, 0x82, - 0xc9, 0x92, 0x62, 0x52, 0xd3, 0x50, 0x38, 0x8b, 0x1e, 0x7d, 0x0d, 0xae, 0x25, 0xe7, 0xc5, 0x88, - 0xd4, 0xa6, 0x2c, 0x18, 0x5d, 0x53, 0x8c, 0x2e, 0x27, 0x90, 0x38, 0x7b, 0x0c, 0xba, 0x0f, 0x9f, - 0x9b, 0x40, 0x48, 0xb5, 0x2a, 0x82, 0xdb, 0xe7, 0x14, 0xb7, 0xf9, 0x24, 0x16, 0x9f, 0x32, 0xca, - 0xfc, 0x29, 0x58, 0xd4, 0x3c, 0xa8, 0xe3, 0x0f, 0x03, 0x9b, 0x68, 0xeb, 0x6a, 0x9c, 0xb5, 0xae, - 0xe6, 0x1f, 0x19, 0x70, 0xad, 0xe5, 0xb0, 0xfd, 0xa1, 0x7d, 0x44, 0xd8, 0xdb, 0x64, 0xff, 0x9e, - 0xef, 0x1f, 0xb5, 0xad, 0x21, 0x25, 0xe8, 0x5b, 0x06, 0x80, 0xed, 0xf7, 0xfb, 0xbe, 0xd7, 0x19, - 0x10, 0x5b, 0xb9, 0xdf, 0x66, 0x73, 0x8a, 0x53, 0xa1, 0xd9, 0x16, 0x6c, 0x74, 0xee, 0xad, 0x9b, - 0x4a, 0x1f, 0x34, 0x89, 0xc3, 0x9a, 0x58, 0xf3, 0x07, 0x39, 0x28, 0x8a, 0x79, 0x3d, 0x85, 0xbd, - 0xf0, 0x2e, 0x14, 0x28, 0x9f, 0x6a, 0x4e, 0x70, 0x7f, 0x7d, 0xaa, 0xa9, 0xca, 0x35, 0x18, 0x10, - 0xbb, 0x35, 0xa7, 0x64, 0x15, 0xf8, 0x17, 0x16, 0x9c, 0xd1, 0x21, 0x94, 0x28, 0xb3, 0xd8, 0x90, - 0x8a, 0xdd, 0x53, 0xbb, 0xfb, 0xb3, 0x33, 0xc8, 0x10, 0x7c, 0xe2, 0x75, 0x95, 0xdf, 0x58, 0xf1, - 0x37, 0x7f, 0x98, 0x83, 0x9a, 0xa0, 0x6b, 0xfb, 0x5e, 0xd7, 0xe9, 0x3d, 0x05, 0xeb, 0x75, 0x13, - 0xd6, 0x5b, 0x9b, 0x7e, 0x66, 0x52, 0xe3, 0x53, 0x6d, 0xe8, 0xa5, 0x6c, 0xb8, 0x31, 0xb3, 0xa4, - 0xb3, 0x2d, 0xf9, 0xcf, 0x06, 0x5c, 0xd1, 0xa8, 0x77, 0x1c, 0xca, 0xd0, 0xcf, 0x4f, 0x58, 0xb3, - 0xf9, 0xe9, 0xac, 0xc9, 0x47, 0x0b, 0x5b, 0x2e, 0x28, 0x69, 0x95, 0x10, 0xa2, 0x59, 0x92, 0x40, - 0xd1, 0x61, 0xa4, 0x4f, 0xeb, 0xb9, 0xdb, 0xf9, 0xd9, 0x9c, 0x44, 0xaa, 0xdc, 0xba, 0xac, 0x84, - 0x15, 0xb7, 0x38, 0x5b, 0x2c, 0xb9, 0x9b, 0x1f, 0x16, 0x12, 0x13, 0xe3, 0x26, 0x46, 0x43, 0xa8, - 0xb0, 0xc0, 0xe9, 0xf5, 0x48, 0x40, 0xeb, 0x86, 0x90, 0xbe, 0x39, 0xbd, 0xf4, 0x3d, 0xc9, 0x69, - 0xd7, 0x77, 0x1d, 0xfb, 0x24, 0x9e, 0xb1, 0x02, 0x53, 0x1c, 0x89, 0x42, 0xab, 0x50, 0x0d, 0x86, - 0x9e, 0x24, 0x54, 0x17, 0xd1, 0x97, 0x14, 0x79, 0x15, 0x87, 0x88, 0x47, 0xa3, 0xc6, 0xbc, 0xbc, - 0x24, 0x43, 0x08, 0x8e, 0x47, 0x21, 0x9a, 0x38, 0xad, 0xa4, 0x6b, 0xfc, 0xcc, 0x0c, 0xa7, 0x95, - 0xf0, 0xbf, 0xc8, 0xe3, 0x63, 0x98, 0x7e, 0x3a, 0xa1, 0x03, 0xb8, 0x45, 0x87, 0xb6, 0x4d, 0x28, - 0xed, 0x0e, 0x5d, 0xa1, 0x1b, 0xbd, 0xe7, 0x50, 0xe6, 0x07, 0x27, 0x3b, 0x0e, 0xbf, 0x23, 0xf9, - 0x55, 0x57, 0x6c, 0xdd, 0x1e, 0x8f, 0x1a, 0xb7, 0x3a, 0x67, 0xd0, 0xe1, 0x33, 0xb9, 0xa0, 0x9f, - 0x83, 0x7a, 0xd7, 0x72, 0x5c, 0x72, 0x90, 0x21, 0xa1, 0x28, 0x24, 0xdc, 0x1a, 0x8f, 0x1a, 0xf5, - 0x8d, 0x53, 0x68, 0xf0, 0xa9, 0xa3, 0xcd, 0x6d, 0x58, 0x9c, 0xd8, 0x08, 0xe8, 0x65, 0xa8, 0xb9, - 0x16, 0x65, 0x6f, 0x91, 0x80, 0x5f, 0x36, 0xc2, 0xbf, 0xf3, 0xf1, 0x5d, 0xb9, 0x13, 0xa3, 0xb0, - 0x4e, 0x67, 0xfe, 0xbd, 0x01, 0x55, 0xc1, 0xec, 0x29, 0xec, 0x90, 0x5f, 0x4c, 0xee, 0x90, 0xd7, - 0xa6, 0xf7, 0xd1, 0x53, 0xf6, 0x06, 0x40, 0x45, 0xce, 0xc5, 0xef, 0x99, 0xdf, 0x09, 0xf7, 0xc9, - 0x8e, 0xdf, 0x0b, 0x03, 0xb3, 0x15, 0xa8, 0xda, 0xbe, 0xc7, 0x2c, 0x3e, 0x09, 0x75, 0xc3, 0x2e, - 0x86, 0x0e, 0xdb, 0x0e, 0x11, 0x38, 0xa6, 0xe1, 0xf7, 0x71, 0xd7, 0x77, 0x5d, 0xff, 0xa1, 0x70, - 0xef, 0x4a, 0x7c, 0xda, 0x6c, 0x08, 0x28, 0x56, 0x58, 0xf4, 0x3c, 0x54, 0x06, 0xfc, 0x9e, 0xf7, - 0xd5, 0xf9, 0x56, 0x89, 0xed, 0xb0, 0xab, 0xe0, 0x38, 0xa2, 0x40, 0x2f, 0xc1, 0x1c, 0x75, 0x3c, - 0x9b, 0x74, 0x88, 0xed, 0x7b, 0x07, 0x54, 0xf8, 0x5b, 0xbe, 0xb5, 0x30, 0x1e, 0x35, 0xe6, 0x3a, - 0x1a, 0x1c, 0x27, 0xa8, 0xd0, 0xdb, 0x50, 0x15, 0xdf, 0x7b, 0x8e, 0x8a, 0xa7, 0x6a, 0x77, 0x7f, - 0xfc, 0xd3, 0x2d, 0x0e, 0x1f, 0xd1, 0xba, 0xcc, 0x27, 0xd9, 0x09, 0x19, 0xe0, 0x98, 0x17, 0xba, - 0x0b, 0xc0, 0xc3, 0x69, 0xca, 0xac, 0xfe, 0x80, 0x8a, 0x20, 0xab, 0x12, 0x6f, 0xa1, 0xbd, 0x08, - 0x83, 0x35, 0x2a, 0xf4, 0x15, 0xa8, 0x32, 0xcb, 0x71, 0x77, 0x1c, 0x8f, 0x50, 0x11, 0x4e, 0xe5, - 0xa5, 0x80, 0xbd, 0x10, 0x88, 0x63, 0x3c, 0x6a, 0x02, 0xb8, 0xdc, 0x71, 0x5b, 0x27, 0x8c, 0x50, - 0x11, 0x2e, 0xe5, 0x5b, 0xf3, 0x9c, 0xf9, 0x4e, 0x04, 0xc5, 0x1a, 0x05, 0xb7, 0xba, 0xe7, 0x3f, - 0xb4, 0x1c, 0x56, 0xaf, 0x26, 0xad, 0x7e, 0xdf, 0x7f, 0xdb, 0x72, 0x18, 0x56, 0x58, 0xf4, 0x0c, - 0x94, 0x8f, 0x95, 0xbb, 0x83, 0x60, 0x5a, 0xe3, 0x91, 0x69, 0xe8, 0xe6, 0x21, 0xce, 0xfc, 0x8b, - 0xf0, 0x52, 0x7d, 0x30, 0x64, 0x83, 0x21, 0x43, 0xeb, 0x90, 0x63, 0xbe, 0x72, 0xef, 0x17, 0x42, - 0x0b, 0xc6, 0x71, 0x7f, 0x68, 0xbf, 0xf8, 0x1a, 0xc5, 0xa4, 0x4b, 0x02, 0xe2, 0xd9, 0xa4, 0x55, - 0x1a, 0x8f, 0x1a, 0xb9, 0x3d, 0x1f, 0xe7, 0x98, 0x8f, 0xf6, 0x01, 0x06, 0x43, 0x7a, 0xd8, 0x21, - 0x76, 0x40, 0x98, 0xba, 0x3f, 0xef, 0x9e, 0xcd, 0x6e, 0xc7, 0xb7, 0x2d, 0x37, 0xcd, 0x53, 0x58, - 0x62, 0x37, 0xe2, 0x84, 0x35, 0xae, 0xe8, 0x18, 0x6a, 0x4e, 0xdf, 0xea, 0x91, 0x1d, 0x6b, 0x9f, - 0xb8, 0xdc, 0xb5, 0xf2, 0x53, 0x9f, 0x8f, 0x5b, 0x11, 0x9f, 0xf8, 0x54, 0x88, 0x61, 0x14, 0xeb, - 0x82, 0xcc, 0x5f, 0x35, 0x60, 0x49, 0x98, 0x6c, 0xd7, 0xa7, 0x4c, 0x06, 0xae, 0xe2, 0xe4, 0x7c, - 0x06, 0xca, 0xfc, 0x1c, 0xb5, 0xbc, 0x03, 0x71, 0xcf, 0x54, 0xa5, 0xc5, 0xdb, 0x12, 0x84, 0x43, - 0x1c, 0xba, 0x05, 0x05, 0x2b, 0xe8, 0xc9, 0x7d, 0x5e, 0x6d, 0x55, 0x78, 0x28, 0xb0, 0x1a, 0xf4, - 0x28, 0x16, 0x50, 0xbe, 0xbc, 0xd4, 0x0e, 0x9c, 0xc1, 0x44, 0x32, 0xd2, 0x11, 0x50, 0xac, 0xb0, - 0xe6, 0xdf, 0x54, 0x60, 0x4e, 0x4f, 0xaf, 0x9e, 0x42, 0x34, 0xd4, 0x87, 0x4a, 0x18, 0xae, 0xab, - 0x15, 0x6d, 0x4f, 0x65, 0x6c, 0x19, 0xce, 0x63, 0xc5, 0xaa, 0x35, 0xc7, 0x0f, 0x82, 0xf0, 0x0b, - 0x47, 0x22, 0x90, 0x0f, 0x0b, 0xea, 0x32, 0x25, 0x07, 0xad, 0x13, 0xb1, 0x1a, 0xea, 0x0e, 0x3c, - 0xa7, 0x5f, 0x5e, 0x1d, 0x8f, 0x1a, 0x0b, 0x7b, 0x29, 0x56, 0x78, 0x82, 0x39, 0xfa, 0x1a, 0x14, - 0xba, 0x81, 0xdf, 0x17, 0x27, 0xce, 0xb9, 0x85, 0x88, 0x75, 0xdc, 0x08, 0xfc, 0x3e, 0x16, 0x4c, - 0xd0, 0x7b, 0x50, 0xda, 0x17, 0x19, 0x8c, 0x3a, 0x8d, 0xa6, 0x0c, 0xe9, 0xd2, 0x49, 0x50, 0x0b, - 0xb8, 0x2f, 0x48, 0x30, 0x56, 0x12, 0xd0, 0x9d, 0xe4, 0xed, 0x56, 0x12, 0xdb, 0xfd, 0xca, 0x59, - 0x37, 0x1b, 0x6a, 0x43, 0x9e, 0x78, 0xc7, 0xf5, 0xb2, 0xd8, 0x33, 0x3f, 0x76, 0xf6, 0x54, 0xd7, - 0xbd, 0xe3, 0xb7, 0xac, 0xa0, 0x55, 0x53, 0xce, 0x91, 0x5f, 0xf7, 0x8e, 0x31, 0x1f, 0x8d, 0x7e, - 0x19, 0x6a, 0x9a, 0x11, 0xeb, 0x15, 0xc1, 0x6c, 0x63, 0xe6, 0xe0, 0x4a, 0x66, 0x53, 0xd1, 0x3e, - 0xd4, 0x56, 0x0e, 0xeb, 0xf2, 0xd0, 0x1f, 0x1a, 0x70, 0xed, 0xc0, 0xb7, 0x8f, 0x48, 0xd0, 0x61, - 0x81, 0xc5, 0x48, 0xef, 0x44, 0x5d, 0x65, 0xe2, 0x64, 0xac, 0xdd, 0xdd, 0x9e, 0x4a, 0x93, 0xb5, - 0x2c, 0x8e, 0xad, 0x1b, 0xe3, 0x51, 0xe3, 0x5a, 0x26, 0x0a, 0x67, 0xeb, 0x20, 0xb4, 0xa3, 0x62, - 0xcd, 0xd2, 0xda, 0xc1, 0x0c, 0xda, 0x75, 0xb2, 0x38, 0x4a, 0xed, 0x32, 0x51, 0x38, 0x5b, 0x07, - 0xf3, 0xaf, 0x8a, 0xea, 0xd8, 0x57, 0xb9, 0xf5, 0x8b, 0x50, 0x60, 0x27, 0x83, 0x30, 0xb3, 0x6e, - 0x84, 0x39, 0xca, 0xde, 0xc9, 0x80, 0x3c, 0x1a, 0x35, 0xae, 0x68, 0xa4, 0x1c, 0x84, 0x05, 0xb1, - 0xe6, 0xe3, 0xb9, 0x27, 0xee, 0xe3, 0x4d, 0x00, 0x69, 0xe7, 0xae, 0xe3, 0x92, 0xf0, 0x6c, 0xe4, - 0x47, 0xd5, 0x5a, 0x04, 0xc5, 0x1a, 0x05, 0xfa, 0x05, 0xc8, 0xf7, 0x54, 0xb4, 0x3a, 0xed, 0x39, - 0xb5, 0xe9, 0x30, 0x5d, 0xab, 0x32, 0xf7, 0xfd, 0x4d, 0x87, 0x61, 0xce, 0x98, 0xa7, 0xbd, 0xe2, - 0x4e, 0xa0, 0xf5, 0xe2, 0x0c, 0x19, 0x8d, 0x38, 0x78, 0x14, 0xff, 0xe8, 0xa4, 0x17, 0x40, 0x8a, - 0x15, 0x7f, 0x1e, 0x81, 0xf0, 0x98, 0x8b, 0x7c, 0xc0, 0xd6, 0x9c, 0x40, 0x95, 0x79, 0xb4, 0x20, - 0x3e, 0xc4, 0x60, 0x8d, 0x0a, 0x1d, 0xc2, 0x9c, 0x5a, 0x77, 0x79, 0x01, 0x97, 0xa7, 0xbe, 0x80, - 0x65, 0xe0, 0xa5, 0xf1, 0xc2, 0x09, 0xce, 0xe8, 0x7d, 0x28, 0x53, 0xf1, 0x8b, 0xce, 0xb4, 0xff, - 0x25, 0x37, 0xdd, 0xdc, 0x51, 0x31, 0x4d, 0xa2, 0x28, 0x0e, 0xe5, 0x98, 0xff, 0x1d, 0x46, 0xe5, - 0xe2, 0xd6, 0xa5, 0x19, 0x25, 0x9d, 0x27, 0x9e, 0x24, 0xa5, 0x4e, 0xbe, 0xdc, 0xd3, 0x3d, 0xf9, - 0xcc, 0x1f, 0x94, 0xc3, 0xdd, 0x2b, 0xd3, 0x9b, 0x3b, 0x50, 0x1c, 0x1c, 0x5a, 0x34, 0xdc, 0xbe, - 0x9f, 0x0f, 0xe3, 0xff, 0x5d, 0x0e, 0x7c, 0x34, 0x6a, 0x80, 0x0c, 0x57, 0xf8, 0x17, 0x96, 0x94, - 0x22, 0xda, 0xb7, 0x3c, 0x9b, 0xb8, 0x2e, 0x39, 0x50, 0xf1, 0x7b, 0x1c, 0xed, 0x87, 0x08, 0x1c, - 0xd3, 0xa0, 0x57, 0xa0, 0x14, 0x10, 0x8b, 0xfa, 0x9e, 0xda, 0x7c, 0xcb, 0xa1, 0xbb, 0x62, 0x01, - 0x7d, 0xc4, 0xdd, 0x44, 0x56, 0x19, 0xc4, 0x37, 0x56, 0xd4, 0xe8, 0x39, 0x28, 0xf7, 0xcf, 0xae, - 0x92, 0x86, 0x78, 0xd4, 0x85, 0x79, 0xca, 0xac, 0x80, 0x45, 0x61, 0xf5, 0x14, 0x91, 0x3c, 0x1a, - 0x8f, 0x1a, 0xf3, 0x9d, 0x04, 0x17, 0x9c, 0xe2, 0x8a, 0x86, 0xb0, 0x64, 0xfb, 0xfd, 0x81, 0x4b, - 0xf8, 0x59, 0x18, 0x0b, 0x2b, 0x9d, 0x5b, 0xd8, 0xf5, 0xf1, 0xa8, 0xb1, 0xd4, 0x9e, 0x64, 0x85, - 0xb3, 0xf8, 0xa3, 0xaf, 0x42, 0xe5, 0x60, 0x18, 0x58, 0x1c, 0xa8, 0xb2, 0x82, 0x2f, 0x86, 0x79, - 0xd0, 0x9a, 0x82, 0x3f, 0x1a, 0x35, 0x2e, 0xf3, 0x44, 0xa2, 0x19, 0x02, 0x70, 0x34, 0x04, 0xed, - 0xc3, 0x4d, 0x5f, 0xc4, 0xe8, 0xf2, 0xc4, 0x93, 0x51, 0x4c, 0xb8, 0x4f, 0x55, 0x9d, 0xd5, 0x54, - 0x0c, 0x6f, 0x3e, 0x38, 0x95, 0x12, 0x9f, 0xc1, 0x05, 0x7d, 0x1d, 0x4a, 0xb6, 0xc8, 0x9b, 0xd5, + // 3825 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3b, 0x4b, 0x6c, 0x24, 0x49, + 0x56, 0x9d, 0xf5, 0x73, 0xd5, 0x2b, 0xb7, 0x3f, 0xe1, 0xee, 0xed, 0xea, 0xde, 0x5e, 0x57, 0x6f, + 0x2e, 0xb3, 0x9a, 0x61, 0x67, 0xca, 0x74, 0xcf, 0x47, 0xc3, 0xc0, 0x0e, 0xb8, 0xca, 0x9f, 0xb6, + 0xd7, 0xd3, 0xed, 0x8d, 0xf2, 0xcc, 0xa0, 0x59, 0x04, 0x93, 0x4e, 0x47, 0x95, 0xb3, 0x9d, 0x95, + 0x59, 0x93, 0x11, 0xe5, 0x1e, 0xaf, 0x40, 0xb4, 0x58, 0xd8, 0xbd, 0x20, 0xf1, 0x13, 0x12, 0x02, + 0x81, 0xe0, 0xb6, 0xd2, 0x82, 0x40, 0x42, 0x7b, 0x40, 0x70, 0x40, 0x5c, 0x76, 0x84, 0x84, 0xd8, + 0x0b, 0x68, 0x0e, 0x50, 0x62, 0x0a, 0x24, 0xae, 0x9c, 0xfb, 0x02, 0x8a, 0x4f, 0x66, 0x46, 0x66, + 0xa5, 0xdd, 0xe3, 0x2a, 0x77, 0x33, 0x68, 0x6f, 0x95, 0xef, 0xbd, 0x78, 0xef, 0xc5, 0x8b, 0x17, + 0x11, 0xef, 0x13, 0x05, 0xad, 0xae, 0xc3, 0x0e, 0x07, 0xfb, 0x0d, 0xdb, 0xef, 0xad, 0xf8, 0x7d, + 0xe2, 0xd1, 0x43, 0xa7, 0xc3, 0x56, 0xfc, 0xc0, 0xe9, 0x3a, 0xde, 0x4a, 0xff, 0xa8, 0xbb, 0xb2, + 0x3f, 0x70, 0xdc, 0x83, 0x15, 0xab, 0xef, 0x50, 0xf5, 0xf3, 0xf8, 0xf6, 0x4a, 0x97, 0x78, 0x24, + 0xb0, 0x18, 0x39, 0x68, 0xf4, 0x03, 0x9f, 0xf9, 0xe8, 0xe5, 0x98, 0x49, 0x23, 0x62, 0xd2, 0x90, + 0x4c, 0x1a, 0xfd, 0xa3, 0x6e, 0x43, 0x8c, 0x6c, 0x70, 0x26, 0xea, 0xe7, 0xf1, 0xed, 0x1b, 0x2f, + 0x69, 0x92, 0xbb, 0x7e, 0xd7, 0x5f, 0x11, 0xbc, 0xf6, 0x07, 0x1d, 0xf1, 0x25, 0x3e, 0xc4, 0x2f, + 0x29, 0xe3, 0xc6, 0x2b, 0x47, 0xaf, 0xd3, 0x86, 0xe3, 0x73, 0x4d, 0x7a, 0x96, 0x7d, 0xe8, 0x78, + 0x24, 0x38, 0x11, 0x0a, 0x0a, 0xd5, 0x7a, 0x84, 0x59, 0x19, 0x9a, 0xdd, 0x58, 0x39, 0x6d, 0x54, + 0x30, 0xf0, 0x98, 0xd3, 0x23, 0x63, 0x03, 0x5e, 0x7b, 0xd2, 0x00, 0x6a, 0x1f, 0x92, 0x9e, 0x35, + 0x36, 0xee, 0xe5, 0xd3, 0xc6, 0x0d, 0x98, 0xe3, 0xae, 0x38, 0x1e, 0xa3, 0x2c, 0x18, 0x1b, 0xf4, + 0xa2, 0x1a, 0x74, 0x34, 0xd8, 0x27, 0x81, 0x47, 0x18, 0xa1, 0xe1, 0x8c, 0x32, 0xe6, 0x62, 0xfe, + 0x5d, 0x01, 0xae, 0x37, 0x1d, 0xcf, 0x0a, 0x4e, 0x9a, 0xdc, 0x86, 0x98, 0x7c, 0x30, 0x20, 0x94, + 0xdd, 0xef, 0x33, 0xc7, 0xf7, 0x28, 0x7a, 0x1f, 0xca, 0xdc, 0x08, 0x07, 0x16, 0xb3, 0x6a, 0xc6, + 0x2d, 0xe3, 0xf9, 0xea, 0x9d, 0x9f, 0x68, 0x48, 0xf6, 0x0d, 0x5d, 0x27, 0xb1, 0x1c, 0x62, 0x21, + 0x38, 0x75, 0xe3, 0xf8, 0x76, 0xe3, 0xfe, 0xfe, 0x03, 0x62, 0xb3, 0xb7, 0x08, 0xb3, 0x9a, 0xe8, + 0xa3, 0x61, 0xfd, 0xd2, 0x68, 0x58, 0x87, 0x18, 0x86, 0x23, 0xae, 0xe8, 0xcb, 0x50, 0xb2, 0xe8, + 0x86, 0xe3, 0x92, 0x5a, 0xee, 0x96, 0xf1, 0x7c, 0xa5, 0x39, 0xa7, 0xa8, 0x4b, 0xab, 0x02, 0x8a, + 0x15, 0x16, 0xbd, 0x06, 0x73, 0x01, 0x39, 0x76, 0xa8, 0xe3, 0x7b, 0x2d, 0xbf, 0xd7, 0x73, 0x58, + 0x2d, 0x9f, 0xa4, 0x97, 0x50, 0x9c, 0xa2, 0x42, 0x3f, 0x09, 0xf3, 0x21, 0xe4, 0x2d, 0x42, 0xa9, + 0xd5, 0x25, 0xb5, 0x82, 0x18, 0x38, 0xaf, 0x06, 0xce, 0x28, 0x30, 0x4e, 0xd3, 0xa1, 0x26, 0xa0, + 0x10, 0xb4, 0x3a, 0x60, 0x87, 0x7e, 0x70, 0xcf, 0xea, 0x91, 0x5a, 0x51, 0x8c, 0x8e, 0x26, 0x15, + 0x63, 0x70, 0x06, 0x35, 0x5a, 0x87, 0xa5, 0x24, 0x74, 0xbd, 0x67, 0x39, 0x6e, 0xad, 0x24, 0x98, + 0x2c, 0x29, 0x26, 0x55, 0x0d, 0x85, 0xb3, 0xe8, 0xd1, 0xd7, 0xe0, 0x6a, 0x72, 0x5e, 0x8c, 0x48, + 0x6d, 0x66, 0x04, 0xa3, 0xab, 0x8a, 0xd1, 0xe5, 0x04, 0x12, 0x67, 0x8f, 0x41, 0xf7, 0xe0, 0x73, + 0x63, 0x08, 0xa9, 0x56, 0x59, 0x70, 0xfb, 0x9c, 0xe2, 0x36, 0x97, 0xc4, 0xe2, 0x53, 0x46, 0x99, + 0x3f, 0x05, 0x8b, 0x9a, 0x07, 0xb5, 0xfd, 0x41, 0x60, 0x13, 0x6d, 0x5d, 0x8d, 0xb3, 0xd6, 0xd5, + 0xfc, 0x23, 0x03, 0xae, 0x36, 0x1d, 0xb6, 0x3f, 0xb0, 0x8f, 0x08, 0x7b, 0x97, 0xec, 0xdf, 0xf5, + 0xfd, 0xa3, 0x96, 0x35, 0xa0, 0x04, 0x7d, 0xcb, 0x00, 0xb0, 0xfd, 0x5e, 0xcf, 0xf7, 0xda, 0x7d, + 0x62, 0x2b, 0xf7, 0xdb, 0x6c, 0x4c, 0x70, 0x2a, 0x34, 0x5a, 0x82, 0x8d, 0xce, 0xbd, 0x79, 0x43, + 0xe9, 0x83, 0xc6, 0x71, 0x58, 0x13, 0x6b, 0x7e, 0x3f, 0x07, 0x45, 0x31, 0xaf, 0x67, 0xb0, 0x17, + 0xde, 0x87, 0x02, 0xe5, 0x53, 0xcd, 0x09, 0xee, 0x6f, 0x4e, 0x34, 0x55, 0xb9, 0x06, 0x7d, 0x62, + 0x37, 0x67, 0x95, 0xac, 0x02, 0xff, 0xc2, 0x82, 0x33, 0x3a, 0x84, 0x12, 0x65, 0x16, 0x1b, 0x50, + 0xb1, 0x7b, 0xaa, 0x77, 0x7e, 0x76, 0x0a, 0x19, 0x82, 0x4f, 0xbc, 0xae, 0xf2, 0x1b, 0x2b, 0xfe, + 0xe6, 0x0f, 0x72, 0x50, 0x15, 0x74, 0x2d, 0xdf, 0xeb, 0x38, 0xdd, 0x67, 0x60, 0xbd, 0x4e, 0xc2, + 0x7a, 0x6b, 0x93, 0xcf, 0x4c, 0x6a, 0x7c, 0xaa, 0x0d, 0xbd, 0x94, 0x0d, 0x37, 0xa6, 0x96, 0x74, + 0xb6, 0x25, 0xff, 0xc5, 0x80, 0x79, 0x8d, 0x7a, 0xc7, 0xa1, 0x0c, 0xfd, 0xfc, 0x98, 0x35, 0x1b, + 0x9f, 0xce, 0x9a, 0x7c, 0xb4, 0xb0, 0xe5, 0x82, 0x92, 0x56, 0x0e, 0x21, 0x9a, 0x25, 0x09, 0x14, + 0x1d, 0x46, 0x7a, 0xb4, 0x96, 0xbb, 0x95, 0x9f, 0xce, 0x49, 0xa4, 0xca, 0xcd, 0xcb, 0x4a, 0x58, + 0x71, 0x8b, 0xb3, 0xc5, 0x92, 0xbb, 0xf9, 0xa8, 0x90, 0x98, 0x18, 0x37, 0x31, 0x1a, 0x40, 0x99, + 0x05, 0x4e, 0xb7, 0x4b, 0x02, 0x5a, 0x33, 0x84, 0xf4, 0xcd, 0xc9, 0xa5, 0xef, 0x49, 0x4e, 0xbb, + 0xbe, 0xeb, 0xd8, 0x27, 0xf1, 0x8c, 0x15, 0x98, 0xe2, 0x48, 0x14, 0x5a, 0x85, 0x4a, 0x30, 0xf0, + 0x24, 0xa1, 0xba, 0x88, 0xbe, 0xa4, 0xc8, 0x2b, 0x38, 0x44, 0x3c, 0x1e, 0xd6, 0xe7, 0xe4, 0x25, + 0x19, 0x42, 0x70, 0x3c, 0x0a, 0xd1, 0xc4, 0x69, 0x25, 0x5d, 0xe3, 0x67, 0xa6, 0x38, 0xad, 0x84, + 0xff, 0x45, 0x1e, 0x1f, 0xc3, 0xf4, 0xd3, 0x09, 0x1d, 0xc0, 0x4d, 0x3a, 0xb0, 0x6d, 0x42, 0x69, + 0x67, 0xe0, 0x0a, 0xdd, 0xe8, 0x5d, 0x87, 0x32, 0x3f, 0x38, 0xd9, 0x71, 0xf8, 0x1d, 0xc9, 0xaf, + 0xba, 0x62, 0xf3, 0xd6, 0x68, 0x58, 0xbf, 0xd9, 0x3e, 0x83, 0x0e, 0x9f, 0xc9, 0x05, 0xfd, 0x1c, + 0xd4, 0x3a, 0x96, 0xe3, 0x92, 0x83, 0x0c, 0x09, 0x45, 0x21, 0xe1, 0xe6, 0x68, 0x58, 0xaf, 0x6d, + 0x9c, 0x42, 0x83, 0x4f, 0x1d, 0x6d, 0x6e, 0xc3, 0xe2, 0xd8, 0x46, 0x40, 0xaf, 0x42, 0xd5, 0xb5, + 0x28, 0x7b, 0x87, 0x04, 0xfc, 0xb2, 0x11, 0xfe, 0x9d, 0x8f, 0xef, 0xca, 0x9d, 0x18, 0x85, 0x75, + 0x3a, 0xf3, 0x1f, 0x0c, 0xa8, 0x08, 0x66, 0xcf, 0x60, 0x87, 0xfc, 0x62, 0x72, 0x87, 0xbc, 0x31, + 0xb9, 0x8f, 0x9e, 0xb2, 0x37, 0x00, 0xca, 0x72, 0x2e, 0x7e, 0xd7, 0xfc, 0x4e, 0xb8, 0x4f, 0x76, + 0xfc, 0x6e, 0x18, 0x98, 0xad, 0x40, 0xc5, 0xf6, 0x3d, 0x66, 0xf1, 0x49, 0xa8, 0x1b, 0x76, 0x31, + 0x74, 0xd8, 0x56, 0x88, 0xc0, 0x31, 0x0d, 0xbf, 0x8f, 0x3b, 0xbe, 0xeb, 0xfa, 0x0f, 0x85, 0x7b, + 0x97, 0xe3, 0xd3, 0x66, 0x43, 0x40, 0xb1, 0xc2, 0xa2, 0x17, 0xa1, 0xdc, 0xe7, 0xf7, 0xbc, 0xaf, + 0xce, 0xb7, 0x72, 0x6c, 0x87, 0x5d, 0x05, 0xc7, 0x11, 0x05, 0x7a, 0x05, 0x66, 0xa9, 0xe3, 0xd9, + 0xa4, 0x4d, 0x6c, 0xdf, 0x3b, 0xa0, 0xc2, 0xdf, 0xf2, 0xcd, 0x85, 0xd1, 0xb0, 0x3e, 0xdb, 0xd6, + 0xe0, 0x38, 0x41, 0x85, 0xde, 0x85, 0x8a, 0xf8, 0xde, 0x73, 0x54, 0x3c, 0x55, 0xbd, 0xf3, 0xe3, + 0x9f, 0x6e, 0x71, 0xf8, 0x88, 0xe6, 0x65, 0x3e, 0xc9, 0x76, 0xc8, 0x00, 0xc7, 0xbc, 0xd0, 0x1d, + 0x00, 0x1e, 0x4e, 0x53, 0x66, 0xf5, 0xfa, 0x54, 0x04, 0x59, 0xe5, 0x78, 0x0b, 0xed, 0x45, 0x18, + 0xac, 0x51, 0xa1, 0xaf, 0x40, 0x85, 0x59, 0x8e, 0xbb, 0xe3, 0x78, 0x84, 0x8a, 0x70, 0x2a, 0x2f, + 0x05, 0xec, 0x85, 0x40, 0x1c, 0xe3, 0x51, 0x03, 0xc0, 0xe5, 0x8e, 0xdb, 0x3c, 0x61, 0x84, 0x8a, + 0x70, 0x29, 0xdf, 0x9c, 0xe3, 0xcc, 0x77, 0x22, 0x28, 0xd6, 0x28, 0xb8, 0xd5, 0x3d, 0xff, 0xa1, + 0xe5, 0xb0, 0x5a, 0x25, 0x69, 0xf5, 0x7b, 0xfe, 0xbb, 0x96, 0xc3, 0xb0, 0xc2, 0xa2, 0xe7, 0x60, + 0xe6, 0x58, 0xb9, 0x3b, 0x08, 0xa6, 0x55, 0x1e, 0x99, 0x86, 0x6e, 0x1e, 0xe2, 0xcc, 0xbf, 0x0c, + 0x2f, 0xd5, 0xfb, 0x03, 0xd6, 0x1f, 0x30, 0xb4, 0x0e, 0x39, 0xe6, 0x2b, 0xf7, 0x7e, 0x29, 0xb4, + 0x60, 0x1c, 0xf7, 0x87, 0xf6, 0x8b, 0xaf, 0x51, 0x4c, 0x3a, 0x24, 0x20, 0x9e, 0x4d, 0x9a, 0xa5, + 0xd1, 0xb0, 0x9e, 0xdb, 0xf3, 0x71, 0x8e, 0xf9, 0x68, 0x1f, 0xa0, 0x3f, 0xa0, 0x87, 0x6d, 0x62, + 0x07, 0x84, 0xa9, 0xfb, 0xf3, 0xce, 0xd9, 0xec, 0x76, 0x7c, 0xdb, 0x72, 0xd3, 0x3c, 0x85, 0x25, + 0x76, 0x23, 0x4e, 0x58, 0xe3, 0x8a, 0x8e, 0xa1, 0xea, 0xf4, 0xac, 0x2e, 0xd9, 0xb1, 0xf6, 0x89, + 0xcb, 0x5d, 0x2b, 0x3f, 0xf1, 0xf9, 0xb8, 0x15, 0xf1, 0x89, 0x4f, 0x85, 0x18, 0x46, 0xb1, 0x2e, + 0xc8, 0xfc, 0x55, 0x03, 0x96, 0x84, 0xc9, 0x76, 0x7d, 0xca, 0x64, 0xe0, 0x2a, 0x4e, 0xce, 0xe7, + 0x60, 0x86, 0x9f, 0xa3, 0x96, 0x77, 0x20, 0xee, 0x99, 0x8a, 0xb4, 0x78, 0x4b, 0x82, 0x70, 0x88, + 0x43, 0x37, 0xa1, 0x60, 0x05, 0x5d, 0xb9, 0xcf, 0x2b, 0xcd, 0x32, 0x0f, 0x05, 0x56, 0x83, 0x2e, + 0xc5, 0x02, 0xca, 0x97, 0x97, 0xda, 0x81, 0xd3, 0x1f, 0x4b, 0x46, 0xda, 0x02, 0x8a, 0x15, 0xd6, + 0xfc, 0xdb, 0x32, 0xcc, 0xea, 0xe9, 0xd5, 0x33, 0x88, 0x86, 0x7a, 0x50, 0x0e, 0xc3, 0x75, 0xb5, + 0xa2, 0xad, 0x89, 0x8c, 0x2d, 0xc3, 0x79, 0xac, 0x58, 0x35, 0x67, 0xf9, 0x41, 0x10, 0x7e, 0xe1, + 0x48, 0x04, 0xf2, 0x61, 0x41, 0x5d, 0xa6, 0xe4, 0xa0, 0x79, 0x22, 0x56, 0x43, 0xdd, 0x81, 0xe7, + 0xf4, 0xcb, 0x2b, 0xa3, 0x61, 0x7d, 0x61, 0x2f, 0xc5, 0x0a, 0x8f, 0x31, 0x47, 0x5f, 0x83, 0x42, + 0x27, 0xf0, 0x7b, 0xe2, 0xc4, 0x39, 0xb7, 0x10, 0xb1, 0x8e, 0x1b, 0x81, 0xdf, 0xc3, 0x82, 0x09, + 0x7a, 0x00, 0xa5, 0x7d, 0x91, 0xc1, 0xa8, 0xd3, 0x68, 0xc2, 0x90, 0x2e, 0x9d, 0x04, 0x35, 0x81, + 0xfb, 0x82, 0x04, 0x63, 0x25, 0x01, 0xdd, 0x4e, 0xde, 0x6e, 0x25, 0xb1, 0xdd, 0xe7, 0xcf, 0xba, + 0xd9, 0x50, 0x0b, 0xf2, 0xc4, 0x3b, 0xae, 0xcd, 0x88, 0x3d, 0xf3, 0x63, 0x67, 0x4f, 0x75, 0xdd, + 0x3b, 0x7e, 0xc7, 0x0a, 0x9a, 0x55, 0xe5, 0x1c, 0xf9, 0x75, 0xef, 0x18, 0xf3, 0xd1, 0xe8, 0x97, + 0xa1, 0xaa, 0x19, 0xb1, 0x56, 0x16, 0xcc, 0x36, 0xa6, 0x0e, 0xae, 0x64, 0x36, 0x15, 0xed, 0x43, + 0x6d, 0xe5, 0xb0, 0x2e, 0x0f, 0xfd, 0xa1, 0x01, 0x57, 0x0f, 0x7c, 0xfb, 0x88, 0x04, 0x6d, 0x16, + 0x58, 0x8c, 0x74, 0x4f, 0xd4, 0x55, 0x26, 0x4e, 0xc6, 0xea, 0x9d, 0xed, 0x89, 0x34, 0x59, 0xcb, + 0xe2, 0xd8, 0xbc, 0x3e, 0x1a, 0xd6, 0xaf, 0x66, 0xa2, 0x70, 0xb6, 0x0e, 0x42, 0x3b, 0x2a, 0xd6, + 0x2c, 0xad, 0x1d, 0x4c, 0xa1, 0x5d, 0x3b, 0x8b, 0xa3, 0xd4, 0x2e, 0x13, 0x85, 0xb3, 0x75, 0x30, + 0xff, 0xba, 0xa8, 0x8e, 0x7d, 0x95, 0x5b, 0xbf, 0x0c, 0x05, 0x76, 0xd2, 0x0f, 0x33, 0xeb, 0x7a, + 0x98, 0xa3, 0xec, 0x9d, 0xf4, 0xc9, 0xe3, 0x61, 0x7d, 0x5e, 0x23, 0xe5, 0x20, 0x2c, 0x88, 0x35, + 0x1f, 0xcf, 0x3d, 0x75, 0x1f, 0x6f, 0x00, 0x48, 0x3b, 0x77, 0x1c, 0x97, 0x84, 0x67, 0x23, 0x3f, + 0xaa, 0xd6, 0x22, 0x28, 0xd6, 0x28, 0xd0, 0x2f, 0x40, 0xbe, 0xab, 0xa2, 0xd5, 0x49, 0xcf, 0xa9, + 0x4d, 0x87, 0xe9, 0x5a, 0xcd, 0x70, 0xdf, 0xdf, 0x74, 0x18, 0xe6, 0x8c, 0x79, 0xda, 0x2b, 0xee, + 0x04, 0x5a, 0x2b, 0x4e, 0x91, 0xd1, 0x88, 0x83, 0x47, 0xf1, 0x8f, 0x4e, 0x7a, 0x01, 0xa4, 0x58, + 0xf1, 0xe7, 0x11, 0x08, 0x8f, 0xb9, 0xc8, 0x87, 0x6c, 0xcd, 0x09, 0x54, 0x99, 0x47, 0x0b, 0xe2, + 0x43, 0x0c, 0xd6, 0xa8, 0xd0, 0x21, 0xcc, 0xaa, 0x75, 0x97, 0x17, 0xf0, 0xcc, 0xc4, 0x17, 0xb0, + 0x0c, 0xbc, 0x34, 0x5e, 0x38, 0xc1, 0x19, 0x7d, 0x00, 0x33, 0x54, 0xfc, 0xa2, 0x53, 0xed, 0x7f, + 0xc9, 0x4d, 0x37, 0x77, 0x54, 0x4c, 0x93, 0x28, 0x8a, 0x43, 0x39, 0xe6, 0xff, 0x84, 0x51, 0xb9, + 0xb8, 0x75, 0x69, 0x46, 0x49, 0xe7, 0xa9, 0x27, 0x49, 0xa9, 0x93, 0x2f, 0xf7, 0x6c, 0x4f, 0x3e, + 0xf3, 0xfb, 0x33, 0xe1, 0xee, 0x95, 0xe9, 0xcd, 0x6d, 0x28, 0xf6, 0x0f, 0x2d, 0x1a, 0x6e, 0xdf, + 0xcf, 0x87, 0xf1, 0xff, 0x2e, 0x07, 0x3e, 0x1e, 0xd6, 0x41, 0x86, 0x2b, 0xfc, 0x0b, 0x4b, 0x4a, + 0x11, 0xed, 0x5b, 0x9e, 0x4d, 0x5c, 0x97, 0x1c, 0xa8, 0xf8, 0x3d, 0x8e, 0xf6, 0x43, 0x04, 0x8e, + 0x69, 0xd0, 0x6b, 0x50, 0x0a, 0x88, 0x45, 0x7d, 0x4f, 0x6d, 0xbe, 0xe5, 0xd0, 0x5d, 0xb1, 0x80, + 0x3e, 0xe6, 0x6e, 0x22, 0xab, 0x0c, 0xe2, 0x1b, 0x2b, 0x6a, 0xf4, 0x02, 0xcc, 0xf4, 0xce, 0xae, + 0x92, 0x86, 0x78, 0xd4, 0x81, 0x39, 0xca, 0xac, 0x80, 0x45, 0x61, 0xf5, 0x04, 0x91, 0x3c, 0x1a, + 0x0d, 0xeb, 0x73, 0xed, 0x04, 0x17, 0x9c, 0xe2, 0x8a, 0x06, 0xb0, 0x64, 0xfb, 0xbd, 0xbe, 0x4b, + 0xf8, 0x59, 0x18, 0x0b, 0x2b, 0x9d, 0x5b, 0xd8, 0xb5, 0xd1, 0xb0, 0xbe, 0xd4, 0x1a, 0x67, 0x85, + 0xb3, 0xf8, 0xa3, 0xaf, 0x42, 0xf9, 0x60, 0x10, 0x58, 0x1c, 0xa8, 0xb2, 0x82, 0x2f, 0x86, 0x79, + 0xd0, 0x9a, 0x82, 0x3f, 0x1e, 0xd6, 0x2f, 0xf3, 0x44, 0xa2, 0x11, 0x02, 0x70, 0x34, 0x04, 0xed, + 0xc3, 0x0d, 0x5f, 0xc4, 0xe8, 0xf2, 0xc4, 0x93, 0x51, 0x4c, 0xb8, 0x4f, 0x55, 0x9d, 0xd5, 0x54, + 0x0c, 0x6f, 0xdc, 0x3f, 0x95, 0x12, 0x9f, 0xc1, 0x05, 0x7d, 0x1d, 0x4a, 0xb6, 0xc8, 0x9b, 0xd5, 0x15, 0x7a, 0xce, 0x20, 0x08, 0x64, 0xd5, 0x9c, 0x33, 0xc0, 0x8a, 0x11, 0xf2, 0xa0, 0x24, 0x05, - 0xaa, 0x7b, 0x6f, 0x63, 0xd6, 0xfa, 0xa0, 0x9c, 0x5a, 0x7c, 0x5c, 0xca, 0x6f, 0xac, 0xa4, 0xa0, - 0xae, 0xa8, 0xa5, 0xf1, 0x83, 0xb9, 0x26, 0x76, 0xe5, 0x74, 0x35, 0xcf, 0x0e, 0x67, 0xb1, 0xe5, - 0x75, 0xfd, 0x44, 0x0d, 0x4d, 0x1c, 0xcb, 0x92, 0x3b, 0x3f, 0x96, 0x5d, 0xbf, 0xd7, 0xf1, 0x9c, - 0xc1, 0x80, 0xb0, 0xfa, 0x5c, 0xf2, 0x58, 0xde, 0x89, 0x30, 0x58, 0xa3, 0x32, 0x87, 0xaa, 0x36, - 0xa1, 0x4f, 0x04, 0xbd, 0xab, 0x65, 0x5c, 0xf7, 0x2e, 0xc6, 0x38, 0x7b, 0xbe, 0x9e, 0x8c, 0x99, - 0x3b, 0x2a, 0x5f, 0x49, 0x92, 0xa0, 0x97, 0x55, 0xfe, 0xb4, 0xe6, 0xf4, 0x08, 0x65, 0xea, 0xec, + 0xaa, 0x7b, 0x6f, 0x63, 0xda, 0xfa, 0xa0, 0x9c, 0x5a, 0x7c, 0x5c, 0xca, 0x6f, 0xac, 0xa4, 0xa0, + 0x8e, 0xa8, 0xa5, 0xf1, 0x83, 0xb9, 0x2a, 0x76, 0xe5, 0x64, 0x35, 0xcf, 0x36, 0x67, 0xb1, 0xe5, + 0x75, 0xfc, 0x44, 0x0d, 0x4d, 0x1c, 0xcb, 0x92, 0x3b, 0x3f, 0x96, 0x5d, 0xbf, 0xdb, 0xf6, 0x9c, + 0x7e, 0x9f, 0xb0, 0xda, 0x6c, 0xf2, 0x58, 0xde, 0x89, 0x30, 0x58, 0xa3, 0x32, 0x07, 0xaa, 0x36, + 0xa1, 0x4f, 0x04, 0xbd, 0xaf, 0x65, 0x5c, 0x77, 0x2f, 0xc6, 0x38, 0x7b, 0xbe, 0x9e, 0x8c, 0x99, + 0x3b, 0x2a, 0x5f, 0x49, 0x92, 0xa0, 0x57, 0x55, 0xfe, 0xb4, 0xe6, 0x74, 0x09, 0x65, 0xea, 0xec, 0x48, 0xa6, 0x3f, 0x12, 0x85, 0x75, 0x3a, 0xf3, 0xdb, 0x45, 0xb8, 0xac, 0xd8, 0xc9, 0x98, 0x02, - 0xbd, 0x9c, 0x08, 0x1e, 0xbe, 0x98, 0x0a, 0x1e, 0x16, 0x13, 0xc4, 0x5a, 0xf8, 0xf0, 0x6b, 0x06, - 0xcc, 0x27, 0x63, 0x27, 0x15, 0x47, 0xdc, 0x9b, 0x21, 0x70, 0x4b, 0x08, 0x93, 0xa7, 0x41, 0x32, - 0x6c, 0xc3, 0x29, 0x99, 0x42, 0x8d, 0x64, 0x90, 0xa4, 0xd2, 0x8c, 0x7b, 0x33, 0x44, 0x68, 0x19, - 0x6a, 0x24, 0xe3, 0x33, 0x9c, 0x92, 0x29, 0xd4, 0xb0, 0x87, 0x94, 0xf9, 0xfd, 0x48, 0x8d, 0xc2, - 0x0c, 0x6a, 0xb4, 0x05, 0xab, 0x0c, 0x35, 0xda, 0x09, 0x19, 0x38, 0x25, 0x13, 0x7d, 0xcf, 0x80, - 0xeb, 0xef, 0x11, 0xef, 0xc8, 0xf1, 0xe8, 0xae, 0x33, 0x20, 0xae, 0xe3, 0xc5, 0x66, 0x91, 0xa7, - 0xf1, 0xd7, 0xa7, 0xd2, 0x67, 0x3b, 0xc9, 0x33, 0xa9, 0xd8, 0xe7, 0xc7, 0xa3, 0xc6, 0xf5, 0xed, - 0x6c, 0xa9, 0xf8, 0x34, 0x75, 0xcc, 0xff, 0x28, 0xaa, 0xed, 0xa4, 0xdf, 0x9e, 0xfa, 0x7d, 0x63, - 0x3c, 0xe6, 0xbe, 0xe1, 0x26, 0x17, 0xcd, 0x4b, 0xc7, 0x56, 0xcd, 0x9a, 0x99, 0x1c, 0x70, 0x33, - 0xc1, 0x4a, 0xde, 0xe5, 0xc2, 0xe4, 0x49, 0x04, 0x4e, 0xc9, 0x44, 0x1f, 0x1a, 0x70, 0x59, 0xca, - 0x0b, 0xb5, 0xc8, 0xcf, 0xd0, 0x98, 0xda, 0x74, 0xd8, 0xbd, 0x88, 0x93, 0x54, 0x62, 0x71, 0x3c, - 0x6a, 0x5c, 0x4e, 0xc0, 0x71, 0x52, 0x20, 0xfa, 0x8e, 0x01, 0x0b, 0x62, 0x8f, 0xb7, 0x0f, 0x2d, - 0xaf, 0x27, 0x57, 0x47, 0xb9, 0xdf, 0xfa, 0xf4, 0x81, 0xad, 0x64, 0x26, 0x75, 0x10, 0x49, 0xf8, - 0x56, 0x4a, 0x04, 0x9e, 0x10, 0x1a, 0x1a, 0xc3, 0xb5, 0x22, 0x63, 0x14, 0x67, 0x33, 0xc6, 0x8e, - 0x95, 0x6d, 0x8c, 0x18, 0x8e, 0x93, 0x02, 0xd1, 0x6f, 0x1a, 0xb0, 0xb0, 0x9f, 0xea, 0x1f, 0xaa, - 0xe0, 0x60, 0x7b, 0xca, 0x0c, 0x27, 0xa3, 0x19, 0x29, 0x2d, 0x92, 0x46, 0xe1, 0x09, 0xc9, 0xe6, - 0xef, 0x14, 0x01, 0x4d, 0xf6, 0x1e, 0xd0, 0x4b, 0x89, 0x43, 0xf7, 0x76, 0xea, 0xd0, 0x5d, 0xd0, - 0x47, 0x68, 0x67, 0xae, 0x07, 0x25, 0x39, 0x83, 0x99, 0x2a, 0x38, 0x4a, 0x35, 0xc5, 0x3e, 0xcb, - 0xbf, 0x94, 0x14, 0x9e, 0x1e, 0x28, 0x6f, 0x57, 0x4e, 0x7d, 0x21, 0x02, 0xb3, 0x76, 0x55, 0x28, - 0x07, 0x7d, 0x53, 0x5d, 0x6b, 0xd2, 0xab, 0x94, 0x17, 0x6f, 0xce, 0xea, 0xc5, 0xa1, 0xe8, 0x2b, - 0xd1, 0xdd, 0x28, 0xe1, 0x58, 0x17, 0xa6, 0xcc, 0xeb, 0x5a, 0xfb, 0xca, 0x6b, 0x2f, 0xd4, 0xbc, - 0x9a, 0xc7, 0x2a, 0x29, 0xe8, 0x21, 0x54, 0x23, 0x7f, 0x51, 0x2e, 0x7a, 0x21, 0x22, 0xb3, 0x7d, - 0x33, 0x96, 0x65, 0xfe, 0x5d, 0x19, 0xb4, 0xdc, 0x08, 0xbd, 0x0e, 0xf3, 0x94, 0x04, 0xc7, 0x8e, - 0x4d, 0x56, 0x6d, 0xdb, 0x1f, 0x7a, 0x61, 0x34, 0x11, 0xf5, 0xfd, 0x3b, 0x09, 0x2c, 0x4e, 0x51, - 0x8b, 0x26, 0xb2, 0xb8, 0x0e, 0x95, 0x5b, 0xce, 0xd2, 0x44, 0x4e, 0x65, 0xd3, 0xaa, 0xda, 0xa8, - 0xf8, 0x27, 0x8a, 0x98, 0xf9, 0x27, 0x5f, 0xc4, 0x1c, 0x40, 0x85, 0x26, 0xaf, 0xf3, 0xd6, 0x2c, - 0x21, 0x9e, 0xba, 0x2f, 0xa3, 0xfe, 0x49, 0x74, 0x49, 0x46, 0x52, 0xb8, 0x29, 0x55, 0xbc, 0x5d, - 0x9c, 0xd5, 0x94, 0x8f, 0x89, 0xb4, 0x6d, 0xa8, 0x06, 0x44, 0x9a, 0x95, 0x2a, 0xe7, 0x7b, 0x4c, - 0x85, 0x01, 0x2b, 0x72, 0x4c, 0xde, 0x1f, 0x3a, 0x01, 0xe9, 0x13, 0x8f, 0xd1, 0x38, 0xed, 0x0c, - 0xb1, 0x14, 0xc7, 0x7c, 0xd1, 0x2f, 0x01, 0x0c, 0xa2, 0x32, 0xbb, 0xaa, 0x63, 0xcc, 0x10, 0x25, - 0x27, 0x4b, 0xf6, 0x71, 0xc0, 0x1e, 0xc3, 0xb1, 0x26, 0x0f, 0x7d, 0x03, 0x6e, 0xc4, 0x99, 0xdc, - 0x1a, 0xb1, 0x0e, 0x44, 0x00, 0xa2, 0x3a, 0x53, 0xb2, 0x57, 0xf3, 0x85, 0xf1, 0xa8, 0x71, 0xa3, - 0x7d, 0x1a, 0x11, 0x3e, 0x7d, 0x3c, 0xfa, 0x15, 0x98, 0xf3, 0xfc, 0x03, 0xd2, 0x21, 0x2e, 0xb1, - 0x99, 0x1f, 0xa8, 0x94, 0x6b, 0x6b, 0xaa, 0xc9, 0xc9, 0xba, 0x9e, 0xe5, 0xde, 0xd7, 0x18, 0xca, - 0xda, 0x8d, 0x0e, 0xc1, 0x09, 0x81, 0xe6, 0xf7, 0x0d, 0xc8, 0x78, 0xab, 0x92, 0xd8, 0x22, 0xc6, - 0x93, 0xdf, 0x22, 0x5f, 0x86, 0x12, 0x8d, 0xdb, 0x44, 0x7a, 0xc7, 0x43, 0xd6, 0x9b, 0x14, 0xd6, - 0xfc, 0xeb, 0x02, 0x2c, 0x65, 0x44, 0xb5, 0xe8, 0x81, 0x2a, 0xdb, 0x4f, 0xd5, 0xb3, 0x8a, 0x5e, - 0x63, 0x68, 0xa5, 0x7b, 0xd1, 0xbb, 0x72, 0xdd, 0x8b, 0xea, 0x5d, 0x85, 0x9c, 0xb0, 0xc6, 0x35, - 0xac, 0xbf, 0xe7, 0x67, 0xaa, 0xbf, 0x6f, 0x03, 0x22, 0x1f, 0x0c, 0x7c, 0x4a, 0x54, 0x86, 0xe3, - 0x8b, 0x6b, 0xa0, 0x20, 0x8a, 0x39, 0xd1, 0x63, 0xa4, 0xf5, 0x09, 0x0a, 0x9c, 0x31, 0x0a, 0xad, - 0x40, 0xb5, 0xeb, 0x07, 0x36, 0xe1, 0xfa, 0x8a, 0x93, 0x43, 0xab, 0x07, 0x6d, 0x84, 0x08, 0x1c, - 0xd3, 0xa0, 0xf7, 0xe2, 0xc2, 0x5f, 0x69, 0x86, 0xce, 0x9b, 0xb4, 0x87, 0xd8, 0x8c, 0xa7, 0x56, - 0xfc, 0xd0, 0x2a, 0x5c, 0x11, 0x03, 0x56, 0x77, 0xb7, 0xc2, 0x26, 0x87, 0x7c, 0xa5, 0x76, 0x5d, - 0x0d, 0x91, 0x05, 0xea, 0x18, 0x8d, 0xd3, 0xf4, 0xe6, 0x7f, 0x15, 0x60, 0x29, 0x23, 0x43, 0x8c, - 0x9a, 0x3e, 0xc6, 0x45, 0x34, 0x7d, 0x9e, 0x86, 0xe7, 0x3c, 0x07, 0x65, 0xcf, 0x6f, 0x5b, 0xf6, - 0x21, 0x51, 0xcd, 0xf4, 0xc8, 0x6c, 0xf7, 0x25, 0x18, 0x87, 0xf8, 0xd0, 0xc9, 0x0a, 0x33, 0x39, - 0xd9, 0xb9, 0x1d, 0xe3, 0xf5, 0x30, 0xab, 0xef, 0x3a, 0x2e, 0xd9, 0xb5, 0xd8, 0xa1, 0xaa, 0x59, - 0x47, 0xb1, 0xc0, 0x5a, 0x02, 0x8b, 0x53, 0xd4, 0xe8, 0x4d, 0xa8, 0xca, 0xc5, 0x0b, 0x7a, 0xf4, - 0x5c, 0x0d, 0xaa, 0x48, 0xad, 0x56, 0x38, 0x1c, 0xc7, 0x9c, 0xd0, 0x00, 0xae, 0x8b, 0x48, 0x8d, - 0x9f, 0x94, 0x7d, 0xe7, 0x9b, 0xa2, 0xa6, 0xa6, 0x5e, 0xe7, 0xc8, 0xda, 0xd9, 0x2b, 0x3c, 0x09, - 0xdd, 0xca, 0x26, 0x79, 0x74, 0x3a, 0x0a, 0x9f, 0xc6, 0xd6, 0xfc, 0x3d, 0x03, 0xb2, 0x5b, 0x46, - 0xc9, 0x29, 0x1a, 0x17, 0x36, 0xc5, 0x67, 0x62, 0xd7, 0x90, 0x15, 0xdd, 0x5a, 0x96, 0x5b, 0x98, - 0x7f, 0x6a, 0xc0, 0x52, 0x46, 0xae, 0xfa, 0x59, 0x3d, 0xf7, 0xbf, 0x9d, 0x4f, 0xab, 0xbb, 0x7e, - 0x4c, 0x3c, 0x36, 0x5d, 0xcb, 0xea, 0x6d, 0xd9, 0x16, 0x92, 0x5b, 0xf3, 0xa7, 0xa7, 0xcd, 0x29, - 0x45, 0x61, 0x30, 0xd9, 0x0f, 0xba, 0x90, 0x03, 0xfd, 0xf4, 0x8e, 0x66, 0xe1, 0x7f, 0xbf, 0xa3, - 0x69, 0xfe, 0xd0, 0x80, 0xf9, 0x64, 0x4f, 0x0c, 0x7d, 0x01, 0xf2, 0xc3, 0xc0, 0x51, 0x4b, 0x10, - 0xcd, 0xe7, 0x4d, 0xbc, 0x85, 0x39, 0x9c, 0xa3, 0x03, 0xd2, 0x55, 0xeb, 0x1b, 0xa1, 0x31, 0xe9, - 0x62, 0x0e, 0x47, 0x0f, 0xa1, 0x36, 0x08, 0xfc, 0x0f, 0x4e, 0x64, 0xc5, 0x78, 0xa6, 0xf7, 0xa3, - 0xbb, 0x31, 0x9f, 0xb8, 0x84, 0xa9, 0x01, 0xb1, 0x2e, 0x49, 0x04, 0x3e, 0x93, 0x75, 0x92, 0xcf, - 0xea, 0x06, 0xf8, 0x93, 0x1c, 0x94, 0x95, 0xd3, 0xa1, 0x6f, 0x19, 0x30, 0xdf, 0x4b, 0xac, 0xc1, - 0x4c, 0x9a, 0xa6, 0x5a, 0x9c, 0xd1, 0x11, 0x9d, 0x84, 0xe3, 0x94, 0x48, 0xf4, 0x5b, 0x06, 0x2c, - 0xf6, 0x1c, 0x96, 0x9c, 0xe7, 0x4c, 0x4d, 0xe0, 0xcd, 0x34, 0xb7, 0xd6, 0x0d, 0xa5, 0xcb, 0xe2, - 0x04, 0x0a, 0x4f, 0xca, 0x36, 0xff, 0x40, 0xae, 0x68, 0xaa, 0xd8, 0xf3, 0x19, 0x79, 0xf0, 0xfd, - 0x8f, 0x39, 0x98, 0x9c, 0x05, 0x5f, 0x7e, 0x5b, 0x66, 0x35, 0x46, 0xe6, 0xdf, 0x0e, 0x14, 0x16, - 0x79, 0x50, 0xb2, 0xc4, 0xbb, 0xfd, 0x99, 0x0c, 0x2c, 0x85, 0xb7, 0x7d, 0x8f, 0x05, 0xbe, 0xfb, - 0x26, 0x25, 0x81, 0xf6, 0x7c, 0x5e, 0x70, 0xc7, 0x4a, 0x0a, 0x7a, 0x08, 0x55, 0x3b, 0x7c, 0x8d, - 0x3f, 0xd3, 0x7b, 0xe4, 0x49, 0x91, 0xda, 0x7b, 0x42, 0x25, 0x00, 0xc7, 0xb2, 0xce, 0xd1, 0x29, - 0x34, 0x7f, 0xd7, 0x80, 0x85, 0x74, 0x89, 0x91, 0x8f, 0x17, 0x57, 0xf1, 0xd6, 0x5a, 0xba, 0xf2, - 0xbb, 0x25, 0xc1, 0x38, 0xc4, 0xa3, 0x3d, 0x28, 0xf3, 0x80, 0x0d, 0xab, 0xc3, 0xe9, 0xdc, 0x81, - 0x9f, 0xb8, 0x58, 0x37, 0x24, 0x07, 0x1c, 0xb2, 0x32, 0xff, 0xd2, 0x00, 0x34, 0x59, 0x32, 0x42, - 0xbb, 0x70, 0xd5, 0xb5, 0x28, 0x8b, 0xba, 0xb9, 0x5b, 0x09, 0x25, 0x6f, 0x29, 0x25, 0xaf, 0xee, - 0x64, 0xd0, 0xe0, 0xcc, 0x91, 0x51, 0xd0, 0x9a, 0xbb, 0x80, 0xa0, 0xd5, 0xec, 0x00, 0xc4, 0x4f, - 0xdd, 0xd0, 0x6d, 0x28, 0x78, 0x56, 0x3f, 0xbc, 0x55, 0xa3, 0xf4, 0x48, 0xfc, 0xf9, 0x43, 0x60, - 0xd0, 0x97, 0xa0, 0x78, 0x6c, 0xb9, 0xc3, 0xf0, 0xdf, 0x35, 0xd1, 0x63, 0xd3, 0xb7, 0x38, 0x10, - 0x4b, 0x9c, 0xf9, 0x67, 0x39, 0xa8, 0x69, 0x8f, 0x1b, 0x2e, 0x3e, 0x49, 0x73, 0xa0, 0x38, 0xb0, - 0xd8, 0x61, 0xf8, 0x5c, 0x76, 0x6d, 0xd6, 0xe7, 0x17, 0x3c, 0xf4, 0x8c, 0xe7, 0xc2, 0xbf, 0x28, - 0x96, 0x12, 0x52, 0x51, 0x7d, 0xfe, 0x49, 0x44, 0xf5, 0xe6, 0xaf, 0x1b, 0x70, 0x25, 0xa5, 0x0d, - 0xba, 0x0b, 0x40, 0xa3, 0x2f, 0xb5, 0x20, 0x51, 0xc1, 0x22, 0xa6, 0xc3, 0x1a, 0x95, 0x08, 0xbe, - 0x09, 0x65, 0x8e, 0x27, 0x02, 0xd1, 0x35, 0x27, 0x50, 0xab, 0x14, 0x07, 0xdf, 0x09, 0x2c, 0x4e, - 0x51, 0x9b, 0xff, 0x6a, 0xc0, 0xad, 0xb3, 0x5a, 0x35, 0x3c, 0x15, 0x53, 0xfd, 0x98, 0x28, 0xbc, - 0x37, 0x92, 0xa9, 0xd8, 0x76, 0x12, 0x8d, 0xd3, 0xf4, 0xe8, 0x65, 0xa8, 0x69, 0x20, 0xa5, 0x60, - 0x74, 0x69, 0x6b, 0xc3, 0xb1, 0x4e, 0x77, 0x21, 0x11, 0x96, 0xf9, 0x4f, 0x06, 0x5c, 0xcd, 0xaa, - 0x95, 0xa0, 0x93, 0xf0, 0xf9, 0xb5, 0x0c, 0xc7, 0xf7, 0x2e, 0xac, 0x0a, 0xd3, 0x14, 0x8f, 0xb0, - 0xd7, 0x3d, 0x16, 0x9c, 0x64, 0x3f, 0xcc, 0xbe, 0xf9, 0x2a, 0x40, 0x4c, 0x83, 0x16, 0x20, 0x7f, - 0x44, 0x4e, 0xa4, 0x51, 0x31, 0xff, 0x89, 0xae, 0x26, 0x36, 0x9c, 0xda, 0x61, 0xaf, 0xe5, 0x5e, - 0x35, 0x5e, 0xab, 0xfc, 0xfe, 0x1f, 0x37, 0x2e, 0x7d, 0xf8, 0x2f, 0xb7, 0x2f, 0x99, 0xbf, 0x6d, - 0x80, 0x1e, 0xee, 0xa0, 0xaf, 0x40, 0xf5, 0x90, 0xb1, 0x81, 0x00, 0xa9, 0x07, 0x1b, 0xe2, 0x09, - 0xf2, 0xbd, 0xbd, 0xbd, 0x5d, 0x01, 0xc4, 0x31, 0x1e, 0x35, 0x01, 0xf8, 0x07, 0x95, 0xd4, 0x85, - 0xf8, 0x6d, 0x15, 0xa7, 0xee, 0x48, 0x72, 0x8d, 0x42, 0xe6, 0x19, 0x92, 0x58, 0xfe, 0x75, 0x4d, - 0xe5, 0x19, 0x92, 0x32, 0xc4, 0x99, 0x7f, 0x6e, 0xc0, 0xe2, 0xc4, 0xbb, 0x1e, 0xf4, 0x4e, 0x14, - 0xf5, 0x18, 0xd3, 0xef, 0xa4, 0xec, 0x48, 0x69, 0x66, 0xef, 0xff, 0xbe, 0x01, 0x10, 0x17, 0x24, - 0x90, 0x0b, 0x73, 0x92, 0x71, 0x22, 0xd2, 0x9a, 0x46, 0xe1, 0xab, 0x4a, 0x81, 0xb9, 0x8e, 0xc6, - 0x0f, 0x27, 0xb8, 0xf3, 0x44, 0xbb, 0xef, 0x0f, 0x3d, 0x26, 0xf6, 0x54, 0x2e, 0xf9, 0xfe, 0xfe, - 0x8d, 0x10, 0x81, 0x63, 0x1a, 0xf3, 0xbb, 0x45, 0x58, 0xca, 0xe8, 0x36, 0xff, 0x3f, 0x2e, 0x88, - 0x3d, 0x07, 0x65, 0xf9, 0x3c, 0x9a, 0xa6, 0x23, 0x08, 0xf9, 0x7a, 0x9a, 0xe2, 0x10, 0x8f, 0xee, - 0x40, 0xcd, 0xf1, 0x6c, 0x59, 0x83, 0xb6, 0xc2, 0xc2, 0x86, 0x6c, 0xee, 0xc4, 0x60, 0xac, 0xd3, - 0x24, 0x2b, 0x21, 0xa5, 0x4f, 0x51, 0x09, 0xb1, 0x61, 0x4e, 0xfd, 0x1b, 0x57, 0xbe, 0x5e, 0x2e, - 0x4f, 0xb3, 0x20, 0xa2, 0x88, 0x8b, 0x35, 0x36, 0x38, 0xc1, 0x14, 0xfd, 0x86, 0x01, 0x0b, 0x0a, - 0xb0, 0x1a, 0x30, 0xa7, 0x6b, 0xd9, 0xd1, 0x53, 0xbc, 0x8b, 0xb9, 0x14, 0xeb, 0x6a, 0x8e, 0x0b, - 0x38, 0x25, 0x05, 0x4f, 0xc8, 0x35, 0xdf, 0x81, 0xc5, 0x89, 0xa8, 0xef, 0xd3, 0x85, 0x14, 0x44, - 0xfc, 0x5b, 0x34, 0x15, 0x52, 0xc8, 0x3f, 0x89, 0x4a, 0x9c, 0xf9, 0x3d, 0x03, 0xe6, 0x53, 0x21, - 0xf4, 0x54, 0x25, 0x00, 0x4b, 0x2f, 0x01, 0x5c, 0x54, 0xb6, 0x92, 0x28, 0x06, 0x98, 0xdb, 0x90, - 0xfd, 0x1a, 0x37, 0xed, 0x75, 0xc6, 0xe3, 0xbd, 0xce, 0xfc, 0x87, 0x1c, 0x54, 0xa3, 0xd7, 0x48, - 0xe8, 0x85, 0x84, 0x2d, 0x6f, 0xe8, 0xb6, 0x7c, 0x34, 0x6a, 0x48, 0x42, 0xcd, 0xb0, 0xdf, 0x80, - 0x6a, 0xf4, 0xf6, 0x4d, 0xcd, 0xf8, 0x3c, 0xef, 0xdb, 0x22, 0xf7, 0x8e, 0x1e, 0xd4, 0xe1, 0x98, - 0x1f, 0x8f, 0x6b, 0xc3, 0xc7, 0x69, 0x6f, 0x38, 0xae, 0xeb, 0x50, 0xd5, 0x17, 0xc9, 0x8b, 0xbe, - 0x48, 0x14, 0xd7, 0xae, 0x65, 0xd0, 0xe0, 0xcc, 0x91, 0x68, 0x1f, 0x8a, 0x94, 0x91, 0x01, 0x55, - 0x25, 0xcb, 0xaf, 0x4e, 0xf9, 0x74, 0x8b, 0x0c, 0x44, 0x81, 0x26, 0x72, 0x23, 0x0e, 0xa1, 0x58, - 0xb2, 0x36, 0xff, 0xd3, 0x80, 0x4a, 0x48, 0x82, 0x9e, 0x4f, 0x98, 0xb3, 0x9e, 0x32, 0xa7, 0xa0, - 0xfb, 0x3f, 0x6b, 0x4d, 0xb3, 0x0b, 0xf3, 0xc9, 0xb6, 0xae, 0x56, 0x71, 0x30, 0xce, 0xaa, 0x38, - 0xa0, 0xe7, 0xa1, 0x62, 0xb9, 0xae, 0xff, 0x70, 0xdd, 0x3b, 0x56, 0x95, 0xc4, 0xa8, 0xe3, 0xb8, - 0xaa, 0xe0, 0x38, 0xa2, 0x68, 0x3d, 0xfb, 0xd1, 0x27, 0xcb, 0x97, 0x7e, 0xf4, 0xc9, 0xf2, 0xa5, - 0x8f, 0x3f, 0x59, 0xbe, 0xf4, 0xe1, 0x78, 0xd9, 0xf8, 0x68, 0xbc, 0x6c, 0xfc, 0x68, 0xbc, 0x6c, - 0x7c, 0x3c, 0x5e, 0x36, 0xfe, 0x6d, 0xbc, 0x6c, 0x7c, 0xf7, 0xdf, 0x97, 0x2f, 0xbd, 0x93, 0x3b, - 0xbe, 0xf3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x63, 0x21, 0x52, 0xc5, 0x41, 0x00, 0x00, + 0xbd, 0x9a, 0x08, 0x1e, 0xbe, 0x98, 0x0a, 0x1e, 0x16, 0x13, 0xc4, 0x5a, 0xf8, 0xf0, 0x6b, 0x06, + 0xcc, 0x25, 0x63, 0x27, 0x15, 0x47, 0xdc, 0x9d, 0x22, 0x70, 0x4b, 0x08, 0x93, 0xa7, 0x41, 0x32, + 0x6c, 0xc3, 0x29, 0x99, 0x42, 0x8d, 0x64, 0x90, 0xa4, 0xd2, 0x8c, 0xbb, 0x53, 0x44, 0x68, 0x19, + 0x6a, 0x24, 0xe3, 0x33, 0x9c, 0x92, 0x29, 0xd4, 0xb0, 0x07, 0x94, 0xf9, 0xbd, 0x48, 0x8d, 0xc2, + 0x14, 0x6a, 0xb4, 0x04, 0xab, 0x0c, 0x35, 0x5a, 0x09, 0x19, 0x38, 0x25, 0x13, 0x7d, 0xd7, 0x80, + 0x6b, 0x0f, 0x88, 0x77, 0xe4, 0x78, 0x74, 0xd7, 0xe9, 0x13, 0xd7, 0xf1, 0x62, 0xb3, 0xc8, 0xd3, + 0xf8, 0xeb, 0x13, 0xe9, 0xb3, 0x9d, 0xe4, 0x99, 0x54, 0xec, 0xf3, 0xa3, 0x61, 0xfd, 0xda, 0x76, + 0xb6, 0x54, 0x7c, 0x9a, 0x3a, 0xe6, 0x7f, 0x16, 0xd5, 0x76, 0xd2, 0x6f, 0x4f, 0xfd, 0xbe, 0x31, + 0x9e, 0x70, 0xdf, 0x70, 0x93, 0x8b, 0xe6, 0xa5, 0x63, 0xab, 0x66, 0xcd, 0x54, 0x0e, 0xb8, 0x99, + 0x60, 0x25, 0xef, 0x72, 0x61, 0xf2, 0x24, 0x02, 0xa7, 0x64, 0xa2, 0x47, 0x06, 0x5c, 0x96, 0xf2, + 0x42, 0x2d, 0xf2, 0x53, 0x34, 0xa6, 0x36, 0x1d, 0x76, 0x37, 0xe2, 0x24, 0x95, 0x58, 0x1c, 0x0d, + 0xeb, 0x97, 0x13, 0x70, 0x9c, 0x14, 0x88, 0xbe, 0x63, 0xc0, 0x82, 0xd8, 0xe3, 0xad, 0x43, 0xcb, + 0xeb, 0xca, 0xd5, 0x51, 0xee, 0xb7, 0x3e, 0x79, 0x60, 0x2b, 0x99, 0x49, 0x1d, 0x44, 0x12, 0xbe, + 0x95, 0x12, 0x81, 0xc7, 0x84, 0x86, 0xc6, 0x70, 0xad, 0xc8, 0x18, 0xc5, 0xe9, 0x8c, 0xb1, 0x63, + 0x65, 0x1b, 0x23, 0x86, 0xe3, 0xa4, 0x40, 0xf4, 0x1b, 0x06, 0x2c, 0xec, 0xa7, 0xfa, 0x87, 0x2a, + 0x38, 0xd8, 0x9e, 0x30, 0xc3, 0xc9, 0x68, 0x46, 0x4a, 0x8b, 0xa4, 0x51, 0x78, 0x4c, 0xb2, 0xf9, + 0x3b, 0x45, 0x40, 0xe3, 0xbd, 0x07, 0xf4, 0x4a, 0xe2, 0xd0, 0xbd, 0x95, 0x3a, 0x74, 0x17, 0xf4, + 0x11, 0xda, 0x99, 0xeb, 0x41, 0x49, 0xce, 0x60, 0xaa, 0x0a, 0x8e, 0x52, 0x4d, 0xb1, 0xcf, 0xf2, + 0x2f, 0x25, 0x85, 0xa7, 0x07, 0xca, 0xdb, 0x95, 0x53, 0x5f, 0x88, 0xc0, 0xac, 0x5d, 0x15, 0xca, + 0x41, 0xdf, 0x54, 0xd7, 0x9a, 0xf4, 0x2a, 0xe5, 0xc5, 0x9b, 0xd3, 0x7a, 0x71, 0x28, 0x7a, 0x3e, + 0xba, 0x1b, 0x25, 0x1c, 0xeb, 0xc2, 0x94, 0x79, 0x5d, 0x6b, 0x5f, 0x79, 0xed, 0x85, 0x9a, 0x57, + 0xf3, 0x58, 0x25, 0x05, 0x3d, 0x84, 0x4a, 0xe4, 0x2f, 0xca, 0x45, 0x2f, 0x44, 0x64, 0xb6, 0x6f, + 0xc6, 0xb2, 0xcc, 0xbf, 0x9f, 0x01, 0x2d, 0x37, 0x42, 0x6f, 0xc2, 0x1c, 0x25, 0xc1, 0xb1, 0x63, + 0x93, 0x55, 0xdb, 0xf6, 0x07, 0x5e, 0x18, 0x4d, 0x44, 0x7d, 0xff, 0x76, 0x02, 0x8b, 0x53, 0xd4, + 0xa2, 0x89, 0x2c, 0xae, 0x43, 0xe5, 0x96, 0xd3, 0x34, 0x91, 0x53, 0xd9, 0xb4, 0xaa, 0x36, 0x2a, + 0xfe, 0x89, 0x22, 0x66, 0xfe, 0xe9, 0x17, 0x31, 0xfb, 0x50, 0xa6, 0xc9, 0xeb, 0xbc, 0x39, 0x4d, + 0x88, 0xa7, 0xee, 0xcb, 0xa8, 0x7f, 0x12, 0x5d, 0x92, 0x91, 0x14, 0x6e, 0x4a, 0x15, 0x6f, 0x17, + 0xa7, 0x35, 0xe5, 0x13, 0x22, 0x6d, 0x1b, 0x2a, 0x01, 0x91, 0x66, 0xa5, 0xca, 0xf9, 0x9e, 0x50, + 0x61, 0xc0, 0x8a, 0x1c, 0x93, 0x0f, 0x06, 0x4e, 0x40, 0x7a, 0xc4, 0x63, 0x34, 0x4e, 0x3b, 0x43, + 0x2c, 0xc5, 0x31, 0x5f, 0xf4, 0x4b, 0x00, 0xfd, 0xa8, 0xcc, 0xae, 0xea, 0x18, 0x53, 0x44, 0xc9, + 0xc9, 0x92, 0x7d, 0x1c, 0xb0, 0xc7, 0x70, 0xac, 0xc9, 0x43, 0xdf, 0x80, 0xeb, 0x71, 0x26, 0xb7, + 0x46, 0xac, 0x03, 0x11, 0x80, 0xa8, 0xce, 0x94, 0xec, 0xd5, 0x7c, 0x61, 0x34, 0xac, 0x5f, 0x6f, + 0x9d, 0x46, 0x84, 0x4f, 0x1f, 0x8f, 0x7e, 0x05, 0x66, 0x3d, 0xff, 0x80, 0xb4, 0x89, 0x4b, 0x6c, + 0xe6, 0x07, 0x2a, 0xe5, 0xda, 0x9a, 0x68, 0x72, 0xb2, 0xae, 0x67, 0xb9, 0xf7, 0x34, 0x86, 0xb2, + 0x76, 0xa3, 0x43, 0x70, 0x42, 0xa0, 0xf9, 0x3d, 0x03, 0x32, 0xde, 0xaa, 0x24, 0xb6, 0x88, 0xf1, + 0xf4, 0xb7, 0xc8, 0x97, 0xa1, 0x44, 0xe3, 0x36, 0x91, 0xde, 0xf1, 0x90, 0xf5, 0x26, 0x85, 0x35, + 0xff, 0xa6, 0x00, 0x4b, 0x19, 0x51, 0x2d, 0xba, 0xaf, 0xca, 0xf6, 0x13, 0xf5, 0xac, 0xa2, 0xd7, + 0x18, 0x5a, 0xe9, 0x5e, 0xf4, 0xae, 0x5c, 0xf7, 0xa2, 0x7a, 0x57, 0x21, 0x27, 0xac, 0x71, 0x0d, + 0xeb, 0xef, 0xf9, 0xa9, 0xea, 0xef, 0xdb, 0x80, 0xc8, 0x87, 0x7d, 0x9f, 0x12, 0x95, 0xe1, 0xf8, + 0xe2, 0x1a, 0x28, 0x88, 0x62, 0x4e, 0xf4, 0x18, 0x69, 0x7d, 0x8c, 0x02, 0x67, 0x8c, 0x42, 0x2b, + 0x50, 0xe9, 0xf8, 0x81, 0x4d, 0xb8, 0xbe, 0xe2, 0xe4, 0xd0, 0xea, 0x41, 0x1b, 0x21, 0x02, 0xc7, + 0x34, 0xe8, 0x41, 0x5c, 0xf8, 0x2b, 0x4d, 0xd1, 0x79, 0x93, 0xf6, 0x10, 0x9b, 0xf1, 0xd4, 0x8a, + 0x1f, 0x5a, 0x85, 0x79, 0x31, 0x60, 0x75, 0x77, 0x2b, 0x6c, 0x72, 0xc8, 0x57, 0x6a, 0xd7, 0xd4, + 0x10, 0x59, 0xa0, 0x8e, 0xd1, 0x38, 0x4d, 0x6f, 0xfe, 0x77, 0x01, 0x96, 0x32, 0x32, 0xc4, 0xa8, + 0xe9, 0x63, 0x5c, 0x44, 0xd3, 0xe7, 0x59, 0x78, 0xce, 0x0b, 0x30, 0xe3, 0xf9, 0x2d, 0xcb, 0x3e, + 0x24, 0xaa, 0x99, 0x1e, 0x99, 0xed, 0x9e, 0x04, 0xe3, 0x10, 0x1f, 0x3a, 0x59, 0x61, 0x2a, 0x27, + 0x3b, 0xb7, 0x63, 0xbc, 0x19, 0x66, 0xf5, 0x1d, 0xc7, 0x25, 0xbb, 0x16, 0x3b, 0x54, 0x35, 0xeb, + 0x28, 0x16, 0x58, 0x4b, 0x60, 0x71, 0x8a, 0x1a, 0xbd, 0x0d, 0x15, 0xb9, 0x78, 0x41, 0x97, 0x9e, + 0xab, 0x41, 0x15, 0xa9, 0xd5, 0x0c, 0x87, 0xe3, 0x98, 0x13, 0xea, 0xc3, 0x35, 0x11, 0xa9, 0xf1, + 0x93, 0xb2, 0xe7, 0x7c, 0x53, 0xd4, 0xd4, 0xd4, 0xeb, 0x1c, 0x59, 0x3b, 0x7b, 0x8d, 0x27, 0xa1, + 0x5b, 0xd9, 0x24, 0x8f, 0x4f, 0x47, 0xe1, 0xd3, 0xd8, 0x9a, 0xbf, 0x67, 0x40, 0x76, 0xcb, 0x28, + 0x39, 0x45, 0xe3, 0xc2, 0xa6, 0xf8, 0x5c, 0xec, 0x1a, 0xb2, 0xa2, 0x5b, 0xcd, 0x72, 0x0b, 0xf3, + 0xcf, 0x0c, 0x58, 0xca, 0xc8, 0x55, 0x3f, 0xab, 0xe7, 0xfe, 0xb7, 0xf3, 0x69, 0x75, 0xd7, 0x8f, + 0x89, 0xc7, 0x26, 0x6b, 0x59, 0xbd, 0x2b, 0xdb, 0x42, 0x72, 0x6b, 0xfe, 0xf4, 0xa4, 0x39, 0xa5, + 0x28, 0x0c, 0x26, 0xfb, 0x41, 0x17, 0x72, 0xa0, 0x9f, 0xde, 0xd1, 0x2c, 0xfc, 0xdf, 0x77, 0x34, + 0xcd, 0x1f, 0x18, 0x30, 0x97, 0xec, 0x89, 0xa1, 0x2f, 0x40, 0x7e, 0x10, 0x38, 0x6a, 0x09, 0xa2, + 0xf9, 0xbc, 0x8d, 0xb7, 0x30, 0x87, 0x73, 0x74, 0x40, 0x3a, 0x6a, 0x7d, 0x23, 0x34, 0x26, 0x1d, + 0xcc, 0xe1, 0xe8, 0x21, 0x54, 0xfb, 0x81, 0xff, 0xe1, 0x89, 0xac, 0x18, 0x4f, 0xf5, 0x7e, 0x74, + 0x37, 0xe6, 0x13, 0x97, 0x30, 0x35, 0x20, 0xd6, 0x25, 0x89, 0xc0, 0x67, 0xbc, 0x4e, 0xf2, 0x59, + 0xdd, 0x00, 0x7f, 0x9a, 0x83, 0x19, 0xe5, 0x74, 0xe8, 0x5b, 0x06, 0xcc, 0x75, 0x13, 0x6b, 0x30, + 0x95, 0xa6, 0xa9, 0x16, 0x67, 0x74, 0x44, 0x27, 0xe1, 0x38, 0x25, 0x12, 0xfd, 0xa6, 0x01, 0x8b, + 0x5d, 0x87, 0x25, 0xe7, 0x39, 0x55, 0x13, 0x78, 0x33, 0xcd, 0xad, 0x79, 0x5d, 0xe9, 0xb2, 0x38, + 0x86, 0xc2, 0xe3, 0xb2, 0xcd, 0x3f, 0x90, 0x2b, 0x9a, 0x2a, 0xf6, 0x7c, 0x46, 0x1e, 0x7c, 0xff, + 0x53, 0x0e, 0xc6, 0x67, 0xc1, 0x97, 0xdf, 0x96, 0x59, 0x8d, 0x91, 0xf9, 0xb7, 0x03, 0x85, 0x45, + 0x1e, 0x94, 0x2c, 0xf1, 0x6e, 0x7f, 0x2a, 0x03, 0x4b, 0xe1, 0x2d, 0xdf, 0x63, 0x81, 0xef, 0xbe, + 0x4d, 0x49, 0xa0, 0x3d, 0x9f, 0x17, 0xdc, 0xb1, 0x92, 0x82, 0x1e, 0x42, 0xc5, 0x0e, 0x5f, 0xe3, + 0x4f, 0xf5, 0x1e, 0x79, 0x5c, 0xa4, 0xf6, 0x9e, 0x50, 0x09, 0xc0, 0xb1, 0xac, 0x73, 0x74, 0x0a, + 0xcd, 0xdf, 0x35, 0x60, 0x21, 0x5d, 0x62, 0xe4, 0xe3, 0xc5, 0x55, 0xbc, 0xb5, 0x96, 0xae, 0xfc, + 0x6e, 0x49, 0x30, 0x0e, 0xf1, 0x68, 0x0f, 0x66, 0x78, 0xc0, 0x86, 0xd5, 0xe1, 0x74, 0xee, 0xc0, + 0x4f, 0x5c, 0xac, 0x1b, 0x92, 0x03, 0x0e, 0x59, 0x99, 0x7f, 0x65, 0x00, 0x1a, 0x2f, 0x19, 0xa1, + 0x5d, 0xb8, 0xe2, 0x5a, 0x94, 0x45, 0xdd, 0xdc, 0xad, 0x84, 0x92, 0x37, 0x95, 0x92, 0x57, 0x76, + 0x32, 0x68, 0x70, 0xe6, 0xc8, 0x28, 0x68, 0xcd, 0x5d, 0x40, 0xd0, 0x6a, 0xb6, 0x01, 0xe2, 0xa7, + 0x6e, 0xe8, 0x16, 0x14, 0x3c, 0xab, 0x17, 0xde, 0xaa, 0x51, 0x7a, 0x24, 0xfe, 0xfc, 0x21, 0x30, + 0xe8, 0x4b, 0x50, 0x3c, 0xb6, 0xdc, 0x41, 0xf8, 0xef, 0x9a, 0xe8, 0xb1, 0xe9, 0x3b, 0x1c, 0x88, + 0x25, 0xce, 0xfc, 0xf3, 0x1c, 0x54, 0xb5, 0xc7, 0x0d, 0x17, 0x9f, 0xa4, 0x39, 0x50, 0xec, 0x5b, + 0xec, 0x30, 0x7c, 0x2e, 0xbb, 0x36, 0xed, 0xf3, 0x0b, 0x1e, 0x7a, 0xc6, 0x73, 0xe1, 0x5f, 0x14, + 0x4b, 0x09, 0xa9, 0xa8, 0x3e, 0xff, 0x34, 0xa2, 0x7a, 0xf3, 0xd7, 0x0d, 0x98, 0x4f, 0x69, 0x83, + 0xee, 0x00, 0xd0, 0xe8, 0x4b, 0x2d, 0x48, 0x54, 0xb0, 0x88, 0xe9, 0xb0, 0x46, 0x25, 0x82, 0x6f, + 0x42, 0x99, 0xe3, 0x89, 0x40, 0x74, 0xcd, 0x09, 0xd4, 0x2a, 0xc5, 0xc1, 0x77, 0x02, 0x8b, 0x53, + 0xd4, 0xe6, 0xbf, 0x19, 0x70, 0xf3, 0xac, 0x56, 0x0d, 0x4f, 0xc5, 0x54, 0x3f, 0x26, 0x0a, 0xef, + 0x8d, 0x64, 0x2a, 0xb6, 0x9d, 0x44, 0xe3, 0x34, 0x3d, 0x7a, 0x15, 0xaa, 0x1a, 0x48, 0x29, 0x18, + 0x5d, 0xda, 0xda, 0x70, 0xac, 0xd3, 0x5d, 0x48, 0x84, 0x65, 0xfe, 0xb3, 0x01, 0x57, 0xb2, 0x6a, + 0x25, 0xe8, 0x24, 0x7c, 0x7e, 0x2d, 0xc3, 0xf1, 0xbd, 0x0b, 0xab, 0xc2, 0x34, 0xc4, 0x23, 0xec, + 0x75, 0x8f, 0x05, 0x27, 0xd9, 0x0f, 0xb3, 0x6f, 0xbc, 0x0e, 0x10, 0xd3, 0xa0, 0x05, 0xc8, 0x1f, + 0x91, 0x13, 0x69, 0x54, 0xcc, 0x7f, 0xa2, 0x2b, 0x89, 0x0d, 0xa7, 0x76, 0xd8, 0x1b, 0xb9, 0xd7, + 0x8d, 0x37, 0xca, 0xbf, 0xff, 0x27, 0xf5, 0x4b, 0x8f, 0xfe, 0xf5, 0xd6, 0x25, 0xf3, 0xb7, 0x0d, + 0xd0, 0xc3, 0x1d, 0xf4, 0x15, 0xa8, 0x1c, 0x32, 0xd6, 0x17, 0x20, 0xf5, 0x60, 0x43, 0x3c, 0x41, + 0xbe, 0xbb, 0xb7, 0xb7, 0x2b, 0x80, 0x38, 0xc6, 0xa3, 0x06, 0x00, 0xff, 0xa0, 0x92, 0xba, 0x10, + 0xbf, 0xad, 0xe2, 0xd4, 0x6d, 0x49, 0xae, 0x51, 0xc8, 0x3c, 0x43, 0x12, 0xcb, 0xbf, 0xae, 0xa9, + 0x3c, 0x43, 0x52, 0x86, 0x38, 0xf3, 0x2f, 0x0c, 0x58, 0x1c, 0x7b, 0xd7, 0x83, 0xde, 0x8b, 0xa2, + 0x1e, 0x63, 0xf2, 0x9d, 0x94, 0x1d, 0x29, 0x4d, 0xed, 0xfd, 0xdf, 0x33, 0x00, 0xe2, 0x82, 0x04, + 0x72, 0x61, 0x56, 0x32, 0x4e, 0x44, 0x5a, 0x93, 0x28, 0x7c, 0x45, 0x29, 0x30, 0xdb, 0xd6, 0xf8, + 0xe1, 0x04, 0x77, 0x9e, 0x68, 0xf7, 0xfc, 0x81, 0xc7, 0xc4, 0x9e, 0xca, 0x25, 0xdf, 0xdf, 0xbf, + 0x15, 0x22, 0x70, 0x4c, 0x63, 0xfe, 0x71, 0x1e, 0x96, 0x32, 0xba, 0xcd, 0x3f, 0xc2, 0x05, 0xb1, + 0x17, 0x60, 0x46, 0x3e, 0x8f, 0xa6, 0xe9, 0x08, 0x42, 0xbe, 0x9e, 0xa6, 0x38, 0xc4, 0xa3, 0xdb, + 0x50, 0x75, 0x3c, 0x5b, 0xd6, 0xa0, 0xad, 0xb0, 0xb0, 0x21, 0x9b, 0x3b, 0x31, 0x18, 0xeb, 0x34, + 0xc9, 0x4a, 0x48, 0xe9, 0xc9, 0x95, 0x10, 0xf3, 0x3d, 0x58, 0x1c, 0x8b, 0x81, 0x3e, 0xdd, 0x05, + 0x4b, 0xc4, 0x7f, 0x27, 0x53, 0x17, 0xac, 0xfc, 0xcb, 0xa4, 0xc4, 0x99, 0xdf, 0x35, 0x60, 0x2e, + 0x15, 0x50, 0x4e, 0x94, 0x10, 0x5b, 0x7a, 0x42, 0x7c, 0x51, 0xb1, 0x7b, 0x22, 0x35, 0x36, 0xb7, + 0x21, 0xfb, 0x6d, 0x6a, 0x7a, 0x0d, 0x8c, 0x27, 0xaf, 0x81, 0xf9, 0x8f, 0x39, 0xa8, 0x44, 0x6f, + 0x73, 0xd0, 0x4b, 0x09, 0x5b, 0x5e, 0xd7, 0x6d, 0xf9, 0x78, 0x58, 0x97, 0x84, 0x9a, 0x61, 0xbf, + 0x01, 0x95, 0xe8, 0x25, 0x98, 0x9a, 0xf1, 0x79, 0x5e, 0x7b, 0x45, 0x8b, 0x1d, 0x3d, 0x2f, 0xc3, + 0x31, 0x3f, 0x1e, 0xe5, 0x85, 0x4f, 0xb5, 0xde, 0x72, 0x5c, 0xd7, 0xa1, 0xaa, 0x4b, 0x90, 0x17, + 0x5d, 0x82, 0x28, 0xca, 0x5b, 0xcb, 0xa0, 0xc1, 0x99, 0x23, 0xd1, 0x3e, 0x14, 0x29, 0x23, 0x7d, + 0xaa, 0x0a, 0x78, 0x5f, 0x9d, 0xf0, 0x21, 0x13, 0xe9, 0x8b, 0x72, 0x45, 0xe4, 0x46, 0x1c, 0x42, + 0xb1, 0x64, 0x6d, 0xfe, 0x97, 0x01, 0xe5, 0x90, 0x04, 0xbd, 0x98, 0x30, 0x67, 0x2d, 0x65, 0x4e, + 0x41, 0xf7, 0xff, 0xd6, 0x9a, 0x66, 0x07, 0xe6, 0x92, 0x4d, 0x4e, 0x2d, 0xff, 0x36, 0xce, 0xca, + 0xbf, 0xd1, 0x8b, 0x50, 0xb6, 0x5c, 0xd7, 0x7f, 0xb8, 0xee, 0x1d, 0xab, 0xba, 0x5a, 0xd4, 0x7f, + 0x5b, 0x55, 0x70, 0x1c, 0x51, 0x34, 0x9f, 0xff, 0xe8, 0x93, 0xe5, 0x4b, 0x3f, 0xfc, 0x64, 0xf9, + 0xd2, 0xc7, 0x9f, 0x2c, 0x5f, 0x7a, 0x34, 0x5a, 0x36, 0x3e, 0x1a, 0x2d, 0x1b, 0x3f, 0x1c, 0x2d, + 0x1b, 0x1f, 0x8f, 0x96, 0x8d, 0x7f, 0x1f, 0x2d, 0x1b, 0xbf, 0xf5, 0x1f, 0xcb, 0x97, 0xde, 0xcb, + 0x1d, 0xdf, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x26, 0xe8, 0x31, 0x69, 0xd3, 0x40, 0x00, + 0x00, } diff --git a/pkg/build/apis/build/v1/generated.proto b/pkg/build/apis/build/v1/generated.proto index 52dd22c7c4d4..d298fd2f9415 100644 --- a/pkg/build/apis/build/v1/generated.proto +++ b/pkg/build/apis/build/v1/generated.proto @@ -887,22 +887,6 @@ message SourceBuildStrategy { // forcePull describes if the builder should pull the images from registry prior to building. optional bool forcePull = 6; - - // runtimeImage is an optional image that is used to run an application - // without unneeded dependencies installed. The building of the application - // is still done in the builder image but, post build, you can copy the - // needed artifacts in the runtime image for use. - // Deprecated: This feature will be removed in a future release. Use ImageSource - // to copy binary artifacts created from one build into a separate runtime image. - optional k8s.io.kubernetes.pkg.api.v1.ObjectReference runtimeImage = 7; - - // runtimeArtifacts specifies a list of source/destination pairs that will be - // copied from the builder to the runtime image. sourcePath can be a file or - // directory. destinationDir must be a directory. destinationDir can also be - // empty or equal to ".", in this case it just refers to the root of WORKDIR. - // Deprecated: This feature will be removed in a future release. Use ImageSource - // to copy binary artifacts created from one build into a separate runtime image. - repeated ImageSourcePath runtimeArtifacts = 8; } // SourceControlUser defines the identity of a user of source control diff --git a/pkg/build/apis/build/v1/swagger_doc.go b/pkg/build/apis/build/v1/swagger_doc.go index b79aec567f77..346550a69a41 100644 --- a/pkg/build/apis/build/v1/swagger_doc.go +++ b/pkg/build/apis/build/v1/swagger_doc.go @@ -503,15 +503,13 @@ func (SecretSpec) SwaggerDoc() map[string]string { } var map_SourceBuildStrategy = map[string]string{ - "": "SourceBuildStrategy defines input parameters specific to an Source build.", - "from": "from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which the docker image should be pulled", - "pullSecret": "pullSecret is the name of a Secret that would be used for setting up the authentication for pulling the Docker images from the private Docker registries", - "env": "env contains additional environment variables you want to pass into a builder container.", - "scripts": "scripts is the location of Source scripts", - "incremental": "incremental flag forces the Source build to do incremental builds if true.", - "forcePull": "forcePull describes if the builder should pull the images from registry prior to building.", - "runtimeImage": "runtimeImage is an optional image that is used to run an application without unneeded dependencies installed. The building of the application is still done in the builder image but, post build, you can copy the needed artifacts in the runtime image for use. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image.", - "runtimeArtifacts": "runtimeArtifacts specifies a list of source/destination pairs that will be copied from the builder to the runtime image. sourcePath can be a file or directory. destinationDir must be a directory. destinationDir can also be empty or equal to \".\", in this case it just refers to the root of WORKDIR. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image.", + "": "SourceBuildStrategy defines input parameters specific to an Source build.", + "from": "from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which the docker image should be pulled", + "pullSecret": "pullSecret is the name of a Secret that would be used for setting up the authentication for pulling the Docker images from the private Docker registries", + "env": "env contains additional environment variables you want to pass into a builder container.", + "scripts": "scripts is the location of Source scripts", + "incremental": "incremental flag forces the Source build to do incremental builds if true.", + "forcePull": "forcePull describes if the builder should pull the images from registry prior to building.", } func (SourceBuildStrategy) SwaggerDoc() map[string]string { diff --git a/pkg/build/apis/build/v1/types.go b/pkg/build/apis/build/v1/types.go index 4d0dc0115a4d..2d3ace579fbc 100644 --- a/pkg/build/apis/build/v1/types.go +++ b/pkg/build/apis/build/v1/types.go @@ -692,21 +692,12 @@ type SourceBuildStrategy struct { // forcePull describes if the builder should pull the images from registry prior to building. ForcePull bool `json:"forcePull,omitempty" protobuf:"varint,6,opt,name=forcePull"` - // runtimeImage is an optional image that is used to run an application - // without unneeded dependencies installed. The building of the application - // is still done in the builder image but, post build, you can copy the - // needed artifacts in the runtime image for use. - // Deprecated: This feature will be removed in a future release. Use ImageSource - // to copy binary artifacts created from one build into a separate runtime image. - RuntimeImage *kapi.ObjectReference `json:"runtimeImage,omitempty" protobuf:"bytes,7,opt,name=runtimeImage"` - - // runtimeArtifacts specifies a list of source/destination pairs that will be - // copied from the builder to the runtime image. sourcePath can be a file or - // directory. destinationDir must be a directory. destinationDir can also be - // empty or equal to ".", in this case it just refers to the root of WORKDIR. - // Deprecated: This feature will be removed in a future release. Use ImageSource - // to copy binary artifacts created from one build into a separate runtime image. - RuntimeArtifacts []ImageSourcePath `json:"runtimeArtifacts,omitempty" protobuf:"bytes,8,rep,name=runtimeArtifacts"` + // deprecated json field, do not reuse: runtimeImage + // +k8s:protobuf-deprecated=runtimeImage,7 + + // deprecated json field, do not reuse: runtimeArtifacts + // +k8s:protobuf-deprecated=runtimeArtifacts,8 + } // JenkinsPipelineBuildStrategy holds parameters specific to a Jenkins Pipeline build. diff --git a/pkg/build/apis/build/v1/zz_generated.conversion.go b/pkg/build/apis/build/v1/zz_generated.conversion.go index 5645e0ece03c..29e6e8fdea50 100644 --- a/pkg/build/apis/build/v1/zz_generated.conversion.go +++ b/pkg/build/apis/build/v1/zz_generated.conversion.go @@ -2086,16 +2086,6 @@ func autoConvert_v1_SourceBuildStrategy_To_build_SourceBuildStrategy(in *SourceB out.Scripts = in.Scripts out.Incremental = (*bool)(unsafe.Pointer(in.Incremental)) out.ForcePull = in.ForcePull - if in.RuntimeImage != nil { - in, out := &in.RuntimeImage, &out.RuntimeImage - *out = new(api.ObjectReference) - if err := api_v1.Convert_v1_ObjectReference_To_api_ObjectReference(*in, *out, s); err != nil { - return err - } - } else { - out.RuntimeImage = nil - } - out.RuntimeArtifacts = *(*[]build.ImageSourcePath)(unsafe.Pointer(&in.RuntimeArtifacts)) return nil } @@ -2126,16 +2116,6 @@ func autoConvert_build_SourceBuildStrategy_To_v1_SourceBuildStrategy(in *build.S out.Scripts = in.Scripts out.Incremental = (*bool)(unsafe.Pointer(in.Incremental)) out.ForcePull = in.ForcePull - if in.RuntimeImage != nil { - in, out := &in.RuntimeImage, &out.RuntimeImage - *out = new(api_v1.ObjectReference) - if err := api_v1.Convert_api_ObjectReference_To_v1_ObjectReference(*in, *out, s); err != nil { - return err - } - } else { - out.RuntimeImage = nil - } - out.RuntimeArtifacts = *(*[]ImageSourcePath)(unsafe.Pointer(&in.RuntimeArtifacts)) return nil } diff --git a/pkg/build/apis/build/v1/zz_generated.deepcopy.go b/pkg/build/apis/build/v1/zz_generated.deepcopy.go index d050abd185bb..6f07aebb0d29 100644 --- a/pkg/build/apis/build/v1/zz_generated.deepcopy.go +++ b/pkg/build/apis/build/v1/zz_generated.deepcopy.go @@ -1076,16 +1076,6 @@ func DeepCopy_v1_SourceBuildStrategy(in interface{}, out interface{}, c *convers *out = new(bool) **out = **in } - if in.RuntimeImage != nil { - in, out := &in.RuntimeImage, &out.RuntimeImage - *out = new(api_v1.ObjectReference) - **out = **in - } - if in.RuntimeArtifacts != nil { - in, out := &in.RuntimeArtifacts, &out.RuntimeArtifacts - *out = make([]ImageSourcePath, len(*in)) - copy(*out, *in) - } return nil } } diff --git a/pkg/build/apis/build/validation/validation.go b/pkg/build/apis/build/validation/validation.go index 57a9fd89aa96..c17b25e7b718 100644 --- a/pkg/build/apis/build/validation/validation.go +++ b/pkg/build/apis/build/validation/validation.go @@ -503,7 +503,6 @@ func validateSourceStrategy(strategy *buildapi.SourceBuildStrategy, fldPath *fie allErrs = append(allErrs, validateImageReference(&strategy.From, fldPath.Child("from"))...) allErrs = append(allErrs, validateSecretRef(strategy.PullSecret, fldPath.Child("pullSecret"))...) allErrs = append(allErrs, ValidateStrategyEnv(strategy.Env, fldPath.Child("env"))...) - allErrs = append(allErrs, validateRuntimeImage(strategy, fldPath.Child("runtimeImage"))...) return allErrs } @@ -662,24 +661,6 @@ func validatePostCommit(spec buildapi.BuildPostCommitSpec, fldPath *field.Path) return allErrs } -// validateRuntimeImage verifies that the runtimeImage field in -// SourceBuildStrategy is not empty if it was specified and also checks to see -// if the incremental build flag was specified, which is incompatible since we -// can't have extended incremental builds. -func validateRuntimeImage(sourceStrategy *buildapi.SourceBuildStrategy, fldPath *field.Path) (allErrs field.ErrorList) { - if sourceStrategy.RuntimeImage == nil { - return - } - if sourceStrategy.RuntimeImage.Name == "" { - return append(allErrs, field.Required(fldPath, "name")) - } - - if sourceStrategy.Incremental != nil && *sourceStrategy.Incremental { - return append(allErrs, field.Invalid(fldPath, sourceStrategy.Incremental, "incremental cannot be set to true with extended builds")) - } - return -} - func ValidateImageLabels(labels []buildapi.ImageLabel, fldPath *field.Path) (allErrs field.ErrorList) { for i, lbl := range labels { idxPath := fldPath.Index(i) diff --git a/pkg/build/apis/build/validation/validation_test.go b/pkg/build/apis/build/validation/validation_test.go index cfc12c5dbb55..a7a7dacbb554 100644 --- a/pkg/build/apis/build/validation/validation_test.go +++ b/pkg/build/apis/build/validation/validation_test.go @@ -2890,32 +2890,6 @@ func TestValidateBuildImageRefs(t *testing.T) { }, expectedError: "not a valid Docker pull specification: invalid reference format", }, - { - name: "valid s2i build w/ runtimeImage", - build: buildapi.Build{ - ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, - Spec: buildapi.BuildSpec{ - CommonSpec: buildapi.CommonSpec{ - Source: buildapi.BuildSource{ - Binary: &buildapi.BinaryBuildSource{}, - }, - Strategy: buildapi.BuildStrategy{ - SourceStrategy: &buildapi.SourceBuildStrategy{ - From: kapi.ObjectReference{ - Kind: "DockerImage", - Name: "myimage:tag", - }, - RuntimeImage: &kapi.ObjectReference{ - Kind: "DockerImage", - Name: "runtimestream:tag", - }, - }, - }, - }, - }, - }, - expectedError: "", - }, { name: "docker build with ImageStreamTag in from", build: buildapi.Build{ @@ -3022,32 +2996,6 @@ func TestValidateBuildImageRefs(t *testing.T) { }, expectedError: "Required value", }, - { - name: "s2i build with ImageStreamTag runtimeImage", - build: buildapi.Build{ - ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, - Spec: buildapi.BuildSpec{ - CommonSpec: buildapi.CommonSpec{ - Source: buildapi.BuildSource{ - Binary: &buildapi.BinaryBuildSource{}, - }, - Strategy: buildapi.BuildStrategy{ - SourceStrategy: &buildapi.SourceBuildStrategy{ - From: kapi.ObjectReference{ - Kind: "DockerImage", - Name: "myimage:tag", - }, - RuntimeImage: &kapi.ObjectReference{ - Kind: "ImageStreamTag", - Name: "", - }, - }, - }, - }, - }, - }, - expectedError: "Required value", - }, { name: "custom build with ImageStreamTag in from", build: buildapi.Build{ diff --git a/pkg/build/apis/build/zz_generated.deepcopy.go b/pkg/build/apis/build/zz_generated.deepcopy.go index 1098e5a39560..3fe1a4efdc61 100644 --- a/pkg/build/apis/build/zz_generated.deepcopy.go +++ b/pkg/build/apis/build/zz_generated.deepcopy.go @@ -1099,16 +1099,6 @@ func DeepCopy_build_SourceBuildStrategy(in interface{}, out interface{}, c *conv *out = new(bool) **out = **in } - if in.RuntimeImage != nil { - in, out := &in.RuntimeImage, &out.RuntimeImage - *out = new(api.ObjectReference) - **out = **in - } - if in.RuntimeArtifacts != nil { - in, out := &in.RuntimeArtifacts, &out.RuntimeArtifacts - *out = make([]ImageSourcePath, len(*in)) - copy(*out, *in) - } return nil } } diff --git a/pkg/build/builder/sti.go b/pkg/build/builder/sti.go index 468bf31f9e81..e63543f4cca1 100644 --- a/pkg/build/builder/sti.go +++ b/pkg/build/builder/sti.go @@ -209,11 +209,9 @@ func (s *S2IBuilder) Build() error { if s.build.Spec.Strategy.SourceStrategy.ForcePull { glog.V(4).Infof("With force pull true, setting policies to %s", s2iapi.PullAlways) config.BuilderPullPolicy = s2iapi.PullAlways - config.RuntimeImagePullPolicy = s2iapi.PullAlways } else { glog.V(4).Infof("With force pull false, setting policies to %s", s2iapi.PullIfNotPresent) config.BuilderPullPolicy = s2iapi.PullIfNotPresent - config.RuntimeImagePullPolicy = s2iapi.PullIfNotPresent } config.PreviousImagePullPolicy = s2iapi.PullAlways @@ -231,13 +229,6 @@ func (s *S2IBuilder) Build() error { config.DropCapabilities = strings.Split(dropCaps, ",") } - if s.build.Spec.Strategy.SourceStrategy.RuntimeImage != nil { - runtimeImageName := s.build.Spec.Strategy.SourceStrategy.RuntimeImage.Name - config.RuntimeImage = runtimeImageName - t, _ := dockercfg.NewHelper().GetDockerAuth(runtimeImageName, dockercfg.PullAuthType) - config.RuntimeAuthentication = s2iapi.AuthConfig{Username: t.Username, Password: t.Password, Email: t.Email, ServerAddress: t.ServerAddress} - config.RuntimeArtifacts = copyToVolumeList(s.build.Spec.Strategy.SourceStrategy.RuntimeArtifacts) - } // If DockerCfgPath is provided in buildapi.Config, then attempt to read the // dockercfg file and get the authentication for pulling the builder image. t, _ := dockercfg.NewHelper().GetDockerAuth(config.BuilderImage, dockercfg.PullAuthType) diff --git a/pkg/build/generator/generator.go b/pkg/build/generator/generator.go index 8d206e8d8745..8b4ab58ce315 100644 --- a/pkg/build/generator/generator.go +++ b/pkg/build/generator/generator.go @@ -581,28 +581,8 @@ func (g *BuildGenerator) setBaseImageAndPullSecretForBuildStrategy(ctx apireques Kind: "DockerImage", Name: image, } - if strategy.SourceStrategy.RuntimeImage != nil { - runtimeImageName, err := g.resolveImageStreamReference(ctx, *strategy.SourceStrategy.RuntimeImage, bcCopy.Namespace) - if err != nil { - return err - } - strategy.SourceStrategy.RuntimeImage = &kapi.ObjectReference{ - Kind: "DockerImage", - Name: runtimeImageName, - } - } if strategy.SourceStrategy.PullSecret == nil { - // we have 3 different variations: - // 1) builder and runtime images use the same secret => use builder image secret - // 2) builder and runtime images use different secrets => use builder image secret - // 3) builder doesn't need a secret but runtime image requires it => use runtime image secret - // The case when both of the images don't use secret (equals to nil) is covered by the first variant. - pullSecret := g.resolveImageSecret(ctx, builderSecrets, &strategy.SourceStrategy.From, bcCopy.Namespace) - if pullSecret == nil { - pullSecret = g.resolveImageSecret(ctx, builderSecrets, strategy.SourceStrategy.RuntimeImage, bcCopy.Namespace) - } - - strategy.SourceStrategy.PullSecret = pullSecret + strategy.SourceStrategy.PullSecret = g.resolveImageSecret(ctx, builderSecrets, &strategy.SourceStrategy.From, bcCopy.Namespace) } case strategy.DockerStrategy != nil && strategy.DockerStrategy.From != nil: diff --git a/pkg/openapi/zz_generated.openapi.go b/pkg/openapi/zz_generated.openapi.go index e89ea570b493..70999da6ae05 100644 --- a/pkg/openapi/zz_generated.openapi.go +++ b/pkg/openapi/zz_generated.openapi.go @@ -5212,31 +5212,12 @@ func GetOpenAPIDefinitions(ref openapi.ReferenceCallback) map[string]openapi.Ope Format: "", }, }, - "runtimeImage": { - SchemaProps: spec.SchemaProps{ - Description: "runtimeImage is an optional image that is used to run an application without unneeded dependencies installed. The building of the application is still done in the builder image but, post build, you can copy the needed artifacts in the runtime image for use. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image.", - Ref: ref("k8s.io/kubernetes/pkg/api/v1.ObjectReference"), - }, - }, - "runtimeArtifacts": { - SchemaProps: spec.SchemaProps{ - Description: "runtimeArtifacts specifies a list of source/destination pairs that will be copied from the builder to the runtime image. sourcePath can be a file or directory. destinationDir must be a directory. destinationDir can also be empty or equal to \".\", in this case it just refers to the root of WORKDIR. Deprecated: This feature will be removed in a future release. Use ImageSource to copy binary artifacts created from one build into a separate runtime image.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/openshift/origin/pkg/build/apis/build/v1.ImageSourcePath"), - }, - }, - }, - }, - }, }, Required: []string{"from"}, }, }, Dependencies: []string{ - "github.com/openshift/origin/pkg/build/apis/build/v1.ImageSourcePath", "k8s.io/kubernetes/pkg/api/v1.EnvVar", "k8s.io/kubernetes/pkg/api/v1.LocalObjectReference", "k8s.io/kubernetes/pkg/api/v1.ObjectReference"}, + "k8s.io/kubernetes/pkg/api/v1.EnvVar", "k8s.io/kubernetes/pkg/api/v1.LocalObjectReference", "k8s.io/kubernetes/pkg/api/v1.ObjectReference"}, }, "github.com/openshift/origin/pkg/build/apis/build/v1.SourceControlUser": { Schema: spec.Schema{ diff --git a/test/extended/builds/failure_status.go b/test/extended/builds/failure_status.go index 44c365e58ccf..42887a9618a0 100644 --- a/test/extended/builds/failure_status.go +++ b/test/extended/builds/failure_status.go @@ -21,21 +21,18 @@ var _ = g.Describe("[Feature:Builds][Slow] update failure status", func() { var ( // convert the s2i failure cases to our own StatusReason - reasonAssembleFailed = buildapi.StatusReason(s2istatus.ReasonAssembleFailed) - messageAssembleFailed = string(s2istatus.ReasonMessageAssembleFailed) - reasonFetchRuntimeArtifacts = buildapi.StatusReason(s2istatus.ReasonRuntimeArtifactsFetchFailed) - messageFetchRuntimeArtifacts = string(s2istatus.ReasonMessageRuntimeArtifactsFetchFailed) - postCommitHookFixture = exutil.FixturePath("testdata", "statusfail-postcommithook.yaml") - fetchDockerSrc = exutil.FixturePath("testdata", "statusfail-fetchsourcedocker.yaml") - fetchS2ISrc = exutil.FixturePath("testdata", "statusfail-fetchsources2i.yaml") - badContextDirS2ISrc = exutil.FixturePath("testdata", "statusfail-badcontextdirs2i.yaml") - builderImageFixture = exutil.FixturePath("testdata", "statusfail-fetchbuilderimage.yaml") - pushToRegistryFixture = exutil.FixturePath("testdata", "statusfail-pushtoregistry.yaml") - fetchRuntimeArtifactsFixture = exutil.FixturePath("testdata", "statusfail-runtimeartifacts.yaml") - failedAssembleFixture = exutil.FixturePath("testdata", "statusfail-failedassemble.yaml") - failedGenericReason = exutil.FixturePath("testdata", "statusfail-genericreason.yaml") - binaryBuildDir = exutil.FixturePath("testdata", "statusfail-assemble") - oc = exutil.NewCLI("update-buildstatus", exutil.KubeConfigPath()) + reasonAssembleFailed = buildapi.StatusReason(s2istatus.ReasonAssembleFailed) + messageAssembleFailed = string(s2istatus.ReasonMessageAssembleFailed) + postCommitHookFixture = exutil.FixturePath("testdata", "statusfail-postcommithook.yaml") + fetchDockerSrc = exutil.FixturePath("testdata", "statusfail-fetchsourcedocker.yaml") + fetchS2ISrc = exutil.FixturePath("testdata", "statusfail-fetchsources2i.yaml") + badContextDirS2ISrc = exutil.FixturePath("testdata", "statusfail-badcontextdirs2i.yaml") + builderImageFixture = exutil.FixturePath("testdata", "statusfail-fetchbuilderimage.yaml") + pushToRegistryFixture = exutil.FixturePath("testdata", "statusfail-pushtoregistry.yaml") + failedAssembleFixture = exutil.FixturePath("testdata", "statusfail-failedassemble.yaml") + failedGenericReason = exutil.FixturePath("testdata", "statusfail-genericreason.yaml") + binaryBuildDir = exutil.FixturePath("testdata", "statusfail-assemble") + oc = exutil.NewCLI("update-buildstatus", exutil.KubeConfigPath()) ) g.Context("", func() { @@ -202,25 +199,6 @@ var _ = g.Describe("[Feature:Builds][Slow] update failure status", func() { }) }) - g.Describe("Build status failed assemble runtime artifacts", func() { - g.It("should contain the failure reason related to failing to fetch runtime image artifacts", func() { - err := oc.Run("create").Args("-f", fetchRuntimeArtifactsFixture).Execute() - o.Expect(err).NotTo(o.HaveOccurred()) - - br, err := exutil.StartBuildAndWait(oc, "statusfail-runtimeartifacts", "--build-loglevel=5") - o.Expect(err).NotTo(o.HaveOccurred()) - br.AssertFailure() - br.DumpLogs() - - build, err := oc.BuildClient().Build().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) - o.Expect(err).NotTo(o.HaveOccurred()) - o.Expect(build.Status.Reason).To(o.Equal(reasonFetchRuntimeArtifacts)) - o.Expect(build.Status.Message).To(o.Equal(messageFetchRuntimeArtifacts)) - - exutil.CheckForBuildEvent(oc.KubeClient().Core(), br.Build, buildapi.BuildFailedEventReason, buildapi.BuildFailedEventMessage) - }) - }) - g.Describe("Build status failed https proxy invalid url", func() { g.It("should contain the generic failure reason and message", func() { err := oc.Run("create").Args("-f", failedGenericReason).Execute() diff --git a/test/extended/builds/s2i_extended_build.go b/test/extended/builds/s2i_extended_build.go deleted file mode 100644 index 5a21aa4567b7..000000000000 --- a/test/extended/builds/s2i_extended_build.go +++ /dev/null @@ -1,156 +0,0 @@ -package builds - -import ( - "path/filepath" - - g "github.com/onsi/ginkgo" - o "github.com/onsi/gomega" - exutil "github.com/openshift/origin/test/extended/util" - e2e "k8s.io/kubernetes/test/e2e/framework" -) - -var _ = g.Describe("[Feature:Builds][Slow] s2i extended build", func() { - defer g.GinkgoRecover() - - var ( - oc = exutil.NewCLI("extended-build", exutil.KubeConfigPath()) - testDataDir = exutil.FixturePath("testdata", "build-extended") - runnerConf = filepath.Join(testDataDir, "jvm-runner.yaml") - runnerWithScriptsConf = filepath.Join(testDataDir, "jvm-runner-with-scripts.yaml") - scriptsFromRepoBc = filepath.Join(testDataDir, "bc-scripts-in-repo.yaml") - scriptsFromURLBc = filepath.Join(testDataDir, "bc-scripts-by-url.yaml") - scriptsFromImageBc = filepath.Join(testDataDir, "bc-scripts-in-the-image.yaml") - ) - - g.Context("", func() { - g.JustBeforeEach(func() { - g.By("waiting for builder service account") - err := exutil.WaitForBuilderAccount(oc.KubeClient().Core().ServiceAccounts(oc.Namespace())) - o.Expect(err).NotTo(o.HaveOccurred()) - - // we have to wait until image stream tag will be available, otherwise - // `oc start-build` will fail with 'imagestreamtags "wildfly:10.0" not found' error. - // See this issue for details: https://github.com/openshift/origin/issues/10103 - err = exutil.WaitForAnImageStreamTag(oc, "openshift", "wildfly", "10.0") - o.Expect(err).NotTo(o.HaveOccurred()) - }) - - g.AfterEach(func() { - if g.CurrentGinkgoTestDescription().Failed { - exutil.DumpPodStates(oc) - exutil.DumpPodLogsStartingWith("", oc) - } - }) - - g.Describe("with scripts from the source repository", func() { - oc.SetOutputDir(exutil.TestContext.OutputDir) - - g.It("should use assemble-runtime script from the source repository", func() { - - g.By("creating jvm-runner configuration") - err := exutil.CreateResource(runnerConf, oc) - o.Expect(err).NotTo(o.HaveOccurred()) - - g.By("building jvm-runner image") - br, _ := exutil.StartBuildAndWait(oc, "jvm-runner") - br.AssertSuccess() - - g.By("creating build config") - err = exutil.CreateResource(scriptsFromRepoBc, oc) - o.Expect(err).NotTo(o.HaveOccurred()) - - g.By("running the build") - br, _ = exutil.StartBuildAndWait(oc, "java-extended-build-from-repo", "--build-loglevel=5") - br.AssertSuccess() - buildLog, err := br.Logs() - if err != nil { - e2e.Failf("Failed to fetch build logs: %v", err) - } - - g.By("expecting that .s2i/bin/assemble-runtime was executed") - o.Expect(buildLog).To(o.ContainSubstring(`Using "assemble-runtime" installed from "/.s2i/bin/assemble-runtime"`)) - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: assembling app within runtime image")) - - g.By("expecting that environment variable from BuildConfig is available") - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: USING_ENV_FROM_BUILD_CONFIG=yes")) - - g.By("expecting that environment variable from .s2i/environment is available") - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: USING_ENV_FROM_FILE=yes")) - }) - }) - - g.Describe("with scripts from URL", func() { - oc.SetOutputDir(exutil.TestContext.OutputDir) - - g.It("should use assemble-runtime script from URL", func() { - - g.By("creating jvm-runner configuration") - err := exutil.CreateResource(runnerConf, oc) - o.Expect(err).NotTo(o.HaveOccurred()) - - g.By("building jvm-runner image") - br, _ := exutil.StartBuildAndWait(oc, "jvm-runner") - br.AssertSuccess() - - g.By("creating build config") - err = exutil.CreateResource(scriptsFromURLBc, oc) - o.Expect(err).NotTo(o.HaveOccurred()) - - g.By("running the build") - br, _ = exutil.StartBuildAndWait(oc, "java-extended-build-from-url", "--build-loglevel=5") - br.AssertSuccess() - buildLog, err := br.Logs() - if err != nil { - e2e.Failf("Failed to fetch build logs: %v", err) - } - - g.By("expecting that .s2i/bin/assemble-runtime was executed") - o.Expect(buildLog).To(o.ContainSubstring(`Using "assemble-runtime" installed from "https://raw.githubusercontent.com/openshift/test-maven-app/s2i-assemble-and-assemble-runtime/.s2i/bin/assemble-runtime"`)) - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: assembling app within runtime image")) - - g.By("expecting that environment variable from BuildConfig is available") - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: USING_ENV_FROM_BUILD_CONFIG=yes")) - - g.By("expecting that environment variable from .s2i/environment isn't available") - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: USING_ENV_FROM_FILE=no")) - }) - }) - - g.Describe("with scripts from runtime image", func() { - oc.SetOutputDir(exutil.TestContext.OutputDir) - - g.It("should use assemble-runtime script from that image", func() { - - g.By("creating jvm-runner-with-scripts configuration") - err := exutil.CreateResource(runnerWithScriptsConf, oc) - o.Expect(err).NotTo(o.HaveOccurred()) - - g.By("building jvm-runner-with-scripts image") - br, _ := exutil.StartBuildAndWait(oc, "jvm-runner-with-scripts") - br.AssertSuccess() - - g.By("creating build config") - err = exutil.CreateResource(scriptsFromImageBc, oc) - o.Expect(err).NotTo(o.HaveOccurred()) - - g.By("running the build") - br, _ = exutil.StartBuildAndWait(oc, "java-extended-build-from-image", "--build-loglevel=5") - br.AssertSuccess() - buildLog, err := br.Logs() - if err != nil { - e2e.Failf("Failed to fetch build logs: %v", err) - } - - g.By("expecting that .s2i/bin/assemble-runtime was executed") - o.Expect(buildLog).To(o.ContainSubstring(`Using "assemble-runtime" installed from "image:///usr/libexec/s2i/assemble-runtime"`)) - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: assembling app within runtime image")) - - g.By("expecting that environment variable from BuildConfig is available") - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: USING_ENV_FROM_BUILD_CONFIG=yes")) - - g.By("expecting that environment variable from .s2i/environment isn't available") - o.Expect(buildLog).To(o.ContainSubstring(".s2i/bin/assemble-runtime: USING_ENV_FROM_FILE=no")) - }) - }) - }) -}) diff --git a/test/extended/testdata/bindata.go b/test/extended/testdata/bindata.go index 2b5e687777ae..835462c40702 100644 --- a/test/extended/testdata/bindata.go +++ b/test/extended/testdata/bindata.go @@ -7,11 +7,6 @@ // test/extended/testdata/aggregator/sample-apiserver-rc.yaml // test/extended/testdata/aggregator/sample-apiserver-sa.yaml // test/extended/testdata/aggregator/sample-apiserver-service.yaml -// test/extended/testdata/build-extended/bc-scripts-by-url.yaml -// test/extended/testdata/build-extended/bc-scripts-in-repo.yaml -// test/extended/testdata/build-extended/bc-scripts-in-the-image.yaml -// test/extended/testdata/build-extended/jvm-runner-with-scripts.yaml -// test/extended/testdata/build-extended/jvm-runner.yaml // test/extended/testdata/build-pruning/default-group-build-config.yaml // test/extended/testdata/build-pruning/default-legacy-build-config.yaml // test/extended/testdata/build-pruning/errored-build-config.yaml @@ -145,7 +140,6 @@ // test/extended/testdata/statusfail-genericreason.yaml // test/extended/testdata/statusfail-postcommithook.yaml // test/extended/testdata/statusfail-pushtoregistry.yaml -// test/extended/testdata/statusfail-runtimeartifacts.yaml // test/extended/testdata/sti-environment-build-app/.sti/environment // test/extended/testdata/sti-environment-build-app/Gemfile // test/extended/testdata/sti-environment-build-app/config.ru @@ -507,214 +501,6 @@ func testExtendedTestdataAggregatorSampleApiserverServiceYaml() (*asset, error) return a, nil } -var _testExtendedTestdataBuildExtendedBcScriptsByUrlYaml = []byte(`kind: BuildConfig -apiVersion: v1 -metadata: - name: java-extended-build-from-url -spec: - source: - git: - uri: "https://github.com/openshift/test-maven-app.git" - strategy: - sourceStrategy: - from: - kind: ImageStreamTag - name: "wildfly:10.0" - namespace: openshift - runtimeImage: - kind: ImageStreamTag - name: "jvm-runner:0.1" - runtimeArtifacts: - - sourcePath: /opt/s2i/destination/src/target/hello.jar - env: - - name: USING_ENV_FROM_BUILD_CONFIG - value: "yes" - scripts: "https://raw.githubusercontent.com/openshift/test-maven-app/s2i-assemble-and-assemble-runtime/.s2i/bin" -`) - -func testExtendedTestdataBuildExtendedBcScriptsByUrlYamlBytes() ([]byte, error) { - return _testExtendedTestdataBuildExtendedBcScriptsByUrlYaml, nil -} - -func testExtendedTestdataBuildExtendedBcScriptsByUrlYaml() (*asset, error) { - bytes, err := testExtendedTestdataBuildExtendedBcScriptsByUrlYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/extended/testdata/build-extended/bc-scripts-by-url.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testExtendedTestdataBuildExtendedBcScriptsInRepoYaml = []byte(`kind: BuildConfig -apiVersion: v1 -metadata: - name: java-extended-build-from-repo -spec: - source: - git: - uri: "https://github.com/openshift/test-maven-app.git" - ref: s2i-assemble-and-assemble-runtime - strategy: - sourceStrategy: - from: - kind: ImageStreamTag - name: "wildfly:10.0" - namespace: openshift - runtimeImage: - kind: ImageStreamTag - name: "jvm-runner:0.1" - runtimeArtifacts: - - sourcePath: /opt/s2i/destination/src/target/hello.jar - env: - - name: USING_ENV_FROM_BUILD_CONFIG - value: "yes" -`) - -func testExtendedTestdataBuildExtendedBcScriptsInRepoYamlBytes() ([]byte, error) { - return _testExtendedTestdataBuildExtendedBcScriptsInRepoYaml, nil -} - -func testExtendedTestdataBuildExtendedBcScriptsInRepoYaml() (*asset, error) { - bytes, err := testExtendedTestdataBuildExtendedBcScriptsInRepoYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/extended/testdata/build-extended/bc-scripts-in-repo.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testExtendedTestdataBuildExtendedBcScriptsInTheImageYaml = []byte(`kind: BuildConfig -apiVersion: v1 -metadata: - name: java-extended-build-from-image -spec: - source: - git: - uri: "https://github.com/openshift/test-maven-app.git" - ref: s2i-assemble-only - strategy: - sourceStrategy: - from: - kind: ImageStreamTag - name: "wildfly:10.0" - namespace: openshift - runtimeImage: - kind: ImageStreamTag - name: "jvm-runner-with-scripts:0.1" - env: - - name: USING_ENV_FROM_BUILD_CONFIG - value: "yes" -`) - -func testExtendedTestdataBuildExtendedBcScriptsInTheImageYamlBytes() ([]byte, error) { - return _testExtendedTestdataBuildExtendedBcScriptsInTheImageYaml, nil -} - -func testExtendedTestdataBuildExtendedBcScriptsInTheImageYaml() (*asset, error) { - bytes, err := testExtendedTestdataBuildExtendedBcScriptsInTheImageYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/extended/testdata/build-extended/bc-scripts-in-the-image.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testExtendedTestdataBuildExtendedJvmRunnerWithScriptsYaml = []byte(`kind: List -apiVersion: v1 -items: - -- kind: ImageStream - apiVersion: v1 - metadata: - name: jvm-runner-with-scripts - -- kind: BuildConfig - apiVersion: v1 - metadata: - name: jvm-runner-with-scripts - spec: - source: - dockerfile: | - FROM jboss/base-jdk:8 - LABEL io.openshift.s2i.scripts-url "image:///usr/libexec/s2i" - LABEL io.openshift.s2i.assemble-input-files "/opt/s2i/destination/src/target/hello.jar" - USER root - RUN mkdir -p /usr/libexec/s2i && \ - curl -s https://raw.githubusercontent.com/openshift/test-maven-app/s2i-assemble-and-assemble-runtime/.s2i/bin/assemble-runtime | tee /usr/libexec/s2i/assemble-runtime && \ - chmod +x /usr/libexec/s2i/assemble-runtime && \ - curl -s https://raw.githubusercontent.com/openshift/test-maven-app/s2i-assemble-and-assemble-runtime/.s2i/bin/run | tee /usr/libexec/s2i/run && \ - chmod +x /usr/libexec/s2i/run - USER 1000 - strategy: - type: Docker - output: - to: - kind: ImageStreamTag - name: jvm-runner-with-scripts:0.1 -`) - -func testExtendedTestdataBuildExtendedJvmRunnerWithScriptsYamlBytes() ([]byte, error) { - return _testExtendedTestdataBuildExtendedJvmRunnerWithScriptsYaml, nil -} - -func testExtendedTestdataBuildExtendedJvmRunnerWithScriptsYaml() (*asset, error) { - bytes, err := testExtendedTestdataBuildExtendedJvmRunnerWithScriptsYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/extended/testdata/build-extended/jvm-runner-with-scripts.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testExtendedTestdataBuildExtendedJvmRunnerYaml = []byte(`kind: List -apiVersion: v1 -items: - -- kind: ImageStream - apiVersion: v1 - metadata: - name: jvm-runner - -- kind: BuildConfig - apiVersion: v1 - metadata: - name: jvm-runner - spec: - source: - dockerfile: | - FROM jboss/base-jdk:8 - USER 1000 - strategy: - type: Docker - output: - to: - kind: ImageStreamTag - name: jvm-runner:0.1 -`) - -func testExtendedTestdataBuildExtendedJvmRunnerYamlBytes() ([]byte, error) { - return _testExtendedTestdataBuildExtendedJvmRunnerYaml, nil -} - -func testExtendedTestdataBuildExtendedJvmRunnerYaml() (*asset, error) { - bytes, err := testExtendedTestdataBuildExtendedJvmRunnerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/extended/testdata/build-extended/jvm-runner.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - var _testExtendedTestdataBuildPruningDefaultGroupBuildConfigYaml = []byte(`apiVersion: build.openshift.io/v1 kind: BuildConfig metadata: @@ -7638,43 +7424,6 @@ func testExtendedTestdataStatusfailPushtoregistryYaml() (*asset, error) { return a, nil } -var _testExtendedTestdataStatusfailRuntimeartifactsYaml = []byte(`kind: BuildConfig -apiVersion: v1 -metadata: - name: statusfail-runtimeartifacts -spec: - source: - git: - uri: "https://github.com/openshift/ruby-hello-world" - strategy: - sourceStrategy: - from: - kind: DockerImage - name: centos/ruby-23-centos7 - runtimeArtifacts: - - destinationDir: app - sourcePath: /tmp/failure - runtimeImage: - kind: DockerImage - name: centos/ruby-23-centos7 - type: Source -`) - -func testExtendedTestdataStatusfailRuntimeartifactsYamlBytes() ([]byte, error) { - return _testExtendedTestdataStatusfailRuntimeartifactsYaml, nil -} - -func testExtendedTestdataStatusfailRuntimeartifactsYaml() (*asset, error) { - bytes, err := testExtendedTestdataStatusfailRuntimeartifactsYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/extended/testdata/statusfail-runtimeartifacts.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - var _testExtendedTestdataStiEnvironmentBuildAppStiEnvironment = []byte(`TEST_ENV=success `) @@ -28454,11 +28203,6 @@ var _bindata = map[string]func() (*asset, error){ "test/extended/testdata/aggregator/sample-apiserver-rc.yaml": testExtendedTestdataAggregatorSampleApiserverRcYaml, "test/extended/testdata/aggregator/sample-apiserver-sa.yaml": testExtendedTestdataAggregatorSampleApiserverSaYaml, "test/extended/testdata/aggregator/sample-apiserver-service.yaml": testExtendedTestdataAggregatorSampleApiserverServiceYaml, - "test/extended/testdata/build-extended/bc-scripts-by-url.yaml": testExtendedTestdataBuildExtendedBcScriptsByUrlYaml, - "test/extended/testdata/build-extended/bc-scripts-in-repo.yaml": testExtendedTestdataBuildExtendedBcScriptsInRepoYaml, - "test/extended/testdata/build-extended/bc-scripts-in-the-image.yaml": testExtendedTestdataBuildExtendedBcScriptsInTheImageYaml, - "test/extended/testdata/build-extended/jvm-runner-with-scripts.yaml": testExtendedTestdataBuildExtendedJvmRunnerWithScriptsYaml, - "test/extended/testdata/build-extended/jvm-runner.yaml": testExtendedTestdataBuildExtendedJvmRunnerYaml, "test/extended/testdata/build-pruning/default-group-build-config.yaml": testExtendedTestdataBuildPruningDefaultGroupBuildConfigYaml, "test/extended/testdata/build-pruning/default-legacy-build-config.yaml": testExtendedTestdataBuildPruningDefaultLegacyBuildConfigYaml, "test/extended/testdata/build-pruning/errored-build-config.yaml": testExtendedTestdataBuildPruningErroredBuildConfigYaml, @@ -28592,7 +28336,6 @@ var _bindata = map[string]func() (*asset, error){ "test/extended/testdata/statusfail-genericreason.yaml": testExtendedTestdataStatusfailGenericreasonYaml, "test/extended/testdata/statusfail-postcommithook.yaml": testExtendedTestdataStatusfailPostcommithookYaml, "test/extended/testdata/statusfail-pushtoregistry.yaml": testExtendedTestdataStatusfailPushtoregistryYaml, - "test/extended/testdata/statusfail-runtimeartifacts.yaml": testExtendedTestdataStatusfailRuntimeartifactsYaml, "test/extended/testdata/sti-environment-build-app/.sti/environment": testExtendedTestdataStiEnvironmentBuildAppStiEnvironment, "test/extended/testdata/sti-environment-build-app/Gemfile": testExtendedTestdataStiEnvironmentBuildAppGemfile, "test/extended/testdata/sti-environment-build-app/config.ru": testExtendedTestdataStiEnvironmentBuildAppConfigRu, @@ -28825,13 +28568,6 @@ var _bintree = &bintree{nil, map[string]*bintree{ "sample-apiserver-sa.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverSaYaml, map[string]*bintree{}}, "sample-apiserver-service.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverServiceYaml, map[string]*bintree{}}, }}, - "build-extended": &bintree{nil, map[string]*bintree{ - "bc-scripts-by-url.yaml": &bintree{testExtendedTestdataBuildExtendedBcScriptsByUrlYaml, map[string]*bintree{}}, - "bc-scripts-in-repo.yaml": &bintree{testExtendedTestdataBuildExtendedBcScriptsInRepoYaml, map[string]*bintree{}}, - "bc-scripts-in-the-image.yaml": &bintree{testExtendedTestdataBuildExtendedBcScriptsInTheImageYaml, map[string]*bintree{}}, - "jvm-runner-with-scripts.yaml": &bintree{testExtendedTestdataBuildExtendedJvmRunnerWithScriptsYaml, map[string]*bintree{}}, - "jvm-runner.yaml": &bintree{testExtendedTestdataBuildExtendedJvmRunnerYaml, map[string]*bintree{}}, - }}, "build-pruning": &bintree{nil, map[string]*bintree{ "default-group-build-config.yaml": &bintree{testExtendedTestdataBuildPruningDefaultGroupBuildConfigYaml, map[string]*bintree{}}, "default-legacy-build-config.yaml": &bintree{testExtendedTestdataBuildPruningDefaultLegacyBuildConfigYaml, map[string]*bintree{}}, @@ -29049,7 +28785,6 @@ var _bintree = &bintree{nil, map[string]*bintree{ "statusfail-genericreason.yaml": &bintree{testExtendedTestdataStatusfailGenericreasonYaml, map[string]*bintree{}}, "statusfail-postcommithook.yaml": &bintree{testExtendedTestdataStatusfailPostcommithookYaml, map[string]*bintree{}}, "statusfail-pushtoregistry.yaml": &bintree{testExtendedTestdataStatusfailPushtoregistryYaml, map[string]*bintree{}}, - "statusfail-runtimeartifacts.yaml": &bintree{testExtendedTestdataStatusfailRuntimeartifactsYaml, map[string]*bintree{}}, "sti-environment-build-app": &bintree{nil, map[string]*bintree{ ".sti": &bintree{nil, map[string]*bintree{ "environment": &bintree{testExtendedTestdataStiEnvironmentBuildAppStiEnvironment, map[string]*bintree{}}, diff --git a/test/extended/testdata/build-extended/bc-scripts-by-url.yaml b/test/extended/testdata/build-extended/bc-scripts-by-url.yaml deleted file mode 100644 index d69bdfa762de..000000000000 --- a/test/extended/testdata/build-extended/bc-scripts-by-url.yaml +++ /dev/null @@ -1,23 +0,0 @@ -kind: BuildConfig -apiVersion: v1 -metadata: - name: java-extended-build-from-url -spec: - source: - git: - uri: "https://github.com/openshift/test-maven-app.git" - strategy: - sourceStrategy: - from: - kind: ImageStreamTag - name: "wildfly:10.0" - namespace: openshift - runtimeImage: - kind: ImageStreamTag - name: "jvm-runner:0.1" - runtimeArtifacts: - - sourcePath: /opt/s2i/destination/src/target/hello.jar - env: - - name: USING_ENV_FROM_BUILD_CONFIG - value: "yes" - scripts: "https://raw.githubusercontent.com/openshift/test-maven-app/s2i-assemble-and-assemble-runtime/.s2i/bin" diff --git a/test/extended/testdata/build-extended/bc-scripts-in-repo.yaml b/test/extended/testdata/build-extended/bc-scripts-in-repo.yaml deleted file mode 100644 index d58ea82bb955..000000000000 --- a/test/extended/testdata/build-extended/bc-scripts-in-repo.yaml +++ /dev/null @@ -1,23 +0,0 @@ -kind: BuildConfig -apiVersion: v1 -metadata: - name: java-extended-build-from-repo -spec: - source: - git: - uri: "https://github.com/openshift/test-maven-app.git" - ref: s2i-assemble-and-assemble-runtime - strategy: - sourceStrategy: - from: - kind: ImageStreamTag - name: "wildfly:10.0" - namespace: openshift - runtimeImage: - kind: ImageStreamTag - name: "jvm-runner:0.1" - runtimeArtifacts: - - sourcePath: /opt/s2i/destination/src/target/hello.jar - env: - - name: USING_ENV_FROM_BUILD_CONFIG - value: "yes" diff --git a/test/extended/testdata/build-extended/bc-scripts-in-the-image.yaml b/test/extended/testdata/build-extended/bc-scripts-in-the-image.yaml deleted file mode 100644 index 28667058b2e4..000000000000 --- a/test/extended/testdata/build-extended/bc-scripts-in-the-image.yaml +++ /dev/null @@ -1,21 +0,0 @@ -kind: BuildConfig -apiVersion: v1 -metadata: - name: java-extended-build-from-image -spec: - source: - git: - uri: "https://github.com/openshift/test-maven-app.git" - ref: s2i-assemble-only - strategy: - sourceStrategy: - from: - kind: ImageStreamTag - name: "wildfly:10.0" - namespace: openshift - runtimeImage: - kind: ImageStreamTag - name: "jvm-runner-with-scripts:0.1" - env: - - name: USING_ENV_FROM_BUILD_CONFIG - value: "yes" diff --git a/test/extended/testdata/build-extended/jvm-runner-with-scripts.yaml b/test/extended/testdata/build-extended/jvm-runner-with-scripts.yaml deleted file mode 100644 index 13a7874b29c3..000000000000 --- a/test/extended/testdata/build-extended/jvm-runner-with-scripts.yaml +++ /dev/null @@ -1,32 +0,0 @@ -kind: List -apiVersion: v1 -items: - -- kind: ImageStream - apiVersion: v1 - metadata: - name: jvm-runner-with-scripts - -- kind: BuildConfig - apiVersion: v1 - metadata: - name: jvm-runner-with-scripts - spec: - source: - dockerfile: | - FROM jboss/base-jdk:8 - LABEL io.openshift.s2i.scripts-url "image:///usr/libexec/s2i" - LABEL io.openshift.s2i.assemble-input-files "/opt/s2i/destination/src/target/hello.jar" - USER root - RUN mkdir -p /usr/libexec/s2i && \ - curl -s https://raw.githubusercontent.com/openshift/test-maven-app/s2i-assemble-and-assemble-runtime/.s2i/bin/assemble-runtime | tee /usr/libexec/s2i/assemble-runtime && \ - chmod +x /usr/libexec/s2i/assemble-runtime && \ - curl -s https://raw.githubusercontent.com/openshift/test-maven-app/s2i-assemble-and-assemble-runtime/.s2i/bin/run | tee /usr/libexec/s2i/run && \ - chmod +x /usr/libexec/s2i/run - USER 1000 - strategy: - type: Docker - output: - to: - kind: ImageStreamTag - name: jvm-runner-with-scripts:0.1 diff --git a/test/extended/testdata/build-extended/jvm-runner.yaml b/test/extended/testdata/build-extended/jvm-runner.yaml deleted file mode 100644 index 84f6f1d74f3c..000000000000 --- a/test/extended/testdata/build-extended/jvm-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -kind: List -apiVersion: v1 -items: - -- kind: ImageStream - apiVersion: v1 - metadata: - name: jvm-runner - -- kind: BuildConfig - apiVersion: v1 - metadata: - name: jvm-runner - spec: - source: - dockerfile: | - FROM jboss/base-jdk:8 - USER 1000 - strategy: - type: Docker - output: - to: - kind: ImageStreamTag - name: jvm-runner:0.1 diff --git a/test/extended/testdata/statusfail-runtimeartifacts.yaml b/test/extended/testdata/statusfail-runtimeartifacts.yaml deleted file mode 100644 index 75b89fb1db0b..000000000000 --- a/test/extended/testdata/statusfail-runtimeartifacts.yaml +++ /dev/null @@ -1,20 +0,0 @@ -kind: BuildConfig -apiVersion: v1 -metadata: - name: statusfail-runtimeartifacts -spec: - source: - git: - uri: "https://github.com/openshift/ruby-hello-world" - strategy: - sourceStrategy: - from: - kind: DockerImage - name: centos/ruby-23-centos7 - runtimeArtifacts: - - destinationDir: app - sourcePath: /tmp/failure - runtimeImage: - kind: DockerImage - name: centos/ruby-23-centos7 - type: Source