From 58c18309a84f9e0fe05b92c202616e4ecf8062f7 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Mon, 1 Apr 2019 14:44:19 -0700 Subject: [PATCH 1/2] Add RemainingItemCount to ListMeta --- .../apimachinery/pkg/apis/meta/v1/meta.go | 4 ++ .../apimachinery/pkg/apis/meta/v1/types.go | 8 ++++ .../pkg/apis/meta/v1/unstructured/helpers.go | 8 ++++ .../meta/v1/unstructured/unstructured_list.go | 8 ++++ .../pkg/test/api_meta_meta_test.go | 43 ++++++++++--------- .../apiserver/pkg/storage/cacher/cacher.go | 4 +- .../storage/cacher/cacher_whitebox_test.go | 3 +- .../pkg/storage/etcd/api_object_versioner.go | 3 +- .../apiserver/pkg/storage/etcd3/store.go | 15 +++++-- .../apiserver/pkg/storage/etcd3/store_test.go | 25 ++++++----- .../apiserver/pkg/storage/interfaces.go | 10 +++-- test/e2e/apimachinery/chunking.go | 8 +++- 12 files changed, 95 insertions(+), 44 deletions(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go index 05f07adf1b8..dbe3ff59929 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go @@ -94,6 +94,8 @@ type ListInterface interface { SetSelfLink(selfLink string) GetContinue() string SetContinue(c string) + GetRemainingItemCount() int64 + SetRemainingItemCount(c int64) } // Type exposes the type and APIVersion of versioned or internal API objects. @@ -111,6 +113,8 @@ func (meta *ListMeta) GetSelfLink() string { return meta.SelfLink func (meta *ListMeta) SetSelfLink(selfLink string) { meta.SelfLink = selfLink } func (meta *ListMeta) GetContinue() string { return meta.Continue } func (meta *ListMeta) SetContinue(c string) { meta.Continue = c } +func (meta *ListMeta) GetRemainingItemCount() int64 { return meta.RemainingItemCount } +func (meta *ListMeta) SetRemainingItemCount(c int64) { meta.RemainingItemCount = c } func (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj } diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go index d3547940024..e2bb511e423 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go @@ -81,6 +81,14 @@ type ListMeta struct { // identical to the value in the first response, unless you have received this token from an error // message. Continue string `json:"continue,omitempty" protobuf:"bytes,3,opt,name=continue"` + + // RemainingItemCount is the number of subsequent items in the list which are not included in this + // list response. If the list request contained label or field selectors, then the number of + // remaining items is unknown and this field will be unset. If the list is complete (either + // because it is unpaginated or because this is the last page), then there are no more remaining + // items and this field will also be unset. Servers older than v1.15 do not set this field. + // +optional + RemainingItemCount int64 `json:"remainingItemCount,omitempty" protobuf:"bytes,4,opt,name=remainingItemCount"` } // These are internal finalizer values for Kubernetes-like APIs, must be qualified name unless defined here diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go index 75ac693fe48..a90849176b3 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go @@ -275,6 +275,14 @@ func getNestedString(obj map[string]interface{}, fields ...string) string { return val } +func getNestedInt64(obj map[string]interface{}, fields ...string) int64 { + val, found, err := NestedInt64(obj, fields...) + if !found || err != nil { + return 0 + } + return val +} + func jsonPath(fields []string) string { return "." + strings.Join(fields, ".") } diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go index bf3fd023f4d..f0c204899ad 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go @@ -166,6 +166,14 @@ func (u *UnstructuredList) SetContinue(c string) { u.setNestedField(c, "metadata", "continue") } +func (u *UnstructuredList) GetRemainingItemCount() int64 { + return getNestedInt64(u.Object, "metadata", "remainingItemCount") +} + +func (u *UnstructuredList) SetRemainingItemCount(c int64) { + u.setNestedField(c, "metadata", "remainingItemCount") +} + func (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind) { u.SetAPIVersion(gvk.GroupVersion().String()) u.SetKind(gvk.Kind) diff --git a/staging/src/k8s.io/apimachinery/pkg/test/api_meta_meta_test.go b/staging/src/k8s.io/apimachinery/pkg/test/api_meta_meta_test.go index 157360a191a..a8582c51bba 100644 --- a/staging/src/k8s.io/apimachinery/pkg/test/api_meta_meta_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/test/api_meta_meta_test.go @@ -193,28 +193,31 @@ func TestGenericTypeMeta(t *testing.T) { } type InternalTypeMeta struct { - Kind string `json:"kind,omitempty"` - Namespace string `json:"namespace,omitempty"` - Name string `json:"name,omitempty"` - GenerateName string `json:"generateName,omitempty"` - UID string `json:"uid,omitempty"` - CreationTimestamp metav1.Time `json:"creationTimestamp,omitempty"` - SelfLink string `json:"selfLink,omitempty"` - ResourceVersion string `json:"resourceVersion,omitempty"` - Continue string `json:"next,omitempty"` - APIVersion string `json:"apiVersion,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - Finalizers []string `json:"finalizers,omitempty"` - OwnerReferences []metav1.OwnerReference `json:"ownerReferences,omitempty"` + Kind string `json:"kind,omitempty"` + Namespace string `json:"namespace,omitempty"` + Name string `json:"name,omitempty"` + GenerateName string `json:"generateName,omitempty"` + UID string `json:"uid,omitempty"` + CreationTimestamp metav1.Time `json:"creationTimestamp,omitempty"` + SelfLink string `json:"selfLink,omitempty"` + ResourceVersion string `json:"resourceVersion,omitempty"` + Continue string `json:"next,omitempty"` + RemainingItemCount int64 `json:"remainingItemCount,omitempty"` + APIVersion string `json:"apiVersion,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Finalizers []string `json:"finalizers,omitempty"` + OwnerReferences []metav1.OwnerReference `json:"ownerReferences,omitempty"` } -func (m *InternalTypeMeta) GetResourceVersion() string { return m.ResourceVersion } -func (m *InternalTypeMeta) SetResourceVersion(rv string) { m.ResourceVersion = rv } -func (m *InternalTypeMeta) GetSelfLink() string { return m.SelfLink } -func (m *InternalTypeMeta) SetSelfLink(link string) { m.SelfLink = link } -func (m *InternalTypeMeta) GetContinue() string { return m.Continue } -func (m *InternalTypeMeta) SetContinue(c string) { m.Continue = c } +func (m *InternalTypeMeta) GetResourceVersion() string { return m.ResourceVersion } +func (m *InternalTypeMeta) SetResourceVersion(rv string) { m.ResourceVersion = rv } +func (m *InternalTypeMeta) GetSelfLink() string { return m.SelfLink } +func (m *InternalTypeMeta) SetSelfLink(link string) { m.SelfLink = link } +func (m *InternalTypeMeta) GetContinue() string { return m.Continue } +func (m *InternalTypeMeta) SetContinue(c string) { m.Continue = c } +func (m *InternalTypeMeta) GetRemainingItemCount() int64 { return m.RemainingItemCount } +func (m *InternalTypeMeta) SetRemainingItemCount(c int64) { m.RemainingItemCount = c } type MyAPIObject struct { TypeMeta InternalTypeMeta `json:",inline"` diff --git a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go index 4bc8d323915..51c3d36ca7b 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go @@ -604,7 +604,7 @@ func (c *Cacher) GetToList(ctx context.Context, key string, resourceVersion stri } } if c.versioner != nil { - if err := c.versioner.UpdateList(listObj, readResourceVersion, ""); err != nil { + if err := c.versioner.UpdateList(listObj, readResourceVersion, "", 0); err != nil { return err } } @@ -679,7 +679,7 @@ func (c *Cacher) List(ctx context.Context, key string, resourceVersion string, p } trace.Step(fmt.Sprintf("Filtered %d items", listVal.Len())) if c.versioner != nil { - if err := c.versioner.UpdateList(listObj, readResourceVersion, ""); err != nil { + if err := c.versioner.UpdateList(listObj, readResourceVersion, "", 0); err != nil { return err } } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher_whitebox_test.go b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher_whitebox_test.go index 9f9016dd899..a737b9ccb7a 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher_whitebox_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher_whitebox_test.go @@ -217,13 +217,14 @@ type testVersioner struct{} func (testVersioner) UpdateObject(obj runtime.Object, resourceVersion uint64) error { return meta.NewAccessor().SetResourceVersion(obj, strconv.FormatUint(resourceVersion, 10)) } -func (testVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string) error { +func (testVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string, count int64) error { listAccessor, err := meta.ListAccessor(obj) if err != nil || listAccessor == nil { return err } listAccessor.SetResourceVersion(strconv.FormatUint(resourceVersion, 10)) listAccessor.SetContinue(continueValue) + listAccessor.SetRemainingItemCount(count) return nil } func (testVersioner) PrepareObjectForStorage(obj runtime.Object) error { diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/api_object_versioner.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd/api_object_versioner.go index 2fed9f486fe..dc2b35da091 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/api_object_versioner.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/api_object_versioner.go @@ -44,7 +44,7 @@ func (a APIObjectVersioner) UpdateObject(obj runtime.Object, resourceVersion uin } // UpdateList implements Versioner -func (a APIObjectVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, nextKey string) error { +func (a APIObjectVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, nextKey string, count int64) error { listAccessor, err := meta.ListAccessor(obj) if err != nil || listAccessor == nil { return err @@ -55,6 +55,7 @@ func (a APIObjectVersioner) UpdateList(obj runtime.Object, resourceVersion uint6 } listAccessor.SetResourceVersion(versionString) listAccessor.SetContinue(nextKey) + listAccessor.SetRemainingItemCount(count) return nil } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go index 34e91361768..1216b1f1e27 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go @@ -413,7 +413,7 @@ func (s *store) GetToList(ctx context.Context, key string, resourceVersion strin } } // update version with cluster level revision - return s.versioner.UpdateList(listObj, uint64(getResp.Header.Revision), "") + return s.versioner.UpdateList(listObj, uint64(getResp.Header.Revision), "", 0) } func (s *store) Count(key string) (int64, error) { @@ -576,9 +576,10 @@ func (s *store) List(ctx context.Context, key, resourceVersion string, pred stor // loop until we have filled the requested limit from etcd or there are no more results var lastKey []byte var hasMore bool + var getResp *clientv3.GetResponse for { startTime := time.Now() - getResp, err := s.client.KV.Get(ctx, key, options...) + getResp, err = s.client.KV.Get(ctx, key, options...) metrics.RecordEtcdRequestLatency("list", getTypeName(listPtr), startTime) if err != nil { return interpretListError(err, len(pred.Continue) > 0, continueKey, keyPrefix) @@ -639,11 +640,17 @@ func (s *store) List(ctx context.Context, key, resourceVersion string, pred stor if err != nil { return err } - return s.versioner.UpdateList(listObj, uint64(returnedRV), next) + remainingItemCount := getResp.Count - pred.Limit + // getResp.Count counts in objects that do not match the pred. + // Instead of returning inaccurate count, return 0. + if !pred.Empty() { + remainingItemCount = 0 + } + return s.versioner.UpdateList(listObj, uint64(returnedRV), next, remainingItemCount) } // no continuation - return s.versioner.UpdateList(listObj, uint64(returnedRV), "") + return s.versioner.UpdateList(listObj, uint64(returnedRV), "", 0) } // growSlice takes a slice value and grows its capacity up diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go index 8f4ae504a91..4d4c1e158ca 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go @@ -825,14 +825,15 @@ func TestList(t *testing.T) { } tests := []struct { - name string - disablePaging bool - rv string - prefix string - pred storage.SelectionPredicate - expectedOut []*example.Pod - expectContinue bool - expectError bool + name string + disablePaging bool + rv string + prefix string + pred storage.SelectionPredicate + expectedOut []*example.Pod + expectContinue bool + expectedRemainingItemCount int64 + expectError bool }{ { name: "rejects invalid resource version", @@ -882,8 +883,9 @@ func TestList(t *testing.T) { Field: fields.Everything(), Limit: 1, }, - expectedOut: []*example.Pod{preset[1].storedObj}, - expectContinue: true, + expectedOut: []*example.Pod{preset[1].storedObj}, + expectContinue: true, + expectedRemainingItemCount: 1, }, { name: "test List with limit when paging disabled", @@ -1061,6 +1063,9 @@ func TestList(t *testing.T) { t.Errorf("(%s): length of list want=%d, got=%d", tt.name, len(tt.expectedOut), len(out.Items)) continue } + if e, a := tt.expectedRemainingItemCount, out.ListMeta.RemainingItemCount; e != a { + t.Errorf("(%s): remainingItemCount want=%d, got=%d", tt.name, e, a) + } for j, wantPod := range tt.expectedOut { getPod := &out.Items[j] if !reflect.DeepEqual(wantPod, getPod) { diff --git a/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go b/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go index 108f2acb479..f2a1f105373 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/interfaces.go @@ -40,10 +40,12 @@ type Versioner interface { // from database. UpdateObject(obj runtime.Object, resourceVersion uint64) error // UpdateList sets the resource version into an API list object. Returns an error if the object - // cannot be updated correctly. May return nil if the requested object does not need metadata - // from database. continueValue is optional and indicates that more results are available if - // the client passes that value to the server in a subsequent call. - UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string) error + // cannot be updated correctly. May return nil if the requested object does not need metadata from + // database. continueValue is optional and indicates that more results are available if the client + // passes that value to the server in a subsequent call. remainingItemCount indicates the number + // of remaining objects if the list is partial. The remainingItemCount field is omitted during + // serialization if it is set to 0. + UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string, remainingItemCount int64) error // PrepareObjectForStorage should set SelfLink and ResourceVersion to the empty value. Should // return an error if the specified object cannot be updated. PrepareObjectForStorage(obj runtime.Object) error diff --git a/test/e2e/apimachinery/chunking.go b/test/e2e/apimachinery/chunking.go index 05c0256f50d..47ac30f0a78 100644 --- a/test/e2e/apimachinery/chunking.go +++ b/test/e2e/apimachinery/chunking.go @@ -26,7 +26,7 @@ import ( "github.com/onsi/ginkgo" "github.com/onsi/gomega" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" @@ -88,6 +88,7 @@ var _ = SIGDescribe("Servers with support for API chunking", func() { lastRV = list.ResourceVersion } gomega.Expect(list.ResourceVersion).To(gomega.Equal(lastRV)) + gomega.Expect(int(list.RemainingItemCount) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources)) for _, item := range list.Items { gomega.Expect(item.Name).To(gomega.Equal(fmt.Sprintf("template-%04d", found))) found++ @@ -120,6 +121,7 @@ var _ = SIGDescribe("Servers with support for API chunking", func() { gomega.Expect(err).ToNot(gomega.HaveOccurred(), "failed to list pod templates in namespace: %s, given limit: %d", ns, opts.Limit) firstToken := list.Continue firstRV := list.ResourceVersion + gomega.Expect(int(list.RemainingItemCount) + len(list.Items)).To(gomega.BeNumerically("==", numberOfTotalResources)) framework.Logf("Retrieved %d/%d results with rv %s and continue %s", len(list.Items), opts.Limit, list.ResourceVersion, firstToken) ginkgo.By("retrieving the second page until the token expires") @@ -153,7 +155,8 @@ var _ = SIGDescribe("Servers with support for API chunking", func() { gomega.Expect(err).ToNot(gomega.HaveOccurred(), "failed to list pod templates in namespace: %s, given inconsistent continue token %s and limit: %d", ns, opts.Continue, opts.Limit) gomega.Expect(list.ResourceVersion).ToNot(gomega.Equal(firstRV)) gomega.Expect(len(list.Items)).To(gomega.BeNumerically("==", opts.Limit)) - found := oneTenth + found := int(oneTenth) + gomega.Expect(int(list.RemainingItemCount) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources)) for _, item := range list.Items { gomega.Expect(item.Name).To(gomega.Equal(fmt.Sprintf("template-%04d", found))) found++ @@ -165,6 +168,7 @@ var _ = SIGDescribe("Servers with support for API chunking", func() { for { list, err := client.List(opts) gomega.Expect(err).ToNot(gomega.HaveOccurred(), "failed to list pod templates in namespace: %s, given limit: %d", ns, opts.Limit) + gomega.Expect(int(list.RemainingItemCount) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources)) framework.Logf("Retrieved %d/%d results with rv %s and continue %s", len(list.Items), opts.Limit, list.ResourceVersion, list.Continue) gomega.Expect(len(list.Items)).To(gomega.BeNumerically("<=", opts.Limit)) gomega.Expect(list.ResourceVersion).To(gomega.Equal(lastRV)) From d001a0fc86ffa6361265cc311c469d4c173fe019 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Mon, 1 Apr 2019 15:09:06 -0700 Subject: [PATCH 2/2] generated --- api/openapi-spec/swagger.json | 5 + .../generated/openapi/zz_generated.openapi.go | 7 + .../pkg/apis/meta/v1/generated.pb.go | 376 ++++++++++-------- .../pkg/apis/meta/v1/generated.proto | 8 + .../meta/v1/types_swagger_doc_generated.go | 9 +- 5 files changed, 226 insertions(+), 179 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 78bcdcdbd6b..5fad24c09f2 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -17442,6 +17442,11 @@ "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", "type": "string" }, + "remainingItemCount": { + "description": "RemainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and this field will be unset. If the list is complete (either because it is unpaginated or because this is the last page), then there are no more remaining items and this field will also be unset. Servers older than v1.15 do not set this field.", + "format": "int64", + "type": "integer" + }, "resourceVersion": { "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", "type": "string" diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go index ec1e64387dc..906b49377d8 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go @@ -1851,6 +1851,13 @@ func schema_pkg_apis_meta_v1_ListMeta(ref common.ReferenceCallback) common.OpenA Format: "", }, }, + "remainingItemCount": { + SchemaProps: spec.SchemaProps{ + Description: "RemainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and this field will be unset. If the list is complete (either because it is unpaginated or because this is the last page), then there are no more remaining items and this field will also be unset. Servers older than v1.15 do not set this field.", + Type: []string{"integer"}, + Format: "int64", + }, + }, }, }, }, diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go index e275228950a..c1152943bd5 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go @@ -1199,6 +1199,9 @@ func (m *ListMeta) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Continue))) i += copy(dAtA[i:], m.Continue) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RemainingItemCount)) return i, nil } @@ -2388,6 +2391,7 @@ func (m *ListMeta) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.Continue) n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.RemainingItemCount)) return n } @@ -2940,6 +2944,7 @@ func (this *ListMeta) String() string { `SelfLink:` + fmt.Sprintf("%v", this.SelfLink) + `,`, `ResourceVersion:` + fmt.Sprintf("%v", this.ResourceVersion) + `,`, `Continue:` + fmt.Sprintf("%v", this.Continue) + `,`, + `RemainingItemCount:` + fmt.Sprintf("%v", this.RemainingItemCount) + `,`, `}`, }, "") return s @@ -6185,6 +6190,25 @@ func (m *ListMeta) Unmarshal(dAtA []byte) error { } m.Continue = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RemainingItemCount", wireType) + } + m.RemainingItemCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RemainingItemCount |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -9497,180 +9521,182 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 2796 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4d, 0x6c, 0x23, 0x57, + // 2825 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0xcf, 0x6f, 0x23, 0x57, 0x39, 0x63, 0xc7, 0x8e, 0xfd, 0x39, 0xde, 0x4d, 0xde, 0xee, 0x82, 0x1b, 0x44, 0x9c, 0x4e, 0x51, - 0xb5, 0x85, 0xad, 0xd3, 0xdd, 0xd2, 0x6a, 0xd9, 0xd2, 0x42, 0x9c, 0x9f, 0x6d, 0xe8, 0xa6, 0x89, - 0x5e, 0x76, 0x17, 0xb1, 0xac, 0x50, 0x27, 0x9e, 0x17, 0x67, 0xc8, 0x78, 0xc6, 0x7d, 0x6f, 0x9c, - 0x5d, 0xc3, 0x81, 0x1e, 0x40, 0x80, 0x04, 0x55, 0x8f, 0x9c, 0x50, 0x2b, 0xb8, 0x70, 0xe5, 0xc4, - 0x89, 0x53, 0x25, 0x7a, 0x41, 0xaa, 0xc4, 0x81, 0x1e, 0x90, 0xd5, 0x06, 0x24, 0xb8, 0x71, 0xcf, - 0x09, 0xbd, 0xbf, 0x99, 0x37, 0x76, 0xbc, 0x19, 0xb3, 0xa5, 0xe2, 0xe4, 0x99, 0xef, 0xff, 0xbd, - 0xf7, 0xbd, 0xef, 0x6f, 0x0c, 0x5b, 0x87, 0xd7, 0x59, 0xc3, 0x0b, 0x97, 0x0f, 0x7b, 0x7b, 0x84, - 0x06, 0x24, 0x22, 0x6c, 0xf9, 0x88, 0x04, 0x6e, 0x48, 0x97, 0x15, 0xc2, 0xe9, 0x7a, 0x1d, 0xa7, - 0x75, 0xe0, 0x05, 0x84, 0xf6, 0x97, 0xbb, 0x87, 0x6d, 0x0e, 0x60, 0xcb, 0x1d, 0x12, 0x39, 0xcb, - 0x47, 0x57, 0x97, 0xdb, 0x24, 0x20, 0xd4, 0x89, 0x88, 0xdb, 0xe8, 0xd2, 0x30, 0x0a, 0xd1, 0x97, - 0x24, 0x57, 0xc3, 0xe4, 0x6a, 0x74, 0x0f, 0xdb, 0x1c, 0xc0, 0x1a, 0x9c, 0xab, 0x71, 0x74, 0x75, - 0xe1, 0xd9, 0xb6, 0x17, 0x1d, 0xf4, 0xf6, 0x1a, 0xad, 0xb0, 0xb3, 0xdc, 0x0e, 0xdb, 0xe1, 0xb2, - 0x60, 0xde, 0xeb, 0xed, 0x8b, 0x37, 0xf1, 0x22, 0x9e, 0xa4, 0xd0, 0x85, 0xb1, 0xa6, 0xd0, 0x5e, - 0x10, 0x79, 0x1d, 0x32, 0x6c, 0xc5, 0xc2, 0x8b, 0x67, 0x31, 0xb0, 0xd6, 0x01, 0xe9, 0x38, 0xc3, - 0x7c, 0xf6, 0x9f, 0xf2, 0x50, 0x5a, 0xd9, 0xd9, 0xbc, 0x49, 0xc3, 0x5e, 0x17, 0x2d, 0xc1, 0x74, - 0xe0, 0x74, 0x48, 0xcd, 0x5a, 0xb2, 0x2e, 0x97, 0x9b, 0xb3, 0x1f, 0x0c, 0xea, 0x53, 0xc7, 0x83, - 0xfa, 0xf4, 0xeb, 0x4e, 0x87, 0x60, 0x81, 0x41, 0x3e, 0x94, 0x8e, 0x08, 0x65, 0x5e, 0x18, 0xb0, - 0x5a, 0x6e, 0x29, 0x7f, 0xb9, 0x72, 0xed, 0x95, 0x46, 0x96, 0xf5, 0x37, 0x84, 0x82, 0xbb, 0x92, - 0x75, 0x23, 0xa4, 0x6b, 0x1e, 0x6b, 0x85, 0x47, 0x84, 0xf6, 0x9b, 0x73, 0x4a, 0x4b, 0x49, 0x21, - 0x19, 0x8e, 0x35, 0xa0, 0x1f, 0x5b, 0x30, 0xd7, 0xa5, 0x64, 0x9f, 0x50, 0x4a, 0x5c, 0x85, 0xaf, - 0xe5, 0x97, 0xac, 0x4f, 0x41, 0x6d, 0x4d, 0xa9, 0x9d, 0xdb, 0x19, 0x92, 0x8f, 0x47, 0x34, 0xa2, - 0xdf, 0x58, 0xb0, 0xc0, 0x08, 0x3d, 0x22, 0x74, 0xc5, 0x75, 0x29, 0x61, 0xac, 0xd9, 0x5f, 0xf5, - 0x3d, 0x12, 0x44, 0xab, 0x9b, 0x6b, 0x98, 0xd5, 0xa6, 0xc5, 0x3e, 0x7c, 0x23, 0x9b, 0x41, 0xbb, - 0xe3, 0xe4, 0x34, 0x6d, 0x65, 0xd1, 0xc2, 0x58, 0x12, 0x86, 0x1f, 0x61, 0x86, 0xbd, 0x0f, 0xb3, - 0xfa, 0x20, 0x6f, 0x79, 0x2c, 0x42, 0x77, 0xa1, 0xd8, 0xe6, 0x2f, 0xac, 0x66, 0x09, 0x03, 0x1b, - 0xd9, 0x0c, 0xd4, 0x32, 0x9a, 0xe7, 0x94, 0x3d, 0x45, 0xf1, 0xca, 0xb0, 0x92, 0x66, 0xff, 0x7c, - 0x1a, 0x2a, 0x2b, 0x3b, 0x9b, 0x98, 0xb0, 0xb0, 0x47, 0x5b, 0x24, 0x83, 0xd3, 0x5c, 0x03, 0xe0, - 0xbf, 0xac, 0xeb, 0xb4, 0x88, 0x5b, 0xcb, 0x2d, 0x59, 0x97, 0x4b, 0x4d, 0xa4, 0xe8, 0xe0, 0xf5, - 0x18, 0x83, 0x0d, 0x2a, 0x2e, 0xf5, 0xd0, 0x0b, 0x5c, 0x71, 0xda, 0x86, 0xd4, 0xd7, 0xbc, 0xc0, - 0xc5, 0x02, 0x83, 0x6e, 0x41, 0xe1, 0x88, 0xd0, 0x3d, 0xbe, 0xff, 0xdc, 0x21, 0xbe, 0x92, 0x6d, - 0x79, 0x77, 0x39, 0x4b, 0xb3, 0x7c, 0x3c, 0xa8, 0x17, 0xc4, 0x23, 0x96, 0x42, 0x50, 0x03, 0x80, - 0x1d, 0x84, 0x34, 0x12, 0xe6, 0xd4, 0x0a, 0x4b, 0xf9, 0xcb, 0xe5, 0xe6, 0x39, 0x6e, 0xdf, 0x6e, - 0x0c, 0xc5, 0x06, 0x05, 0xba, 0x0e, 0xb3, 0xcc, 0x0b, 0xda, 0x3d, 0xdf, 0xa1, 0x1c, 0x50, 0x2b, - 0x0a, 0x3b, 0x2f, 0x2a, 0x3b, 0x67, 0x77, 0x0d, 0x1c, 0x4e, 0x51, 0x72, 0x4d, 0x2d, 0x27, 0x22, - 0xed, 0x90, 0x7a, 0x84, 0xd5, 0x66, 0x12, 0x4d, 0xab, 0x31, 0x14, 0x1b, 0x14, 0xe8, 0x29, 0x28, - 0x88, 0x9d, 0xaf, 0x95, 0x84, 0x8a, 0xaa, 0x52, 0x51, 0x10, 0xc7, 0x82, 0x25, 0x0e, 0x3d, 0x03, - 0x33, 0xea, 0xd6, 0xd4, 0xca, 0x82, 0xec, 0xbc, 0x22, 0x9b, 0xd1, 0x6e, 0xad, 0xf1, 0xe8, 0x5b, - 0x80, 0x58, 0x14, 0x52, 0xa7, 0x4d, 0x14, 0xea, 0x55, 0x87, 0x1d, 0xd4, 0x40, 0x70, 0x2d, 0x28, - 0x2e, 0xb4, 0x3b, 0x42, 0x81, 0x4f, 0xe1, 0xb2, 0x7f, 0x6f, 0xc1, 0x79, 0xc3, 0x17, 0x84, 0xdf, - 0x5d, 0x87, 0xd9, 0xb6, 0x71, 0xeb, 0x94, 0x5f, 0xc4, 0x3b, 0x63, 0xde, 0x48, 0x9c, 0xa2, 0x44, - 0x04, 0xca, 0x54, 0x49, 0xd2, 0xd1, 0xe5, 0x6a, 0x66, 0xa7, 0xd5, 0x36, 0x24, 0x9a, 0x0c, 0x20, - 0xc3, 0x89, 0x64, 0xfb, 0x9f, 0x96, 0x70, 0x60, 0x1d, 0x6f, 0xd0, 0x65, 0x23, 0xa6, 0x59, 0xe2, - 0x38, 0x66, 0xc7, 0xc4, 0xa3, 0x33, 0x02, 0x41, 0xee, 0xff, 0x22, 0x10, 0xdc, 0x28, 0xfd, 0xea, - 0xdd, 0xfa, 0xd4, 0x5b, 0x7f, 0x5b, 0x9a, 0xb2, 0x3b, 0x50, 0x5d, 0xa5, 0xc4, 0x89, 0xc8, 0x76, - 0x37, 0x12, 0x0b, 0xb0, 0xa1, 0xe8, 0xd2, 0x3e, 0xee, 0x05, 0x6a, 0xa1, 0xc0, 0xef, 0xf7, 0x9a, - 0x80, 0x60, 0x85, 0xe1, 0xe7, 0xb7, 0xef, 0x11, 0xdf, 0xdd, 0x72, 0x02, 0xa7, 0x4d, 0xa8, 0xba, - 0x81, 0xf1, 0xae, 0x6e, 0x18, 0x38, 0x9c, 0xa2, 0xb4, 0x7f, 0x9a, 0x87, 0xea, 0x1a, 0xf1, 0x49, - 0xa2, 0x6f, 0x03, 0x50, 0x9b, 0x3a, 0x2d, 0xb2, 0x43, 0xa8, 0x17, 0xba, 0xbb, 0xa4, 0x15, 0x06, - 0x2e, 0x13, 0x1e, 0x91, 0x6f, 0x7e, 0x8e, 0xfb, 0xd9, 0xcd, 0x11, 0x2c, 0x3e, 0x85, 0x03, 0xf9, - 0x50, 0xed, 0x52, 0xf1, 0xec, 0x45, 0x2a, 0xf7, 0xf0, 0x3b, 0xff, 0x7c, 0xb6, 0xad, 0xde, 0x31, - 0x59, 0x9b, 0xf3, 0xc7, 0x83, 0x7a, 0x35, 0x05, 0xc2, 0x69, 0xe1, 0xe8, 0x9b, 0x30, 0x17, 0xd2, - 0xee, 0x81, 0x13, 0xac, 0x91, 0x2e, 0x09, 0x5c, 0x12, 0x44, 0x4c, 0xec, 0x42, 0xa9, 0x79, 0x91, - 0x67, 0x8c, 0xed, 0x21, 0x1c, 0x1e, 0xa1, 0x46, 0xf7, 0x60, 0xbe, 0x4b, 0xc3, 0xae, 0xd3, 0x76, - 0xb8, 0xc4, 0x9d, 0xd0, 0xf7, 0x5a, 0x7d, 0x11, 0xa7, 0xca, 0xcd, 0x2b, 0xc7, 0x83, 0xfa, 0xfc, - 0xce, 0x30, 0xf2, 0x64, 0x50, 0xbf, 0x20, 0xb6, 0x8e, 0x43, 0x12, 0x24, 0x1e, 0x15, 0x63, 0x9c, - 0x61, 0x61, 0xdc, 0x19, 0xda, 0x9b, 0x50, 0x5a, 0xeb, 0x51, 0xc1, 0x85, 0x5e, 0x86, 0x92, 0xab, - 0x9e, 0xd5, 0xce, 0x3f, 0xa9, 0x53, 0xae, 0xa6, 0x39, 0x19, 0xd4, 0xab, 0xbc, 0x48, 0x68, 0x68, - 0x00, 0x8e, 0x59, 0xec, 0xfb, 0x50, 0x5d, 0x7f, 0xd8, 0x0d, 0x69, 0xa4, 0xcf, 0xf4, 0x69, 0x28, - 0x12, 0x01, 0x10, 0xd2, 0x4a, 0x49, 0x9e, 0x90, 0x64, 0x58, 0x61, 0x79, 0xdc, 0x22, 0x0f, 0x9d, - 0x56, 0xa4, 0x02, 0x7e, 0x1c, 0xb7, 0xd6, 0x39, 0x10, 0x4b, 0x9c, 0xfd, 0xbe, 0x05, 0x45, 0xe1, - 0x51, 0x0c, 0xdd, 0x86, 0x7c, 0xc7, 0xe9, 0xaa, 0x64, 0xf5, 0x42, 0xb6, 0x93, 0x95, 0xac, 0x8d, - 0x2d, 0xa7, 0xbb, 0x1e, 0x44, 0xb4, 0xdf, 0xac, 0x28, 0x25, 0xf9, 0x2d, 0xa7, 0x8b, 0xb9, 0xb8, - 0x05, 0x17, 0x4a, 0x1a, 0x8b, 0xe6, 0x20, 0x7f, 0x48, 0xfa, 0x32, 0x20, 0x61, 0xfe, 0x88, 0x9a, - 0x50, 0x38, 0x72, 0xfc, 0x1e, 0x51, 0xfe, 0x74, 0x65, 0x12, 0xad, 0x58, 0xb2, 0xde, 0xc8, 0x5d, - 0xb7, 0xec, 0x6d, 0x80, 0x9b, 0x24, 0xde, 0xa1, 0x15, 0x38, 0xaf, 0xa3, 0x4d, 0x3a, 0x08, 0x7e, - 0x5e, 0x99, 0x77, 0x1e, 0xa7, 0xd1, 0x78, 0x98, 0xde, 0xbe, 0x0f, 0x65, 0x11, 0x28, 0x79, 0xbe, - 0x4b, 0x32, 0x80, 0xf5, 0x88, 0x0c, 0xa0, 0x13, 0x66, 0x6e, 0x5c, 0xc2, 0x34, 0xe2, 0x82, 0x0f, - 0x55, 0xc9, 0xab, 0x73, 0x78, 0x26, 0x0d, 0x57, 0xa0, 0xa4, 0xcd, 0x54, 0x5a, 0xe2, 0xda, 0x4d, - 0x0b, 0xc2, 0x31, 0x85, 0xa1, 0xed, 0x00, 0x52, 0x41, 0x3f, 0x9b, 0x32, 0x23, 0xa1, 0xe5, 0x1e, - 0x9d, 0xd0, 0x0c, 0x4d, 0x3f, 0x82, 0xda, 0xb8, 0x82, 0xef, 0x31, 0xd2, 0x52, 0x76, 0x53, 0xec, - 0xb7, 0x2d, 0x98, 0x33, 0x25, 0x65, 0x3f, 0xbe, 0xec, 0x4a, 0xce, 0x2e, 0x8d, 0x8c, 0x1d, 0xf9, - 0xb5, 0x05, 0x17, 0x53, 0x4b, 0x9b, 0xe8, 0xc4, 0x27, 0x30, 0xca, 0x74, 0x8e, 0xfc, 0x04, 0xce, - 0xb1, 0x0c, 0x95, 0xcd, 0xc0, 0x8b, 0x3c, 0xc7, 0xf7, 0x7e, 0x40, 0xe8, 0xd9, 0xc5, 0xa4, 0xfd, - 0x47, 0x0b, 0x66, 0x0d, 0x0e, 0x86, 0xee, 0xc3, 0x0c, 0x8f, 0xbb, 0x5e, 0xd0, 0x56, 0xb1, 0x23, - 0x63, 0xcd, 0x60, 0x08, 0x49, 0xd6, 0xb5, 0x23, 0x25, 0x61, 0x2d, 0x12, 0xed, 0x40, 0x91, 0x12, - 0xd6, 0xf3, 0xa3, 0xc9, 0x42, 0xc4, 0x6e, 0xe4, 0x44, 0x3d, 0x26, 0x63, 0x33, 0x16, 0xfc, 0x58, - 0xc9, 0xb1, 0xff, 0x92, 0x83, 0xea, 0x2d, 0x67, 0x8f, 0xf8, 0xbb, 0xc4, 0x27, 0xad, 0x28, 0xa4, - 0xe8, 0x87, 0x50, 0xe9, 0x38, 0x51, 0xeb, 0x40, 0x40, 0x75, 0xb9, 0xbe, 0x96, 0x4d, 0x51, 0x4a, - 0x52, 0x63, 0x2b, 0x11, 0x23, 0x03, 0xe2, 0x05, 0xb5, 0xb0, 0x8a, 0x81, 0xc1, 0xa6, 0x36, 0xd1, - 0x63, 0x89, 0xf7, 0xf5, 0x87, 0x5d, 0x5e, 0x4b, 0x4c, 0xde, 0xda, 0xa5, 0x4c, 0xc0, 0xe4, 0xcd, - 0x9e, 0x47, 0x49, 0x87, 0x04, 0x51, 0xd2, 0x63, 0x6d, 0x0d, 0xc9, 0xc7, 0x23, 0x1a, 0x17, 0x5e, - 0x81, 0xb9, 0x61, 0xe3, 0x4f, 0x89, 0xd7, 0x17, 0xcd, 0x78, 0x5d, 0x36, 0x23, 0xf0, 0x6f, 0x2d, - 0xa8, 0x8d, 0x33, 0x04, 0x7d, 0xd1, 0x10, 0x94, 0xe4, 0x88, 0xd7, 0x48, 0x5f, 0x4a, 0x5d, 0x87, - 0x52, 0xd8, 0xe5, 0x5d, 0x71, 0x48, 0x95, 0x9f, 0x3f, 0xa3, 0x7d, 0x77, 0x5b, 0xc1, 0x4f, 0x06, - 0xf5, 0x4b, 0x29, 0xf1, 0x1a, 0x81, 0x63, 0x56, 0x9e, 0x98, 0x85, 0x3d, 0xbc, 0x58, 0x88, 0x13, - 0xf3, 0x5d, 0x01, 0xc1, 0x0a, 0x63, 0xff, 0xc1, 0x82, 0x69, 0x51, 0x25, 0xdf, 0x87, 0x12, 0xdf, - 0x3f, 0xd7, 0x89, 0x1c, 0x61, 0x57, 0xe6, 0xfe, 0x8c, 0x73, 0x6f, 0x91, 0xc8, 0x49, 0xee, 0x97, - 0x86, 0xe0, 0x58, 0x22, 0xc2, 0x50, 0xf0, 0x22, 0xd2, 0xd1, 0x07, 0xf9, 0xec, 0x58, 0xd1, 0x6a, - 0x3a, 0xd0, 0xc0, 0xce, 0x83, 0xf5, 0x87, 0x11, 0x09, 0xf8, 0x61, 0x24, 0xc1, 0x60, 0x93, 0xcb, - 0xc0, 0x52, 0x94, 0xfd, 0x3b, 0x0b, 0x62, 0x55, 0xfc, 0xba, 0x33, 0xe2, 0xef, 0xdf, 0xf2, 0x82, - 0x43, 0xb5, 0xad, 0xb1, 0x39, 0xbb, 0x0a, 0x8e, 0x63, 0x8a, 0xd3, 0x12, 0x62, 0x6e, 0xb2, 0x84, - 0xc8, 0x15, 0xb6, 0xc2, 0x20, 0xf2, 0x82, 0xde, 0x48, 0x7c, 0x59, 0x55, 0x70, 0x1c, 0x53, 0xd8, - 0x7f, 0xce, 0x43, 0x85, 0xdb, 0xaa, 0x33, 0xf2, 0x4b, 0x50, 0xf5, 0xcd, 0xd3, 0x53, 0x36, 0x5f, - 0x52, 0x22, 0xd2, 0xf7, 0x11, 0xa7, 0x69, 0x39, 0xb3, 0x28, 0x73, 0x63, 0xe6, 0x5c, 0x9a, 0x79, - 0xc3, 0x44, 0xe2, 0x34, 0x2d, 0x8f, 0xb3, 0x0f, 0xb8, 0x5f, 0xab, 0x02, 0x32, 0xde, 0xda, 0x6f, - 0x73, 0x20, 0x96, 0xb8, 0xd3, 0xf6, 0x67, 0x7a, 0xc2, 0xfd, 0xb9, 0x01, 0xe7, 0xf8, 0x41, 0x86, - 0xbd, 0x48, 0x57, 0xd9, 0x05, 0x51, 0xeb, 0xa1, 0xe3, 0x41, 0xfd, 0xdc, 0xed, 0x14, 0x06, 0x0f, - 0x51, 0x72, 0x1b, 0x7d, 0xaf, 0xe3, 0x45, 0xb5, 0x19, 0xc1, 0x12, 0xdb, 0x78, 0x8b, 0x03, 0xb1, - 0xc4, 0xa5, 0x0e, 0xa0, 0x74, 0xd6, 0x01, 0xa0, 0x2d, 0xb8, 0xe0, 0xf8, 0x7e, 0xf8, 0x40, 0x2c, - 0xb3, 0x19, 0x86, 0x87, 0x1d, 0x87, 0x1e, 0x32, 0xd1, 0x9b, 0x96, 0x9a, 0x5f, 0x50, 0x8c, 0x17, - 0x56, 0x46, 0x49, 0xf0, 0x69, 0x7c, 0xf6, 0xbf, 0x72, 0x80, 0x64, 0x97, 0xe1, 0xca, 0xe2, 0x4b, - 0x06, 0x88, 0x67, 0x60, 0xa6, 0xa3, 0xba, 0x14, 0x2b, 0x9d, 0x9f, 0x74, 0x83, 0xa2, 0xf1, 0x68, - 0x0b, 0xca, 0xf2, 0xa2, 0x26, 0xce, 0xb7, 0xac, 0x88, 0xcb, 0xdb, 0x1a, 0x71, 0x32, 0xa8, 0x2f, - 0xa4, 0xd4, 0xc4, 0x98, 0xdb, 0xfd, 0x2e, 0xc1, 0x89, 0x04, 0x74, 0x0d, 0xc0, 0xe9, 0x7a, 0xe6, - 0x48, 0xaa, 0x9c, 0x8c, 0x34, 0x92, 0xe6, 0x12, 0x1b, 0x54, 0xe8, 0x55, 0x98, 0xe6, 0x1b, 0xaf, - 0xe6, 0x15, 0x5f, 0xce, 0x76, 0xdd, 0xf9, 0xd1, 0x35, 0x4b, 0x3c, 0x07, 0xf2, 0x27, 0x2c, 0x24, - 0xa0, 0x7b, 0x50, 0x14, 0x5e, 0x26, 0x0f, 0x79, 0xc2, 0xba, 0x55, 0x34, 0x31, 0xaa, 0xe8, 0x3e, - 0x89, 0x9f, 0xb0, 0x92, 0x68, 0xbf, 0x09, 0xe5, 0x2d, 0xaf, 0x45, 0x43, 0xae, 0x8e, 0x6f, 0x30, - 0x4b, 0x35, 0x6d, 0xf1, 0x06, 0x6b, 0x5f, 0xd2, 0x78, 0xee, 0x44, 0x81, 0x13, 0x84, 0xb2, 0x35, - 0x2b, 0x24, 0x4e, 0xf4, 0x3a, 0x07, 0x62, 0x89, 0xbb, 0x71, 0x91, 0xe7, 0xfd, 0x9f, 0xbd, 0x57, - 0x9f, 0x7a, 0xe7, 0xbd, 0xfa, 0xd4, 0xbb, 0xef, 0xa9, 0x1a, 0xe0, 0x1f, 0x15, 0x80, 0xed, 0xbd, - 0xef, 0x93, 0x96, 0x8c, 0x2d, 0x67, 0x0f, 0x94, 0x78, 0x2d, 0xa7, 0xe6, 0x98, 0x62, 0xf8, 0x92, - 0x1b, 0xaa, 0xe5, 0x0c, 0x1c, 0x4e, 0x51, 0xa2, 0x65, 0x28, 0xc7, 0x43, 0x26, 0x75, 0x6c, 0xf3, - 0xda, 0x0d, 0xe2, 0x49, 0x14, 0x4e, 0x68, 0x52, 0x81, 0x6e, 0xfa, 0xcc, 0x40, 0xd7, 0x84, 0x7c, - 0xcf, 0x73, 0xc5, 0xa9, 0x94, 0x9b, 0xcf, 0xe9, 0x44, 0x73, 0x67, 0x73, 0xed, 0x64, 0x50, 0x7f, - 0x72, 0xdc, 0x84, 0x36, 0xea, 0x77, 0x09, 0x6b, 0xdc, 0xd9, 0x5c, 0xc3, 0x9c, 0xf9, 0xb4, 0x60, - 0x50, 0x9c, 0x30, 0x18, 0x5c, 0x03, 0x50, 0xab, 0xe6, 0xdc, 0xf2, 0x56, 0xc7, 0xde, 0x79, 0x33, - 0xc6, 0x60, 0x83, 0x0a, 0x31, 0x98, 0x6f, 0x51, 0x22, 0x9d, 0xdd, 0xeb, 0x10, 0x16, 0x39, 0x1d, - 0x39, 0x72, 0x9a, 0xcc, 0x55, 0x9f, 0x50, 0x6a, 0xe6, 0x57, 0x87, 0x85, 0xe1, 0x51, 0xf9, 0x28, - 0x84, 0x79, 0x57, 0x75, 0xbd, 0x89, 0xd2, 0xf2, 0xc4, 0x4a, 0x2f, 0x71, 0x85, 0x6b, 0xc3, 0x82, - 0xf0, 0xa8, 0x6c, 0xf4, 0x3d, 0x58, 0xd0, 0xc0, 0xd1, 0xd1, 0x83, 0x18, 0x82, 0xe5, 0x9b, 0x8b, - 0xc7, 0x83, 0xfa, 0xc2, 0xda, 0x58, 0x2a, 0xfc, 0x08, 0x09, 0xc8, 0x85, 0xa2, 0x2f, 0xab, 0xb8, - 0x8a, 0xc8, 0xbc, 0x5f, 0xcf, 0xb6, 0x8a, 0xc4, 0xfb, 0x1b, 0x66, 0xf5, 0x16, 0xb7, 0xd6, 0xaa, - 0x70, 0x53, 0xb2, 0xd1, 0x43, 0xa8, 0x38, 0x41, 0x10, 0x46, 0x8e, 0x1c, 0x86, 0xcc, 0x0a, 0x55, - 0x2b, 0x13, 0xab, 0x5a, 0x49, 0x64, 0x0c, 0x55, 0x8b, 0x06, 0x06, 0x9b, 0xaa, 0xd0, 0x03, 0x38, - 0x1f, 0x3e, 0x08, 0x08, 0xc5, 0x64, 0x9f, 0x50, 0x12, 0xb4, 0x08, 0xab, 0x55, 0x85, 0xf6, 0xaf, - 0x66, 0xd4, 0x9e, 0x62, 0x4e, 0x5c, 0x3a, 0x0d, 0x67, 0x78, 0x58, 0x0b, 0x6a, 0x00, 0xec, 0x7b, - 0x81, 0xaa, 0xf9, 0x6b, 0xe7, 0x92, 0xa9, 0xe9, 0x46, 0x0c, 0xc5, 0x06, 0x05, 0x7a, 0x01, 0x2a, - 0x2d, 0xbf, 0xc7, 0x22, 0x22, 0xc7, 0xb3, 0xe7, 0xc5, 0x0d, 0x8a, 0xd7, 0xb7, 0x9a, 0xa0, 0xb0, - 0x49, 0x87, 0x0e, 0x60, 0xd6, 0x33, 0x9a, 0x8b, 0xda, 0x9c, 0xf0, 0xc5, 0x6b, 0x13, 0x77, 0x14, - 0xac, 0x39, 0xc7, 0x23, 0x91, 0x09, 0xc1, 0x29, 0xc9, 0xa8, 0x07, 0xd5, 0x8e, 0x99, 0x6a, 0x6a, - 0xf3, 0x62, 0x1f, 0xaf, 0x67, 0x53, 0x35, 0x9a, 0x0c, 0x93, 0x7a, 0x24, 0x85, 0xc3, 0x69, 0x2d, - 0x0b, 0x5f, 0x83, 0xca, 0x7f, 0x59, 0x62, 0xf3, 0x12, 0x7d, 0xd8, 0x63, 0x26, 0x2a, 0xd1, 0xdf, - 0xcf, 0xc1, 0xb9, 0xf4, 0x39, 0xc7, 0xad, 0xac, 0x35, 0x76, 0xca, 0xaf, 0x93, 0x41, 0x7e, 0x6c, - 0x32, 0x50, 0x31, 0x77, 0xfa, 0x71, 0x62, 0x6e, 0x3a, 0x9d, 0x17, 0x32, 0xa5, 0xf3, 0x06, 0x00, - 0x2f, 0x77, 0x68, 0xe8, 0xfb, 0x84, 0x8a, 0x10, 0x5d, 0x52, 0x73, 0xfc, 0x18, 0x8a, 0x0d, 0x0a, - 0xb4, 0x01, 0x68, 0xcf, 0x0f, 0x5b, 0x87, 0x62, 0x0b, 0x74, 0x78, 0x11, 0xc1, 0xb9, 0x24, 0x67, - 0xa1, 0xcd, 0x11, 0x2c, 0x3e, 0x85, 0xc3, 0xee, 0xc3, 0xa5, 0x1d, 0x87, 0x72, 0x47, 0x4a, 0xae, - 0xb2, 0x28, 0xfa, 0xdf, 0x18, 0x69, 0x29, 0x9e, 0x9b, 0x34, 0x24, 0x24, 0x8b, 0x4e, 0x60, 0x49, - 0x5b, 0x61, 0xff, 0xd5, 0x82, 0x27, 0x4e, 0xd5, 0xfd, 0x19, 0xb4, 0x34, 0xf7, 0xd3, 0x2d, 0xcd, - 0x4b, 0x19, 0x47, 0xbf, 0xa7, 0x59, 0x2b, 0x3f, 0xff, 0xa4, 0x9a, 0x9b, 0x19, 0x28, 0xec, 0xf0, - 0x92, 0xd3, 0xfe, 0xa5, 0x05, 0xb3, 0xe2, 0x69, 0x92, 0x91, 0x79, 0x1d, 0x0a, 0xfb, 0xa1, 0x1e, - 0x8b, 0x95, 0xa4, 0xf8, 0x0d, 0x0e, 0xc0, 0x12, 0xfe, 0x18, 0x33, 0xf5, 0xb7, 0x2d, 0x48, 0x0f, - 0xab, 0xd1, 0x2b, 0xd2, 0xdf, 0xad, 0x78, 0x9a, 0x3c, 0xa1, 0xaf, 0xbf, 0x3c, 0xae, 0x19, 0xbb, - 0x90, 0x69, 0x32, 0x79, 0x05, 0xca, 0x38, 0x0c, 0xa3, 0x1d, 0x27, 0x3a, 0x60, 0x7c, 0xe1, 0x5d, - 0xfe, 0xa0, 0xf6, 0x46, 0x2c, 0x5c, 0x60, 0xb0, 0x84, 0xdb, 0xbf, 0xb0, 0xe0, 0x89, 0xb1, 0x9f, - 0x31, 0xf8, 0xb5, 0x6b, 0xc5, 0x6f, 0x6a, 0x45, 0xb1, 0x07, 0x26, 0x74, 0xd8, 0xa0, 0xe2, 0xdd, - 0x58, 0xea, 0xdb, 0xc7, 0x70, 0x37, 0x96, 0xd2, 0x86, 0xd3, 0xb4, 0xf6, 0xbf, 0x73, 0x50, 0x94, - 0xa3, 0x99, 0xff, 0xb1, 0xb7, 0x3e, 0x0d, 0x45, 0x26, 0xf4, 0x28, 0xf3, 0xe2, 0x4c, 0x2e, 0xb5, - 0x63, 0x85, 0x15, 0x1d, 0x0c, 0x61, 0xcc, 0x69, 0xeb, 0x08, 0x97, 0x74, 0x30, 0x12, 0x8c, 0x35, - 0x1e, 0xbd, 0x08, 0x45, 0x4a, 0x1c, 0x16, 0xf7, 0x86, 0x8b, 0x5a, 0x24, 0x16, 0xd0, 0x93, 0x41, - 0x7d, 0x56, 0x09, 0x17, 0xef, 0x58, 0x51, 0xa3, 0x7b, 0x30, 0xe3, 0x92, 0xc8, 0xf1, 0x7c, 0xdd, - 0x2d, 0x3c, 0x3f, 0xc9, 0x08, 0x6b, 0x4d, 0xb2, 0x36, 0x2b, 0xdc, 0x26, 0xf5, 0x82, 0xb5, 0x40, - 0x1e, 0x9d, 0x5b, 0xa1, 0x2b, 0xbf, 0x7e, 0x16, 0x92, 0xe8, 0xbc, 0x1a, 0xba, 0x04, 0x0b, 0x8c, - 0xfd, 0x8e, 0x05, 0x15, 0x29, 0x69, 0xd5, 0xe9, 0x31, 0x82, 0xae, 0xc6, 0xab, 0x90, 0xc7, 0xad, - 0xeb, 0xc5, 0x69, 0xde, 0x61, 0x9d, 0x0c, 0xea, 0x65, 0x41, 0x26, 0xda, 0x2d, 0xbd, 0x00, 0x63, - 0x8f, 0x72, 0x67, 0xec, 0xd1, 0x53, 0x50, 0x10, 0xb7, 0x47, 0x6d, 0x66, 0xdc, 0x84, 0x88, 0x0b, - 0x86, 0x25, 0xce, 0xfe, 0x38, 0x07, 0xd5, 0xd4, 0xe2, 0x32, 0x74, 0x1c, 0xf1, 0xb8, 0x34, 0x97, - 0x61, 0x04, 0x3f, 0xfe, 0x9b, 0xf5, 0x77, 0xa0, 0xd8, 0xe2, 0xeb, 0xd3, 0x7f, 0x1a, 0xb8, 0x3a, - 0xc9, 0x51, 0x88, 0x9d, 0x49, 0x3c, 0x49, 0xbc, 0x32, 0xac, 0x04, 0xa2, 0x9b, 0x30, 0x4f, 0x49, - 0x44, 0xfb, 0x2b, 0xfb, 0x11, 0xa1, 0xe6, 0x0c, 0xa0, 0x90, 0xd4, 0xe4, 0x78, 0x98, 0x00, 0x8f, - 0xf2, 0xe8, 0x7c, 0x5a, 0x7c, 0x8c, 0x7c, 0x6a, 0xef, 0xc1, 0xec, 0x6d, 0x67, 0xcf, 0x8f, 0xbf, - 0x03, 0x62, 0xa8, 0x7a, 0x41, 0xcb, 0xef, 0xb9, 0x44, 0x46, 0x62, 0x1d, 0xbd, 0xf4, 0xa5, 0xdd, - 0x34, 0x91, 0x27, 0x83, 0xfa, 0x85, 0x14, 0x40, 0x7e, 0xf8, 0xc2, 0x69, 0x11, 0xb6, 0x0f, 0xd3, - 0x9f, 0x61, 0x8f, 0xfa, 0x5d, 0x28, 0x27, 0x5d, 0xc4, 0xa7, 0xac, 0xd2, 0x7e, 0x03, 0x4a, 0xdc, - 0xe3, 0x75, 0xf7, 0x7b, 0x46, 0x49, 0x94, 0x2e, 0x56, 0x72, 0x59, 0x8a, 0x15, 0xbb, 0x03, 0xd5, - 0x3b, 0x5d, 0xf7, 0x31, 0xbf, 0x04, 0xe7, 0x32, 0x67, 0xad, 0x6b, 0x20, 0xff, 0x5d, 0xc1, 0x13, - 0x84, 0xcc, 0xda, 0x46, 0x82, 0x30, 0x13, 0xaf, 0xf1, 0x25, 0xe0, 0x27, 0x16, 0x80, 0x18, 0xfb, - 0xac, 0x1f, 0x91, 0x20, 0xe2, 0xfb, 0xc0, 0x9d, 0x6a, 0x78, 0x1f, 0x44, 0x64, 0x10, 0x18, 0x74, - 0x07, 0x8a, 0xa1, 0xf4, 0x26, 0x39, 0x9a, 0x9f, 0x70, 0xca, 0x19, 0x5f, 0x24, 0xe9, 0x4f, 0x58, - 0x09, 0x6b, 0x5e, 0xfe, 0xe0, 0x93, 0xc5, 0xa9, 0x0f, 0x3f, 0x59, 0x9c, 0xfa, 0xe8, 0x93, 0xc5, - 0xa9, 0xb7, 0x8e, 0x17, 0xad, 0x0f, 0x8e, 0x17, 0xad, 0x0f, 0x8f, 0x17, 0xad, 0x8f, 0x8e, 0x17, - 0xad, 0x8f, 0x8f, 0x17, 0xad, 0x77, 0xfe, 0xbe, 0x38, 0x75, 0x2f, 0x77, 0x74, 0xf5, 0x3f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xbe, 0xb0, 0xbe, 0x20, 0x49, 0x26, 0x00, 0x00, + 0xb5, 0x85, 0xad, 0xd3, 0xdd, 0xd2, 0x6a, 0xd9, 0xd2, 0x42, 0x9c, 0x1f, 0xdb, 0xd0, 0x4d, 0x13, + 0xbd, 0xec, 0x2e, 0x62, 0x59, 0xa1, 0x4e, 0x3c, 0x2f, 0xce, 0x90, 0xf1, 0x8c, 0xfb, 0xde, 0x38, + 0xbb, 0x86, 0x03, 0x3d, 0x80, 0x00, 0x09, 0xaa, 0x1e, 0x39, 0xa1, 0x56, 0xf0, 0x17, 0x70, 0xe2, + 0xc4, 0xa9, 0x12, 0xbd, 0x20, 0x55, 0xe2, 0x40, 0x0f, 0xc8, 0x6a, 0x03, 0x12, 0xdc, 0x38, 0x71, + 0xc9, 0x09, 0xbd, 0x5f, 0x33, 0x6f, 0xec, 0x78, 0x33, 0x66, 0x4b, 0xc5, 0xc9, 0x33, 0xdf, 0xcf, + 0xf7, 0xbe, 0xf7, 0xbd, 0xef, 0xd7, 0x18, 0xb6, 0x0e, 0xaf, 0xb3, 0x86, 0x17, 0x2e, 0x1f, 0xf6, + 0xf6, 0x08, 0x0d, 0x48, 0x44, 0xd8, 0xf2, 0x11, 0x09, 0xdc, 0x90, 0x2e, 0x2b, 0x84, 0xd3, 0xf5, + 0x3a, 0x4e, 0xeb, 0xc0, 0x0b, 0x08, 0xed, 0x2f, 0x77, 0x0f, 0xdb, 0x1c, 0xc0, 0x96, 0x3b, 0x24, + 0x72, 0x96, 0x8f, 0xae, 0x2e, 0xb7, 0x49, 0x40, 0xa8, 0x13, 0x11, 0xb7, 0xd1, 0xa5, 0x61, 0x14, + 0xa2, 0x2f, 0x49, 0xae, 0x86, 0xc9, 0xd5, 0xe8, 0x1e, 0xb6, 0x39, 0x80, 0x35, 0x38, 0x57, 0xe3, + 0xe8, 0xea, 0xc2, 0xb3, 0x6d, 0x2f, 0x3a, 0xe8, 0xed, 0x35, 0x5a, 0x61, 0x67, 0xb9, 0x1d, 0xb6, + 0xc3, 0x65, 0xc1, 0xbc, 0xd7, 0xdb, 0x17, 0x6f, 0xe2, 0x45, 0x3c, 0x49, 0xa1, 0x0b, 0x63, 0x97, + 0x42, 0x7b, 0x41, 0xe4, 0x75, 0xc8, 0xf0, 0x2a, 0x16, 0x5e, 0x3c, 0x8b, 0x81, 0xb5, 0x0e, 0x48, + 0xc7, 0x19, 0xe6, 0xb3, 0xff, 0x98, 0x87, 0xd2, 0xca, 0xce, 0xe6, 0x4d, 0x1a, 0xf6, 0xba, 0x68, + 0x09, 0xa6, 0x03, 0xa7, 0x43, 0x6a, 0xd6, 0x92, 0x75, 0xb9, 0xdc, 0x9c, 0xfd, 0x60, 0x50, 0x9f, + 0x3a, 0x1e, 0xd4, 0xa7, 0x5f, 0x77, 0x3a, 0x04, 0x0b, 0x0c, 0xf2, 0xa1, 0x74, 0x44, 0x28, 0xf3, + 0xc2, 0x80, 0xd5, 0x72, 0x4b, 0xf9, 0xcb, 0x95, 0x6b, 0xaf, 0x34, 0xb2, 0xec, 0xbf, 0x21, 0x14, + 0xdc, 0x95, 0xac, 0x1b, 0x21, 0x5d, 0xf3, 0x58, 0x2b, 0x3c, 0x22, 0xb4, 0xdf, 0x9c, 0x53, 0x5a, + 0x4a, 0x0a, 0xc9, 0x70, 0xac, 0x01, 0xfd, 0xd8, 0x82, 0xb9, 0x2e, 0x25, 0xfb, 0x84, 0x52, 0xe2, + 0x2a, 0x7c, 0x2d, 0xbf, 0x64, 0x7d, 0x0a, 0x6a, 0x6b, 0x4a, 0xed, 0xdc, 0xce, 0x90, 0x7c, 0x3c, + 0xa2, 0x11, 0xfd, 0xc6, 0x82, 0x05, 0x46, 0xe8, 0x11, 0xa1, 0x2b, 0xae, 0x4b, 0x09, 0x63, 0xcd, + 0xfe, 0xaa, 0xef, 0x91, 0x20, 0x5a, 0xdd, 0x5c, 0xc3, 0xac, 0x36, 0x2d, 0xec, 0xf0, 0x8d, 0x6c, + 0x0b, 0xda, 0x1d, 0x27, 0xa7, 0x69, 0xab, 0x15, 0x2d, 0x8c, 0x25, 0x61, 0xf8, 0x11, 0xcb, 0xb0, + 0xf7, 0x61, 0x56, 0x1f, 0xe4, 0x2d, 0x8f, 0x45, 0xe8, 0x2e, 0x14, 0xdb, 0xfc, 0x85, 0xd5, 0x2c, + 0xb1, 0xc0, 0x46, 0xb6, 0x05, 0x6a, 0x19, 0xcd, 0x73, 0x6a, 0x3d, 0x45, 0xf1, 0xca, 0xb0, 0x92, + 0x66, 0xff, 0x7c, 0x1a, 0x2a, 0x2b, 0x3b, 0x9b, 0x98, 0xb0, 0xb0, 0x47, 0x5b, 0x24, 0x83, 0xd3, + 0x5c, 0x03, 0xe0, 0xbf, 0xac, 0xeb, 0xb4, 0x88, 0x5b, 0xcb, 0x2d, 0x59, 0x97, 0x4b, 0x4d, 0xa4, + 0xe8, 0xe0, 0xf5, 0x18, 0x83, 0x0d, 0x2a, 0x2e, 0xf5, 0xd0, 0x0b, 0x5c, 0x71, 0xda, 0x86, 0xd4, + 0xd7, 0xbc, 0xc0, 0xc5, 0x02, 0x83, 0x6e, 0x41, 0xe1, 0x88, 0xd0, 0x3d, 0x6e, 0x7f, 0xee, 0x10, + 0x5f, 0xc9, 0xb6, 0xbd, 0xbb, 0x9c, 0xa5, 0x59, 0x3e, 0x1e, 0xd4, 0x0b, 0xe2, 0x11, 0x4b, 0x21, + 0xa8, 0x01, 0xc0, 0x0e, 0x42, 0x1a, 0x89, 0xe5, 0xd4, 0x0a, 0x4b, 0xf9, 0xcb, 0xe5, 0xe6, 0x39, + 0xbe, 0xbe, 0xdd, 0x18, 0x8a, 0x0d, 0x0a, 0x74, 0x1d, 0x66, 0x99, 0x17, 0xb4, 0x7b, 0xbe, 0x43, + 0x39, 0xa0, 0x56, 0x14, 0xeb, 0xbc, 0xa8, 0xd6, 0x39, 0xbb, 0x6b, 0xe0, 0x70, 0x8a, 0x92, 0x6b, + 0x6a, 0x39, 0x11, 0x69, 0x87, 0xd4, 0x23, 0xac, 0x36, 0x93, 0x68, 0x5a, 0x8d, 0xa1, 0xd8, 0xa0, + 0x40, 0x4f, 0x41, 0x41, 0x58, 0xbe, 0x56, 0x12, 0x2a, 0xaa, 0x4a, 0x45, 0x41, 0x1c, 0x0b, 0x96, + 0x38, 0xf4, 0x0c, 0xcc, 0xa8, 0x5b, 0x53, 0x2b, 0x0b, 0xb2, 0xf3, 0x8a, 0x6c, 0x46, 0xbb, 0xb5, + 0xc6, 0xa3, 0x6f, 0x01, 0x62, 0x51, 0x48, 0x9d, 0x36, 0x51, 0xa8, 0x57, 0x1d, 0x76, 0x50, 0x03, + 0xc1, 0xb5, 0xa0, 0xb8, 0xd0, 0xee, 0x08, 0x05, 0x3e, 0x85, 0xcb, 0xfe, 0x9d, 0x05, 0xe7, 0x0d, + 0x5f, 0x10, 0x7e, 0x77, 0x1d, 0x66, 0xdb, 0xc6, 0xad, 0x53, 0x7e, 0x11, 0x5b, 0xc6, 0xbc, 0x91, + 0x38, 0x45, 0x89, 0x08, 0x94, 0xa9, 0x92, 0xa4, 0xa3, 0xcb, 0xd5, 0xcc, 0x4e, 0xab, 0xd7, 0x90, + 0x68, 0x32, 0x80, 0x0c, 0x27, 0x92, 0xed, 0x7f, 0x58, 0xc2, 0x81, 0x75, 0xbc, 0x41, 0x97, 0x8d, + 0x98, 0x66, 0x89, 0xe3, 0x98, 0x1d, 0x13, 0x8f, 0xce, 0x08, 0x04, 0xb9, 0xff, 0x8b, 0x40, 0x70, + 0xa3, 0xf4, 0xab, 0x77, 0xeb, 0x53, 0x6f, 0xfd, 0x75, 0x69, 0xca, 0xee, 0x40, 0x75, 0x95, 0x12, + 0x27, 0x22, 0xdb, 0xdd, 0x48, 0x6c, 0xc0, 0x86, 0xa2, 0x4b, 0xfb, 0xb8, 0x17, 0xa8, 0x8d, 0x02, + 0xbf, 0xdf, 0x6b, 0x02, 0x82, 0x15, 0x86, 0x9f, 0xdf, 0xbe, 0x47, 0x7c, 0x77, 0xcb, 0x09, 0x9c, + 0x36, 0xa1, 0xea, 0x06, 0xc6, 0x56, 0xdd, 0x30, 0x70, 0x38, 0x45, 0x69, 0xff, 0x34, 0x0f, 0xd5, + 0x35, 0xe2, 0x93, 0x44, 0xdf, 0x06, 0xa0, 0x36, 0x75, 0x5a, 0x64, 0x87, 0x50, 0x2f, 0x74, 0x77, + 0x49, 0x2b, 0x0c, 0x5c, 0x26, 0x3c, 0x22, 0xdf, 0xfc, 0x1c, 0xf7, 0xb3, 0x9b, 0x23, 0x58, 0x7c, + 0x0a, 0x07, 0xf2, 0xa1, 0xda, 0xa5, 0xe2, 0xd9, 0x8b, 0x54, 0xee, 0xe1, 0x77, 0xfe, 0xf9, 0x6c, + 0xa6, 0xde, 0x31, 0x59, 0x9b, 0xf3, 0xc7, 0x83, 0x7a, 0x35, 0x05, 0xc2, 0x69, 0xe1, 0xe8, 0x9b, + 0x30, 0x17, 0xd2, 0xee, 0x81, 0x13, 0xac, 0x91, 0x2e, 0x09, 0x5c, 0x12, 0x44, 0x4c, 0x58, 0xa1, + 0xd4, 0xbc, 0xc8, 0x33, 0xc6, 0xf6, 0x10, 0x0e, 0x8f, 0x50, 0xa3, 0x7b, 0x30, 0xdf, 0xa5, 0x61, + 0xd7, 0x69, 0x3b, 0x5c, 0xe2, 0x4e, 0xe8, 0x7b, 0xad, 0xbe, 0x88, 0x53, 0xe5, 0xe6, 0x95, 0xe3, + 0x41, 0x7d, 0x7e, 0x67, 0x18, 0x79, 0x32, 0xa8, 0x5f, 0x10, 0xa6, 0xe3, 0x90, 0x04, 0x89, 0x47, + 0xc5, 0x18, 0x67, 0x58, 0x18, 0x77, 0x86, 0xf6, 0x26, 0x94, 0xd6, 0x7a, 0x54, 0x70, 0xa1, 0x97, + 0xa1, 0xe4, 0xaa, 0x67, 0x65, 0xf9, 0x27, 0x75, 0xca, 0xd5, 0x34, 0x27, 0x83, 0x7a, 0x95, 0x17, + 0x09, 0x0d, 0x0d, 0xc0, 0x31, 0x8b, 0x7d, 0x1f, 0xaa, 0xeb, 0x0f, 0xbb, 0x21, 0x8d, 0xf4, 0x99, + 0x3e, 0x0d, 0x45, 0x22, 0x00, 0x42, 0x5a, 0x29, 0xc9, 0x13, 0x92, 0x0c, 0x2b, 0x2c, 0x8f, 0x5b, + 0xe4, 0xa1, 0xd3, 0x8a, 0x54, 0xc0, 0x8f, 0xe3, 0xd6, 0x3a, 0x07, 0x62, 0x89, 0xb3, 0xdf, 0xb7, + 0xa0, 0x28, 0x3c, 0x8a, 0xa1, 0xdb, 0x90, 0xef, 0x38, 0x5d, 0x95, 0xac, 0x5e, 0xc8, 0x76, 0xb2, + 0x92, 0xb5, 0xb1, 0xe5, 0x74, 0xd7, 0x83, 0x88, 0xf6, 0x9b, 0x15, 0xa5, 0x24, 0xbf, 0xe5, 0x74, + 0x31, 0x17, 0xb7, 0xe0, 0x42, 0x49, 0x63, 0xd1, 0x1c, 0xe4, 0x0f, 0x49, 0x5f, 0x06, 0x24, 0xcc, + 0x1f, 0x51, 0x13, 0x0a, 0x47, 0x8e, 0xdf, 0x23, 0xca, 0x9f, 0xae, 0x4c, 0xa2, 0x15, 0x4b, 0xd6, + 0x1b, 0xb9, 0xeb, 0x96, 0xbd, 0x0d, 0x70, 0x93, 0xc4, 0x16, 0x5a, 0x81, 0xf3, 0x3a, 0xda, 0xa4, + 0x83, 0xe0, 0xe7, 0xd5, 0xf2, 0xce, 0xe3, 0x34, 0x1a, 0x0f, 0xd3, 0xdb, 0xf7, 0xa1, 0x2c, 0x02, + 0x25, 0xcf, 0x77, 0x49, 0x06, 0xb0, 0x1e, 0x91, 0x01, 0x74, 0xc2, 0xcc, 0x8d, 0x4b, 0x98, 0x46, + 0x5c, 0xf0, 0xa1, 0x2a, 0x79, 0x75, 0x0e, 0xcf, 0xa4, 0xe1, 0x0a, 0x94, 0xf4, 0x32, 0x95, 0x96, + 0xb8, 0x76, 0xd3, 0x82, 0x70, 0x4c, 0x61, 0x68, 0x3b, 0x80, 0x54, 0xd0, 0xcf, 0xa6, 0xcc, 0x48, + 0x68, 0xb9, 0x47, 0x27, 0x34, 0x43, 0xd3, 0x8f, 0xa0, 0x36, 0xae, 0xe0, 0x7b, 0x8c, 0xb4, 0x94, + 0x7d, 0x29, 0xf6, 0xdb, 0x16, 0xcc, 0x99, 0x92, 0xb2, 0x1f, 0x5f, 0x76, 0x25, 0x67, 0x97, 0x46, + 0x86, 0x45, 0x7e, 0x6d, 0xc1, 0xc5, 0xd4, 0xd6, 0x26, 0x3a, 0xf1, 0x09, 0x16, 0x65, 0x3a, 0x47, + 0x7e, 0x02, 0xe7, 0x58, 0x86, 0xca, 0x66, 0xe0, 0x45, 0x9e, 0xe3, 0x7b, 0x3f, 0x20, 0xf4, 0xec, + 0x62, 0xd2, 0xfe, 0x83, 0x05, 0xb3, 0x06, 0x07, 0x43, 0xf7, 0x61, 0x86, 0xc7, 0x5d, 0x2f, 0x68, + 0xab, 0xd8, 0x91, 0xb1, 0x66, 0x30, 0x84, 0x24, 0xfb, 0xda, 0x91, 0x92, 0xb0, 0x16, 0x89, 0x76, + 0xa0, 0x48, 0x09, 0xeb, 0xf9, 0xd1, 0x64, 0x21, 0x62, 0x37, 0x72, 0xa2, 0x1e, 0x93, 0xb1, 0x19, + 0x0b, 0x7e, 0xac, 0xe4, 0xd8, 0x7f, 0xce, 0x41, 0xf5, 0x96, 0xb3, 0x47, 0xfc, 0x5d, 0xe2, 0x93, + 0x56, 0x14, 0x52, 0xf4, 0x43, 0xa8, 0x74, 0x9c, 0xa8, 0x75, 0x20, 0xa0, 0xba, 0x5c, 0x5f, 0xcb, + 0xa6, 0x28, 0x25, 0xa9, 0xb1, 0x95, 0x88, 0x91, 0x01, 0xf1, 0x82, 0xda, 0x58, 0xc5, 0xc0, 0x60, + 0x53, 0x9b, 0xe8, 0xb1, 0xc4, 0xfb, 0xfa, 0xc3, 0x2e, 0xaf, 0x25, 0x26, 0x6f, 0xed, 0x52, 0x4b, + 0xc0, 0xe4, 0xcd, 0x9e, 0x47, 0x49, 0x87, 0x04, 0x51, 0xd2, 0x63, 0x6d, 0x0d, 0xc9, 0xc7, 0x23, + 0x1a, 0x17, 0x5e, 0x81, 0xb9, 0xe1, 0xc5, 0x9f, 0x12, 0xaf, 0x2f, 0x9a, 0xf1, 0xba, 0x6c, 0x46, + 0xe0, 0xdf, 0x5a, 0x50, 0x1b, 0xb7, 0x10, 0xf4, 0x45, 0x43, 0x50, 0x92, 0x23, 0x5e, 0x23, 0x7d, + 0x29, 0x75, 0x1d, 0x4a, 0x61, 0x97, 0x77, 0xc5, 0x21, 0x55, 0x7e, 0xfe, 0x8c, 0xf6, 0xdd, 0x6d, + 0x05, 0x3f, 0x19, 0xd4, 0x2f, 0xa5, 0xc4, 0x6b, 0x04, 0x8e, 0x59, 0x79, 0x62, 0x16, 0xeb, 0xe1, + 0xc5, 0x42, 0x9c, 0x98, 0xef, 0x0a, 0x08, 0x56, 0x18, 0xfb, 0xf7, 0x16, 0x4c, 0x8b, 0x2a, 0xf9, + 0x3e, 0x94, 0xb8, 0xfd, 0x5c, 0x27, 0x72, 0xc4, 0xba, 0x32, 0xf7, 0x67, 0x9c, 0x7b, 0x8b, 0x44, + 0x4e, 0x72, 0xbf, 0x34, 0x04, 0xc7, 0x12, 0x11, 0x86, 0x82, 0x17, 0x91, 0x8e, 0x3e, 0xc8, 0x67, + 0xc7, 0x8a, 0x56, 0xd3, 0x81, 0x06, 0x76, 0x1e, 0xac, 0x3f, 0x8c, 0x48, 0xc0, 0x0f, 0x23, 0x09, + 0x06, 0x9b, 0x5c, 0x06, 0x96, 0xa2, 0xec, 0x7f, 0x5b, 0x10, 0xab, 0xe2, 0xd7, 0x9d, 0x11, 0x7f, + 0xff, 0x96, 0x17, 0x1c, 0x2a, 0xb3, 0xc6, 0xcb, 0xd9, 0x55, 0x70, 0x1c, 0x53, 0x9c, 0x96, 0x10, + 0x73, 0x93, 0x25, 0x44, 0xae, 0xb0, 0x15, 0x06, 0x91, 0x17, 0xf4, 0x46, 0xe2, 0xcb, 0xaa, 0x82, + 0xe3, 0x98, 0x82, 0xf7, 0x38, 0x94, 0x74, 0x1c, 0x2f, 0xf0, 0x82, 0x36, 0xdf, 0xc4, 0x6a, 0xd8, + 0x0b, 0x22, 0x51, 0x80, 0xe5, 0x93, 0x1e, 0x07, 0x8f, 0x50, 0xe0, 0x53, 0xb8, 0xec, 0x3f, 0xe5, + 0xa1, 0xc2, 0xf7, 0xad, 0xb3, 0xfb, 0x4b, 0x50, 0xf5, 0x4d, 0x4f, 0x50, 0xfb, 0xbf, 0xa4, 0xc4, + 0xa6, 0xef, 0x36, 0x4e, 0xd3, 0x72, 0x66, 0x51, 0x32, 0xc7, 0xcc, 0xb9, 0x34, 0xf3, 0x86, 0x89, + 0xc4, 0x69, 0x5a, 0x1e, 0xb3, 0x1f, 0xf0, 0x3b, 0xa2, 0x8a, 0xd1, 0xf8, 0x98, 0xbe, 0xcd, 0x81, + 0x58, 0xe2, 0x4e, 0xb3, 0xf5, 0xf4, 0x84, 0xb6, 0xbe, 0x01, 0xe7, 0xb8, 0x53, 0x84, 0xbd, 0x48, + 0x57, 0xec, 0x05, 0x61, 0x39, 0x74, 0x3c, 0xa8, 0x9f, 0xbb, 0x9d, 0xc2, 0xe0, 0x21, 0x4a, 0xbe, + 0x46, 0xdf, 0xeb, 0x78, 0x51, 0x6d, 0x46, 0xb0, 0xc4, 0x6b, 0xbc, 0xc5, 0x81, 0x58, 0xe2, 0x52, + 0x87, 0x59, 0x3a, 0xf3, 0x30, 0xb7, 0xe0, 0x82, 0xe3, 0xfb, 0xe1, 0x03, 0xb1, 0xcd, 0x66, 0x18, + 0x1e, 0x76, 0x1c, 0x7a, 0xc8, 0x44, 0x9f, 0x5b, 0x6a, 0x7e, 0x41, 0x31, 0x5e, 0x58, 0x19, 0x25, + 0xc1, 0xa7, 0xf1, 0xd9, 0xff, 0xcc, 0x01, 0x92, 0x1d, 0x8b, 0x2b, 0x0b, 0x39, 0x19, 0x6c, 0x9e, + 0x81, 0x99, 0x8e, 0xea, 0x78, 0xac, 0x74, 0xae, 0xd3, 0xcd, 0x8e, 0xc6, 0xa3, 0x2d, 0x28, 0xcb, + 0x4b, 0x9f, 0x38, 0xf2, 0xb2, 0x22, 0x2e, 0x6f, 0x6b, 0xc4, 0xc9, 0xa0, 0xbe, 0x90, 0x52, 0x13, + 0x63, 0x6e, 0xf7, 0xbb, 0x04, 0x27, 0x12, 0xd0, 0x35, 0x00, 0xa7, 0xeb, 0x99, 0xe3, 0xad, 0x72, + 0x32, 0x1e, 0x49, 0x1a, 0x55, 0x6c, 0x50, 0xa1, 0x57, 0x61, 0x9a, 0x1b, 0x5e, 0xcd, 0x3e, 0xbe, + 0x9c, 0x2d, 0x74, 0xf0, 0xa3, 0x6b, 0x96, 0x78, 0x3e, 0xe5, 0x4f, 0x58, 0x48, 0x40, 0xf7, 0xa0, + 0x28, 0xbc, 0x4c, 0x1e, 0xf2, 0x84, 0x35, 0xb0, 0x68, 0x88, 0x54, 0x01, 0x7f, 0x12, 0x3f, 0x61, + 0x25, 0xd1, 0x7e, 0x13, 0xca, 0x5b, 0x5e, 0x8b, 0x86, 0x5c, 0x1d, 0x37, 0x30, 0x4b, 0x35, 0x80, + 0xb1, 0x81, 0xb5, 0x2f, 0x69, 0x3c, 0x77, 0xa2, 0xc0, 0x09, 0x42, 0xd9, 0xe6, 0x15, 0x12, 0x27, + 0x7a, 0x9d, 0x03, 0xb1, 0xc4, 0xdd, 0xb8, 0xc8, 0x6b, 0x88, 0x9f, 0xbd, 0x57, 0x9f, 0x7a, 0xe7, + 0xbd, 0xfa, 0xd4, 0xbb, 0xef, 0xa9, 0x7a, 0xe2, 0xef, 0x15, 0x80, 0xed, 0xbd, 0xef, 0x93, 0x96, + 0x8c, 0x53, 0x67, 0x0f, 0xa7, 0x78, 0x5d, 0xa8, 0x66, 0xa2, 0x62, 0x90, 0x93, 0x1b, 0xaa, 0x0b, + 0x0d, 0x1c, 0x4e, 0x51, 0xa2, 0x65, 0x28, 0xc7, 0x03, 0x2b, 0x75, 0x6c, 0xf3, 0xda, 0x0d, 0xe2, + 0xa9, 0x16, 0x4e, 0x68, 0x52, 0x41, 0x73, 0xfa, 0xcc, 0xa0, 0xd9, 0x84, 0x7c, 0xcf, 0x73, 0xc5, + 0xa9, 0x94, 0x9b, 0xcf, 0xe9, 0xa4, 0x75, 0x67, 0x73, 0xed, 0x64, 0x50, 0x7f, 0x72, 0xdc, 0xb4, + 0x37, 0xea, 0x77, 0x09, 0x6b, 0xdc, 0xd9, 0x5c, 0xc3, 0x9c, 0xf9, 0xb4, 0x60, 0x50, 0x9c, 0x30, + 0x18, 0x5c, 0x03, 0x50, 0xbb, 0xe6, 0xdc, 0xf2, 0x56, 0xc7, 0xde, 0x79, 0x33, 0xc6, 0x60, 0x83, + 0x0a, 0x31, 0x98, 0x6f, 0x51, 0x22, 0x9d, 0xdd, 0xeb, 0x10, 0x16, 0x39, 0x1d, 0x39, 0xbe, 0x9a, + 0xcc, 0x55, 0x9f, 0x50, 0x6a, 0xe6, 0x57, 0x87, 0x85, 0xe1, 0x51, 0xf9, 0x28, 0x84, 0x79, 0x57, + 0x75, 0xd0, 0x89, 0xd2, 0xf2, 0xc4, 0x4a, 0x2f, 0x71, 0x85, 0x6b, 0xc3, 0x82, 0xf0, 0xa8, 0x6c, + 0xf4, 0x3d, 0x58, 0xd0, 0xc0, 0xd1, 0x31, 0x86, 0x18, 0xa8, 0xe5, 0x9b, 0x8b, 0xc7, 0x83, 0xfa, + 0xc2, 0xda, 0x58, 0x2a, 0xfc, 0x08, 0x09, 0xc8, 0x85, 0xa2, 0x2f, 0x2b, 0xc2, 0x8a, 0xc8, 0xe2, + 0x5f, 0xcf, 0xb6, 0x8b, 0xc4, 0xfb, 0x1b, 0x66, 0x25, 0x18, 0xb7, 0xe9, 0xaa, 0x08, 0x54, 0xb2, + 0xd1, 0x43, 0xa8, 0x38, 0x41, 0x10, 0x46, 0x8e, 0x1c, 0xac, 0xcc, 0x0a, 0x55, 0x2b, 0x13, 0xab, + 0x5a, 0x49, 0x64, 0x0c, 0x55, 0x9e, 0x06, 0x06, 0x9b, 0xaa, 0xd0, 0x03, 0x38, 0x1f, 0x3e, 0x08, + 0x08, 0xc5, 0x64, 0x9f, 0x50, 0x12, 0xb4, 0x08, 0xab, 0x55, 0x85, 0xf6, 0xaf, 0x66, 0xd4, 0x9e, + 0x62, 0x4e, 0x5c, 0x3a, 0x0d, 0x67, 0x78, 0x58, 0x0b, 0x6a, 0x00, 0xec, 0x7b, 0x81, 0xea, 0x1f, + 0x6a, 0xe7, 0x92, 0x09, 0xec, 0x46, 0x0c, 0xc5, 0x06, 0x05, 0x7a, 0x01, 0x2a, 0x2d, 0xbf, 0xc7, + 0x22, 0x22, 0x47, 0xbd, 0xe7, 0xc5, 0x0d, 0x8a, 0xf7, 0xb7, 0x9a, 0xa0, 0xb0, 0x49, 0x87, 0x0e, + 0x60, 0xd6, 0x33, 0x1a, 0x95, 0xda, 0x9c, 0xf0, 0xc5, 0x6b, 0x13, 0x77, 0x27, 0xac, 0x39, 0xc7, + 0x23, 0x91, 0x09, 0xc1, 0x29, 0xc9, 0xa8, 0x07, 0xd5, 0x8e, 0x99, 0x6a, 0x6a, 0xf3, 0xc2, 0x8e, + 0xd7, 0xb3, 0xa9, 0x1a, 0x4d, 0x86, 0x49, 0x3d, 0x92, 0xc2, 0xe1, 0xb4, 0x96, 0x85, 0xaf, 0x41, + 0xe5, 0xbf, 0x2c, 0xd7, 0x79, 0xb9, 0x3f, 0xec, 0x31, 0x13, 0x95, 0xfb, 0xef, 0xe7, 0xe0, 0x5c, + 0xfa, 0x9c, 0xe3, 0xb6, 0xd8, 0x1a, 0xfb, 0xc5, 0x40, 0x27, 0x83, 0xfc, 0xd8, 0x64, 0xa0, 0x62, + 0xee, 0xf4, 0xe3, 0xc4, 0xdc, 0x74, 0x3a, 0x2f, 0x64, 0x4a, 0xe7, 0x0d, 0x00, 0x5e, 0xee, 0xd0, + 0xd0, 0xf7, 0x09, 0x15, 0x21, 0xba, 0xa4, 0xbe, 0x09, 0xc4, 0x50, 0x6c, 0x50, 0xa0, 0x0d, 0x40, + 0x7b, 0x7e, 0xd8, 0x3a, 0x14, 0x26, 0xd0, 0xe1, 0x45, 0x04, 0xe7, 0x92, 0x9c, 0xab, 0x36, 0x47, + 0xb0, 0xf8, 0x14, 0x0e, 0xbb, 0x0f, 0x97, 0x76, 0x1c, 0xca, 0x1d, 0x29, 0xb9, 0xca, 0xa2, 0x81, + 0x78, 0x63, 0xa4, 0x3d, 0x79, 0x6e, 0xd2, 0x90, 0x90, 0x6c, 0x3a, 0x81, 0x25, 0x2d, 0x8a, 0xfd, + 0x17, 0x0b, 0x9e, 0x38, 0x55, 0xf7, 0x67, 0xd0, 0x1e, 0xdd, 0x4f, 0xb7, 0x47, 0x2f, 0x65, 0x1c, + 0x23, 0x9f, 0xb6, 0x5a, 0xf9, 0x29, 0x29, 0xd5, 0x28, 0xcd, 0x40, 0x61, 0x87, 0x97, 0x9c, 0xf6, + 0x2f, 0x2d, 0x98, 0x15, 0x4f, 0x93, 0x8c, 0xdf, 0xeb, 0x50, 0xd8, 0x0f, 0xf5, 0x88, 0xad, 0x24, + 0xc5, 0x6f, 0x70, 0x00, 0x96, 0xf0, 0xc7, 0x98, 0xcf, 0xbf, 0x6d, 0x41, 0x7a, 0xf0, 0x8d, 0x5e, + 0x91, 0xfe, 0x6e, 0xc5, 0x93, 0xe9, 0x09, 0x7d, 0xfd, 0xe5, 0x71, 0x8d, 0xdd, 0x85, 0x4c, 0x53, + 0xce, 0x2b, 0x50, 0xc6, 0x61, 0x18, 0xed, 0x38, 0xd1, 0x01, 0xe3, 0x1b, 0xef, 0xf2, 0x07, 0x65, + 0x1b, 0xb1, 0x71, 0x81, 0xc1, 0x12, 0x6e, 0xff, 0xc2, 0x82, 0x27, 0xc6, 0x7e, 0x12, 0xe1, 0xd7, + 0xae, 0x15, 0xbf, 0xa9, 0x1d, 0xc5, 0x1e, 0x98, 0xd0, 0x61, 0x83, 0x8a, 0x77, 0x63, 0xa9, 0xef, + 0x28, 0xc3, 0xdd, 0x58, 0x4a, 0x1b, 0x4e, 0xd3, 0xda, 0xff, 0xca, 0x41, 0x51, 0x8e, 0x79, 0xfe, + 0xc7, 0xde, 0xfa, 0x34, 0x14, 0x99, 0xd0, 0xa3, 0x96, 0x17, 0x67, 0x72, 0xa9, 0x1d, 0x2b, 0xac, + 0xe8, 0x60, 0x08, 0x63, 0x4e, 0x5b, 0x47, 0xb8, 0xa4, 0x83, 0x91, 0x60, 0xac, 0xf1, 0xe8, 0x45, + 0x28, 0x52, 0xe2, 0xb0, 0xb8, 0x37, 0x5c, 0xd4, 0x22, 0xb1, 0x80, 0x9e, 0x0c, 0xea, 0xb3, 0x4a, + 0xb8, 0x78, 0xc7, 0x8a, 0x1a, 0xdd, 0x83, 0x19, 0x97, 0x44, 0x8e, 0xe7, 0xeb, 0x6e, 0xe1, 0xf9, + 0x49, 0xc6, 0x61, 0x6b, 0x92, 0xb5, 0x59, 0xe1, 0x6b, 0x52, 0x2f, 0x58, 0x0b, 0xe4, 0xd1, 0xb9, + 0x15, 0xba, 0xf2, 0x4b, 0x6a, 0x21, 0x89, 0xce, 0xab, 0xa1, 0x4b, 0xb0, 0xc0, 0xd8, 0xef, 0x58, + 0x50, 0x91, 0x92, 0x56, 0x9d, 0x1e, 0x23, 0xe8, 0x6a, 0xbc, 0x0b, 0x79, 0xdc, 0xba, 0x5e, 0x9c, + 0xe6, 0x1d, 0xd6, 0xc9, 0xa0, 0x5e, 0x16, 0x64, 0xa2, 0xdd, 0xd2, 0x1b, 0x30, 0x6c, 0x94, 0x3b, + 0xc3, 0x46, 0x4f, 0x41, 0x41, 0xdc, 0x1e, 0x65, 0xcc, 0xb8, 0x09, 0x11, 0x17, 0x0c, 0x4b, 0x9c, + 0xfd, 0x71, 0x0e, 0xaa, 0xa9, 0xcd, 0x65, 0xe8, 0x38, 0xe2, 0xd1, 0x6b, 0x2e, 0xc3, 0x38, 0x7f, + 0xfc, 0xf7, 0xef, 0xef, 0x40, 0xb1, 0xc5, 0xf7, 0xa7, 0xff, 0x80, 0x70, 0x75, 0x92, 0xa3, 0x10, + 0x96, 0x49, 0x3c, 0x49, 0xbc, 0x32, 0xac, 0x04, 0xa2, 0x9b, 0x30, 0x4f, 0x49, 0x44, 0xfb, 0x2b, + 0xfb, 0x11, 0xa1, 0xe6, 0x0c, 0xa0, 0x90, 0xd4, 0xe4, 0x78, 0x98, 0x00, 0x8f, 0xf2, 0xe8, 0x7c, + 0x5a, 0x7c, 0x8c, 0x7c, 0x6a, 0xef, 0xc1, 0xec, 0x6d, 0x67, 0xcf, 0x8f, 0xbf, 0x29, 0x62, 0xa8, + 0x7a, 0x41, 0xcb, 0xef, 0xb9, 0x44, 0x46, 0x62, 0x1d, 0xbd, 0xf4, 0xa5, 0xdd, 0x34, 0x91, 0x27, + 0x83, 0xfa, 0x85, 0x14, 0x40, 0x7e, 0x44, 0xc3, 0x69, 0x11, 0xb6, 0x0f, 0xd3, 0x9f, 0x61, 0x8f, + 0xfa, 0x5d, 0x28, 0x27, 0x5d, 0xc4, 0xa7, 0xac, 0xd2, 0x7e, 0x03, 0x4a, 0xdc, 0xe3, 0x75, 0xf7, + 0x7b, 0x46, 0x49, 0x94, 0x2e, 0x56, 0x72, 0x59, 0x8a, 0x15, 0xbb, 0x03, 0xd5, 0x3b, 0x5d, 0xf7, + 0x31, 0xbf, 0x2a, 0xe7, 0x32, 0x67, 0xad, 0x6b, 0x20, 0xff, 0xa9, 0xc1, 0x13, 0x84, 0xcc, 0xda, + 0x46, 0x82, 0x30, 0x13, 0xaf, 0xf1, 0x55, 0xe1, 0x27, 0x16, 0x80, 0x18, 0xfb, 0xac, 0x1f, 0x91, + 0x20, 0xe2, 0x76, 0xe0, 0x4e, 0x35, 0x6c, 0x07, 0x11, 0x19, 0x04, 0x06, 0xdd, 0x81, 0x62, 0x28, + 0xbd, 0x49, 0x8e, 0xf9, 0x27, 0x9c, 0x98, 0xc6, 0x17, 0x49, 0xfa, 0x13, 0x56, 0xc2, 0x9a, 0x97, + 0x3f, 0xf8, 0x64, 0x71, 0xea, 0xc3, 0x4f, 0x16, 0xa7, 0x3e, 0xfa, 0x64, 0x71, 0xea, 0xad, 0xe3, + 0x45, 0xeb, 0x83, 0xe3, 0x45, 0xeb, 0xc3, 0xe3, 0x45, 0xeb, 0xa3, 0xe3, 0x45, 0xeb, 0xe3, 0xe3, + 0x45, 0xeb, 0x9d, 0xbf, 0x2d, 0x4e, 0xdd, 0xcb, 0x1d, 0x5d, 0xfd, 0x4f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x83, 0xb7, 0x3e, 0x8b, 0x95, 0x26, 0x00, 0x00, } diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto index 4f3169fe57a..0e00a0cdb40 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto @@ -395,6 +395,14 @@ message ListMeta { // identical to the value in the first response, unless you have received this token from an error // message. optional string continue = 3; + + // RemainingItemCount is the number of subsequent items in the list which are not included in this + // list response. If the list request contained label or field selectors, then the number of + // remaining items is unknown and this field will be unset. If the list is complete (either + // because it is unpaginated or because this is the last page), then there are no more remaining + // items and this field will also be unset. Servers older than v1.15 do not set this field. + // +optional + optional int64 remainingItemCount = 4; } // ListOptions is the query options to a standard REST list call. diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go index 4550add8039..cc3cd1edcf4 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go @@ -197,10 +197,11 @@ func (List) SwaggerDoc() map[string]string { } var map_ListMeta = map[string]string{ - "": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "selfLink": "selfLink is a URL representing this object. Populated by the system. Read-only.", - "resourceVersion": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "continue": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", + "": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "selfLink": "selfLink is a URL representing this object. Populated by the system. Read-only.", + "resourceVersion": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", + "continue": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", + "remainingItemCount": "RemainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and this field will be unset. If the list is complete (either because it is unpaginated or because this is the last page), then there are no more remaining items and this field will also be unset. Servers older than v1.15 do not set this field.", } func (ListMeta) SwaggerDoc() map[string]string {