From 55354bf20d592d1cd8eccfe797c54e12411139ac Mon Sep 17 00:00:00 2001 From: pengcong06 <924550750@qq.com> Date: Tue, 2 Jun 2020 21:40:58 +0800 Subject: [PATCH] add list events --- cmd/controller-manager/app/server.go | 2 +- go.mod | 1 + go.sum | 4 +- pkg/constants/constants.go | 1 + pkg/kapis/openpitrix/v1/handler.go | 55 +- pkg/kapis/openpitrix/v1/register.go | 35 +- pkg/models/openpitrix/applications.go | 6 +- pkg/models/openpitrix/applications_test.go | 11 +- pkg/models/openpitrix/apps.go | 1 - pkg/models/openpitrix/interface.go | 10 - pkg/models/openpitrix/repos.go | 41 +- .../bson/bson_corpus_spec_test_generator.go | 294 --- vendor/github.com/hashicorp/hcl/.gitignore | 18 +- vendor/github.com/hashicorp/hcl/Makefile | 36 +- .../pelletier/go-toml/example-crlf.toml | 58 +- .../github.com/sirupsen/logrus/appveyor.yml | 28 +- vendor/github.com/spf13/afero/.travis.yml | 42 +- vendor/golang.org/x/net/html/atom/gen.go | 712 ------- vendor/golang.org/x/sys/unix/mkasm_darwin.go | 61 - vendor/golang.org/x/sys/unix/mkpost.go | 106 - vendor/golang.org/x/sys/unix/mksyscall.go | 402 ---- .../x/sys/unix/mksyscall_aix_ppc.go | 404 ---- .../x/sys/unix/mksyscall_aix_ppc64.go | 602 ------ .../x/sys/unix/mksyscall_solaris.go | 335 ---- vendor/golang.org/x/sys/unix/mksysnum.go | 190 -- vendor/golang.org/x/sys/unix/types_aix.go | 236 --- vendor/golang.org/x/sys/unix/types_darwin.go | 277 --- .../golang.org/x/sys/unix/types_dragonfly.go | 263 --- vendor/golang.org/x/sys/unix/types_freebsd.go | 356 ---- vendor/golang.org/x/sys/unix/types_netbsd.go | 289 --- vendor/golang.org/x/sys/unix/types_openbsd.go | 276 --- vendor/golang.org/x/sys/unix/types_solaris.go | 266 --- .../x/text/encoding/charmap/maketables.go | 556 ------ .../x/text/encoding/htmlindex/gen.go | 173 -- .../text/encoding/internal/identifier/gen.go | 137 -- .../x/text/encoding/japanese/maketables.go | 161 -- .../x/text/encoding/korean/maketables.go | 143 -- .../encoding/simplifiedchinese/maketables.go | 161 -- .../encoding/traditionalchinese/maketables.go | 140 -- vendor/golang.org/x/text/language/gen.go | 1712 ----------------- .../golang.org/x/text/language/gen_common.go | 20 - .../golang.org/x/text/language/gen_index.go | 162 -- vendor/golang.org/x/text/unicode/bidi/gen.go | 133 -- .../x/text/unicode/bidi/gen_ranges.go | 57 - .../x/text/unicode/bidi/gen_trieval.go | 64 - .../x/text/unicode/norm/maketables.go | 976 ---------- .../golang.org/x/text/unicode/norm/triegen.go | 117 -- vendor/golang.org/x/text/width/gen.go | 115 -- vendor/golang.org/x/text/width/gen_common.go | 96 - vendor/golang.org/x/text/width/gen_trieval.go | 34 - .../x/tools/go/gcexportdata/main.go | 99 - .../x/tools/internal/imports/mkindex.go | 173 -- .../x/tools/internal/imports/mkstdlib.go | 132 -- vendor/modules.txt | 2 +- .../openpitrix/pkg/constants/column.go | 2 +- .../openpitrix/pkg/pb/cluster.pb.go | 630 +++--- .../openpitrix/pkg/pb/helm.pb.go | 298 +-- .../openpitrix/pkg/pb/helm.pb.gw.go | 77 - .../openpitrix/pkg/pb/runtime_provider.pb.go | 154 +- .../openpitrix/pkg/version/gen_helper.go | 74 - 60 files changed, 628 insertions(+), 11388 deletions(-) delete mode 100644 vendor/github.com/globalsign/mgo/bson/bson_corpus_spec_test_generator.go delete mode 100644 vendor/golang.org/x/net/html/atom/gen.go delete mode 100644 vendor/golang.org/x/sys/unix/mkasm_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/mkpost.go delete mode 100644 vendor/golang.org/x/sys/unix/mksyscall.go delete mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/mksyscall_solaris.go delete mode 100644 vendor/golang.org/x/sys/unix/mksysnum.go delete mode 100644 vendor/golang.org/x/sys/unix/types_aix.go delete mode 100644 vendor/golang.org/x/sys/unix/types_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/types_dragonfly.go delete mode 100644 vendor/golang.org/x/sys/unix/types_freebsd.go delete mode 100644 vendor/golang.org/x/sys/unix/types_netbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/types_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/types_solaris.go delete mode 100644 vendor/golang.org/x/text/encoding/charmap/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/gen.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/gen.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/korean/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go delete mode 100644 vendor/golang.org/x/text/language/gen.go delete mode 100644 vendor/golang.org/x/text/language/gen_common.go delete mode 100644 vendor/golang.org/x/text/language/gen_index.go delete mode 100644 vendor/golang.org/x/text/unicode/bidi/gen.go delete mode 100644 vendor/golang.org/x/text/unicode/bidi/gen_ranges.go delete mode 100644 vendor/golang.org/x/text/unicode/bidi/gen_trieval.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/maketables.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/triegen.go delete mode 100644 vendor/golang.org/x/text/width/gen.go delete mode 100644 vendor/golang.org/x/text/width/gen_common.go delete mode 100644 vendor/golang.org/x/text/width/gen_trieval.go delete mode 100644 vendor/golang.org/x/tools/go/gcexportdata/main.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/mkindex.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/mkstdlib.go delete mode 100644 vendor/openpitrix.io/openpitrix/pkg/version/gen_helper.go diff --git a/cmd/controller-manager/app/server.go b/cmd/controller-manager/app/server.go index 44984de10..5163f513e 100644 --- a/cmd/controller-manager/app/server.go +++ b/cmd/controller-manager/app/server.go @@ -20,7 +20,7 @@ import ( "context" "fmt" "github.com/spf13/cobra" - v1 "k8s.io/api/core/v1" + "k8s.io/api/core/v1" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/client-go/tools/leaderelection" diff --git a/go.mod b/go.mod index eaef2700e..2f63fb758 100644 --- a/go.mod +++ b/go.mod @@ -427,6 +427,7 @@ replace ( openpitrix.io/iam => openpitrix.io/iam v0.1.0 openpitrix.io/logger => openpitrix.io/logger v0.1.0 openpitrix.io/openpitrix => github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348 + openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 rsc.io/goversion => rsc.io/goversion v1.0.0 sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.4.0 sigs.k8s.io/controller-tools => sigs.k8s.io/controller-tools v0.2.4 diff --git a/go.sum b/go.sum index 3e4e1148c..fd16b5e88 100644 --- a/go.sum +++ b/go.sum @@ -366,8 +366,6 @@ github.com/pelletier/go-buffruneio v0.2.0 h1:U4t4R6YkofJ5xHm3dJzuRpPZ0mr5MMCoAWo github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348 h1:xZAxtVEzs5646suGdnLdZ9mkX+ZOLlpH4hjI0Fx94JY= -github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/peterh/liner v0.0.0-20170211195444-bf27d3ba8e1d/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= github.com/phayes/freeport v0.0.0-20171002181615-b8543db493a5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= @@ -598,6 +596,8 @@ openpitrix.io/iam v0.1.0/go.mod h1:EcZE8CPBg+1fEKCDEhpsIZ8isWWO7javpu84mSqoVn4= openpitrix.io/libqueue v0.4.1/go.mod h1:qUuS2viIR86Fm1rLfLRFMMAyltUeGxNt8zoCNkmf/Gk= openpitrix.io/logger v0.1.0/go.mod h1:SV8Btt2cTSmeL9H/1XCkYmQ+WQ2upVY4e0wlr07RP28= openpitrix.io/notification v0.2.2/go.mod h1:2YRxpnrFk2Z3fXpRXWzbDY9j6Sztrd860Vm8qh5hZzY= +openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 h1:MUCblqyJK8dX7WYUAiyN7vzpchn+6GYS7pSYVbJHmJ4= +openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o= rsc.io/goversion v1.0.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo= rsc.io/letsencrypt v0.0.1/go.mod h1:buyQKZ6IXrRnB7TdkHP0RyEybLx18HHyOSoTyoOLqNY= sigs.k8s.io/controller-runtime v0.4.0 h1:wATM6/m+3w8lj8FXNaO6Fs/rq/vqoOjO1Q116Z9NPsg= diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go index b09a77298..4530686a8 100644 --- a/pkg/constants/constants.go +++ b/pkg/constants/constants.go @@ -34,6 +34,7 @@ const ( WorkspaceLabelKey = "kubesphere.io/workspace" NamespaceLabelKey = "kubesphere.io/namespace" + RuntimeLabelKey = "openpitrix.io/namespace" DisplayNameAnnotationKey = "kubesphere.io/alias-name" DescriptionAnnotationKey = "kubesphere.io/description" CreatorAnnotationKey = "kubesphere.io/creator" diff --git a/pkg/kapis/openpitrix/v1/handler.go b/pkg/kapis/openpitrix/v1/handler.go index d23bcb498..7a9993a99 100644 --- a/pkg/kapis/openpitrix/v1/handler.go +++ b/pkg/kapis/openpitrix/v1/handler.go @@ -46,7 +46,7 @@ func newOpenpitrixHandler(factory informers.InformerFactory, opClient op.Client) func (h *openpitrixHandler) ListApplications(request *restful.Request, response *restful.Response) { limit, offset := params.ParsePaging(request) - runtimeId := request.PathParameter("cluster") + runtimeId := request.PathParameter("runtime") namespace := request.PathParameter("namespace") orderBy := params.GetStringValueWithDefault(request, params.OrderByParam, openpitrix.CreateTime) reverse := params.GetBoolValueWithDefault(request, params.ReverseParam, false) @@ -72,9 +72,9 @@ func (h *openpitrixHandler) ListApplications(request *restful.Request, response } func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *restful.Response) { - clusterId := req.PathParameter("application") + runtimeId := req.PathParameter("runtime") namespace := req.PathParameter("namespace") - runtimeId := req.PathParameter("cluster") + clusterId := req.PathParameter("application") app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId) @@ -84,29 +84,12 @@ func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *rest return } - //ns, err := h.informers.Core().V1().Namespaces().Lister().Get(namespace) - // - //if err != nil { - // klog.Errorln(err) - // api.HandleInternalError(resp, nil, err) - // return - //} - // - //runtimeId := ns.Annotations[constants.OpenPitrixRuntimeAnnotationKey] - // - //if runtimeId != app.Cluster.RuntimeId { - // err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId) - // klog.V(4).Infoln(err) - // api.HandleForbidden(resp, nil, err) - // return - //} - resp.WriteEntity(app) return } func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restful.Response) { - runtimeId := req.PathParameter("cluster") + runtimeId := req.PathParameter("runtime") namespace := req.PathParameter("namespace") var createClusterRequest openpitrix.CreateClusterRequest err := req.ReadEntity(&createClusterRequest) @@ -131,7 +114,7 @@ func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restfu func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restful.Response) { var modifyClusterAttributesRequest openpitrix.ModifyClusterAttributesRequest - runtimeId := req.PathParameter("cluster") + runtimeId := req.PathParameter("runtime") clusterId := req.PathParameter("application") namespace := req.PathParameter("namespace") err := req.ReadEntity(&modifyClusterAttributesRequest) @@ -168,7 +151,7 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu } func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restful.Response) { - runtimeId := req.PathParameter("cluster") + runtimeId := req.PathParameter("runtime") clusterId := req.PathParameter("application") namespace := req.PathParameter("namespace") app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId) @@ -198,7 +181,7 @@ func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restfu } func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restful.Response) { - runtimeId := req.PathParameter("cluster") + runtimeId := req.PathParameter("runtime") namespace := req.PathParameter("namespace") clusterId := req.PathParameter("application") var upgradeClusterRequest openpitrix.UpgradeClusterRequest @@ -850,6 +833,7 @@ func (h *openpitrixHandler) DescribeRepo(req *restful.Request, resp *restful.Res resp.WriteEntity(result) } + func (h *openpitrixHandler) ListRepos(req *restful.Request, resp *restful.Response) { limit, offset := params.ParsePaging(req) orderBy := params.GetStringValueWithDefault(req, params.OrderByParam, openpitrix.CreateTime) @@ -873,6 +857,29 @@ func (h *openpitrixHandler) ListRepos(req *restful.Request, resp *restful.Respon resp.WriteEntity(result) } +func (h *openpitrixHandler) ListEvents(req *restful.Request, resp *restful.Response) { + limit, offset := params.ParsePaging(req) + orderBy := params.GetStringValueWithDefault(req, params.OrderByParam, openpitrix.CreateTime) + reverse := params.GetBoolValueWithDefault(req, params.ReverseParam, false) + conditions, err := params.ParseConditions(req) + + if err != nil { + klog.V(4).Infoln(err) + api.HandleBadRequest(resp, nil, err) + return + } + + result, err := h.openpitrix.ListEvents(conditions, orderBy, reverse, limit, offset) + + if err != nil { + klog.Errorln(err) + handleOpenpitrixError(resp, err) + return + } + + resp.WriteEntity(result) +} + func (h *openpitrixHandler) ListRepoEvents(req *restful.Request, resp *restful.Response) { repoId := req.PathParameter("repo") limit, offset := params.ParsePaging(req) diff --git a/pkg/kapis/openpitrix/v1/register.go b/pkg/kapis/openpitrix/v1/register.go index cc1e2b9af..7b4656e60 100644 --- a/pkg/kapis/openpitrix/v1/register.go +++ b/pkg/kapis/openpitrix/v1/register.go @@ -43,7 +43,7 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op webservice := runtime.NewWebService(GroupVersion) handler := newOpenpitrixHandler(factory, op) - webservice.Route(webservice.GET("/clusters/{cluster}/applications"). + webservice.Route(webservice.GET("/runtimes/{runtime}/applications"). To(handler.ListApplications). Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). @@ -52,13 +52,13 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op Required(false). DataFormat("key=value,key~value"). DefaultValue("")). - Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")). + Param(webservice.PathParameter("runtime", "the id of runtime")). Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). Required(false). DataFormat("limit=%d,page=%d"). DefaultValue("limit=10,page=1"))) - webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications"). + webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications"). To(handler.ListApplications). Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). @@ -67,59 +67,59 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op Required(false). DataFormat("key=value,key~value"). DefaultValue("")). - Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")). + Param(webservice.PathParameter("runtime", "the id of runtime")). Param(webservice.PathParameter("namespace", "the name of the project")). Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). Required(false). DataFormat("limit=%d,page=%d"). DefaultValue("limit=10,page=1"))) - webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). To(handler.DescribeApplication). Returns(http.StatusOK, api.StatusOK, openpitrix2.Application{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Doc("Describe the specified application of the namespace"). - Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")). + Param(webservice.PathParameter("runtime", "the id of runtime")). Param(webservice.PathParameter("namespace", "the name of the project")). Param(webservice.PathParameter("application", "application ID"))) - webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications"). + webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications"). To(handler.CreateApplication). Doc("Deploy a new application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Reads(openpitrix2.CreateClusterRequest{}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")). + Param(webservice.PathParameter("runtime", "the id of runtime")). Param(webservice.PathParameter("namespace", "the name of the project"))) - webservice.Route(webservice.PATCH("/clusters/{cluster}/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.PATCH("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). Consumes(mimePatch...). To(handler.ModifyApplication). Doc("Modify application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Reads(openpitrix2.ModifyClusterAttributesRequest{}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")). + Param(webservice.PathParameter("runtime", "the id of runtime")). Param(webservice.PathParameter("namespace", "the name of the project")). Param(webservice.PathParameter("application", "the id of the application cluster"))) - webservice.Route(webservice.DELETE("/clusters/cluster/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.DELETE("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). To(handler.DeleteApplication). Doc("Delete the specified application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("cluster", "the id of cluster(runtime")). + Param(webservice.PathParameter("runtime", "the id of runtime")). Param(webservice.PathParameter("namespace", "the name of the project")). Param(webservice.PathParameter("application", "the id of the application cluster"))) - webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). Consumes(mimePatch...). To(handler.UpgradeApplication). Doc("Upgrade application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Reads(openpitrix2.UpgradeClusterRequest{}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")). + Param(webservice.PathParameter("runtime", "the id of runtime")). Param(webservice.PathParameter("namespace", "the name of the project")). Param(webservice.PathParameter("application", "the id of the application cluster"))) @@ -347,6 +347,13 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op Reads(openpitrix2.RepoActionRequest{}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). Param(webservice.PathParameter("repo", "repo id"))) + webservice.Route(webservice.GET("/events"). + To(handler.ListEvents). + Doc("Get events"). + Param(webservice.QueryParameter(params.ConditionsParam, "query conditions,connect multiple conditions with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a"). + Required(false). + DataFormat("key=%s,key~%s")). + Returns(http.StatusOK, api.StatusOK, models.PageableResponse{})) webservice.Route(webservice.GET("/repos/{repo}/events"). To(handler.ListRepoEvents). Doc("Get repository events"). diff --git a/pkg/models/openpitrix/applications.go b/pkg/models/openpitrix/applications.go index a8c2a9302..b0e4d4238 100644 --- a/pkg/models/openpitrix/applications.go +++ b/pkg/models/openpitrix/applications.go @@ -94,6 +94,9 @@ func (c *applicationOperator) ListApplications(conditions *params.Conditions, li if status := conditions.Match[Status]; status != "" { describeClustersRequest.Status = strings.Split(status, "|") } + if zone := conditions.Match[Zone]; zone != "" { + describeClustersRequest.Zone = []string{zone} + } if orderBy != "" { describeClustersRequest.SortKey = &wrappers.StringValue{Value: orderBy} } @@ -360,8 +363,8 @@ func (c *applicationOperator) CreateApplication(runtimeId, namespace string, req AppId: &wrappers.StringValue{Value: request.AppId}, VersionId: &wrappers.StringValue{Value: request.VersionId}, RuntimeId: &wrappers.StringValue{Value: request.RuntimeId}, - Namespace: &wrappers.StringValue{Value: namespace}, Conf: &wrappers.StringValue{Value: request.Conf}, + Zone: &wrappers.StringValue{Value: namespace}, }) if err != nil { @@ -407,7 +410,6 @@ func (c *applicationOperator) UpgradeApplication(request UpgradeClusterRequest) _, err := c.opClient.UpgradeCluster(openpitrix.ContextWithUsername(request.Username), &pb.UpgradeClusterRequest{ ClusterId: &wrappers.StringValue{Value: request.ClusterId}, VersionId: &wrappers.StringValue{Value: request.VersionId}, - Conf: &wrappers.StringValue{Value: request.Conf}, }) if err != nil { diff --git a/pkg/models/openpitrix/applications_test.go b/pkg/models/openpitrix/applications_test.go index 227955b3e..d3c188276 100644 --- a/pkg/models/openpitrix/applications_test.go +++ b/pkg/models/openpitrix/applications_test.go @@ -1,19 +1,9 @@ /* Copyright 2020 The KubeSphere Authors. -<<<<<<< HEAD - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -======= Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 ->>>>>>> support UpgradeCluster Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -104,6 +94,7 @@ func TestApplicationOperator_CreateApplication(t *testing.T) { VersionId: &wrappers.StringValue{Value: test.createClusterRequest.VersionId}, RuntimeId: &wrappers.StringValue{Value: test.createClusterRequest.RuntimeId}, Conf: &wrappers.StringValue{Value: test.createClusterRequest.Conf}, + Zone: &wrappers.StringValue{Value: test.targetNamespace}, }).Return(&pb.CreateClusterResponse{}, nil).AnyTimes() t.Run(test.description, func(t *testing.T) { diff --git a/pkg/models/openpitrix/apps.go b/pkg/models/openpitrix/apps.go index 4d4d9fa01..ee0540627 100644 --- a/pkg/models/openpitrix/apps.go +++ b/pkg/models/openpitrix/apps.go @@ -4,7 +4,6 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 ->>>>>>> support UpgradeCluster Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/pkg/models/openpitrix/interface.go b/pkg/models/openpitrix/interface.go index 0f7ae1f80..174637838 100644 --- a/pkg/models/openpitrix/interface.go +++ b/pkg/models/openpitrix/interface.go @@ -1,19 +1,9 @@ /* Copyright 2020 The KubeSphere Authors. -<<<<<<< HEAD - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -======= Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 ->>>>>>> support UpgradeCluster Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/pkg/models/openpitrix/repos.go b/pkg/models/openpitrix/repos.go index cbccae652..e8d169d45 100644 --- a/pkg/models/openpitrix/repos.go +++ b/pkg/models/openpitrix/repos.go @@ -1,19 +1,9 @@ /* Copyright 2020 The KubeSphere Authors. -<<<<<<< HEAD - Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - -======= -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 ->>>>>>> support UpgradeCluster Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -44,6 +34,7 @@ type RepoInterface interface { ListRepos(conditions *params.Conditions, orderBy string, reverse bool, limit, offset int) (*models.PageableResponse, error) ValidateRepo(request *ValidateRepoRequest) (*ValidateRepoResponse, error) DoRepoAction(repoId string, request *RepoActionRequest) error + ListEvents(conditions *params.Conditions, orderBy string, reverse bool, limit, offset int) (*models.PageableResponse, error) ListRepoEvents(repoId string, conditions *params.Conditions, limit, offset int) (*models.PageableResponse, error) } @@ -274,3 +265,33 @@ func (c *repoOperator) ListRepoEvents(repoId string, conditions *params.Conditio return &models.PageableResponse{Items: items, TotalCount: int(resp.TotalCount)}, nil } + +func (c *repoOperator) ListEvents(conditions *params.Conditions, orderBy string, reverse bool, limit, offset int) (*models.PageableResponse, error) { + describeRepoEventsRequest := &pb.DescribeRepoEventsRequest{} + if repoId := conditions.Match["repo_id"]; repoId != "" { + describeRepoEventsRequest.RepoId = strings.Split(repoId, "|") + } + if eventId := conditions.Match["repo_event_id"]; eventId != "" { + describeRepoEventsRequest.RepoEventId = strings.Split(eventId, "|") + } + if status := conditions.Match["status"]; status != "" { + describeRepoEventsRequest.Status = strings.Split(status, "|") + } + describeRepoEventsRequest.Limit = uint32(limit) + describeRepoEventsRequest.Offset = uint32(offset) + + resp, err := c.opClient.DescribeRepoEvents(openpitrix.SystemContext(), describeRepoEventsRequest) + + if err != nil { + klog.Error(err) + return nil, err + } + + items := make([]interface{}, 0) + + for _, item := range resp.RepoEventSet { + items = append(items, convertRepoEvent(item)) + } + + return &models.PageableResponse{Items: items, TotalCount: int(resp.TotalCount)}, nil +} diff --git a/vendor/github.com/globalsign/mgo/bson/bson_corpus_spec_test_generator.go b/vendor/github.com/globalsign/mgo/bson/bson_corpus_spec_test_generator.go deleted file mode 100644 index 3525a004b..000000000 --- a/vendor/github.com/globalsign/mgo/bson/bson_corpus_spec_test_generator.go +++ /dev/null @@ -1,294 +0,0 @@ -// +build ignore - -package main - -import ( - "bytes" - "fmt" - "go/format" - "html/template" - "io/ioutil" - "log" - "path/filepath" - "strings" - - "github.com/globalsign/mgo/internal/json" -) - -func main() { - log.SetFlags(0) - log.SetPrefix(name + ": ") - - var g Generator - - fmt.Fprintf(&g, "// Code generated by \"%s.go\"; DO NOT EDIT\n\n", name) - - src := g.generate() - - err := ioutil.WriteFile(fmt.Sprintf("%s.go", strings.TrimSuffix(name, "_generator")), src, 0644) - if err != nil { - log.Fatalf("writing output: %s", err) - } -} - -// Generator holds the state of the analysis. Primarily used to buffer -// the output for format.Source. -type Generator struct { - bytes.Buffer // Accumulated output. -} - -// format returns the gofmt-ed contents of the Generator's buffer. -func (g *Generator) format() []byte { - src, err := format.Source(g.Bytes()) - if err != nil { - // Should never happen, but can arise when developing this code. - // The user can compile the output to see the error. - log.Printf("warning: internal error: invalid Go generated: %s", err) - log.Printf("warning: compile the package to analyze the error") - return g.Bytes() - } - return src -} - -// EVERYTHING ABOVE IS CONSTANT BETWEEN THE GENERATORS - -const name = "bson_corpus_spec_test_generator" - -func (g *Generator) generate() []byte { - - testFiles, err := filepath.Glob("./specdata/specifications/source/bson-corpus/tests/*.json") - if err != nil { - log.Fatalf("error reading bson-corpus files: %s", err) - } - - tests, err := g.loadTests(testFiles) - if err != nil { - log.Fatalf("error loading tests: %s", err) - } - - tmpl, err := g.getTemplate() - if err != nil { - log.Fatalf("error loading template: %s", err) - } - - tmpl.Execute(&g.Buffer, tests) - - return g.format() -} - -func (g *Generator) loadTests(filenames []string) ([]*testDef, error) { - var tests []*testDef - for _, filename := range filenames { - test, err := g.loadTest(filename) - if err != nil { - return nil, err - } - - tests = append(tests, test) - } - - return tests, nil -} - -func (g *Generator) loadTest(filename string) (*testDef, error) { - content, err := ioutil.ReadFile(filename) - if err != nil { - return nil, err - } - - var testDef testDef - err = json.Unmarshal(content, &testDef) - if err != nil { - return nil, err - } - - names := make(map[string]struct{}) - - for i := len(testDef.Valid) - 1; i >= 0; i-- { - if testDef.BsonType == "0x05" && testDef.Valid[i].Description == "subtype 0x02" { - testDef.Valid = append(testDef.Valid[:i], testDef.Valid[i+1:]...) - continue - } - - name := cleanupFuncName(testDef.Description + "_" + testDef.Valid[i].Description) - nameIdx := name - j := 1 - for { - if _, ok := names[nameIdx]; !ok { - break - } - - nameIdx = fmt.Sprintf("%s_%d", name, j) - } - - names[nameIdx] = struct{}{} - - testDef.Valid[i].TestDef = &testDef - testDef.Valid[i].Name = nameIdx - testDef.Valid[i].StructTest = testDef.TestKey != "" && - (testDef.BsonType != "0x05" || strings.Contains(testDef.Valid[i].Description, "0x00")) && - !testDef.Deprecated - } - - for i := len(testDef.DecodeErrors) - 1; i >= 0; i-- { - if strings.Contains(testDef.DecodeErrors[i].Description, "UTF-8") { - testDef.DecodeErrors = append(testDef.DecodeErrors[:i], testDef.DecodeErrors[i+1:]...) - continue - } - - name := cleanupFuncName(testDef.Description + "_" + testDef.DecodeErrors[i].Description) - nameIdx := name - j := 1 - for { - if _, ok := names[nameIdx]; !ok { - break - } - - nameIdx = fmt.Sprintf("%s_%d", name, j) - } - names[nameIdx] = struct{}{} - - testDef.DecodeErrors[i].Name = nameIdx - } - - return &testDef, nil -} - -func (g *Generator) getTemplate() (*template.Template, error) { - content := `package bson_test - -import ( - "encoding/hex" - "time" - - . "gopkg.in/check.v1" - "github.com/globalsign/mgo/bson" -) - -func testValid(c *C, in []byte, expected []byte, result interface{}) { - err := bson.Unmarshal(in, result) - c.Assert(err, IsNil) - - out, err := bson.Marshal(result) - c.Assert(err, IsNil) - - c.Assert(string(expected), Equals, string(out), Commentf("roundtrip failed for %T, expected '%x' but got '%x'", result, expected, out)) -} - -func testDecodeSkip(c *C, in []byte) { - err := bson.Unmarshal(in, &struct{}{}) - c.Assert(err, IsNil) -} - -func testDecodeError(c *C, in []byte, result interface{}) { - err := bson.Unmarshal(in, result) - c.Assert(err, Not(IsNil)) -} - -{{range .}} -{{range .Valid}} -func (s *S) Test{{.Name}}(c *C) { - b, err := hex.DecodeString("{{.Bson}}") - c.Assert(err, IsNil) - - {{if .CanonicalBson}} - cb, err := hex.DecodeString("{{.CanonicalBson}}") - c.Assert(err, IsNil) - {{else}} - cb := b - {{end}} - - var resultD bson.D - testValid(c, b, cb, &resultD) - {{if .StructTest}}var resultS struct { - Element {{.TestDef.GoType}} ` + "`bson:\"{{.TestDef.TestKey}}\"`" + ` - } - testValid(c, b, cb, &resultS){{end}} - - testDecodeSkip(c, b) -} -{{end}} - -{{range .DecodeErrors}} -func (s *S) Test{{.Name}}(c *C) { - b, err := hex.DecodeString("{{.Bson}}") - c.Assert(err, IsNil) - - var resultD bson.D - testDecodeError(c, b, &resultD) -} -{{end}} -{{end}} -` - tmpl, err := template.New("").Parse(content) - if err != nil { - return nil, err - } - return tmpl, nil -} - -func cleanupFuncName(name string) string { - return strings.Map(func(r rune) rune { - if (r >= 48 && r <= 57) || (r >= 65 && r <= 90) || (r >= 97 && r <= 122) { - return r - } - return '_' - }, name) -} - -type testDef struct { - Description string `json:"description"` - BsonType string `json:"bson_type"` - TestKey string `json:"test_key"` - Valid []*valid `json:"valid"` - DecodeErrors []*decodeError `json:"decodeErrors"` - Deprecated bool `json:"deprecated"` -} - -func (t *testDef) GoType() string { - switch t.BsonType { - case "0x01": - return "float64" - case "0x02": - return "string" - case "0x03": - return "bson.D" - case "0x04": - return "[]interface{}" - case "0x05": - return "[]byte" - case "0x07": - return "bson.ObjectId" - case "0x08": - return "bool" - case "0x09": - return "time.Time" - case "0x0E": - return "string" - case "0x10": - return "int32" - case "0x12": - return "int64" - case "0x13": - return "bson.Decimal" - default: - return "interface{}" - } -} - -type valid struct { - Description string `json:"description"` - Bson string `json:"bson"` - CanonicalBson string `json:"canonical_bson"` - - Name string - StructTest bool - TestDef *testDef -} - -type decodeError struct { - Description string `json:"description"` - Bson string `json:"bson"` - - Name string -} diff --git a/vendor/github.com/hashicorp/hcl/.gitignore b/vendor/github.com/hashicorp/hcl/.gitignore index 822fa09f5..15586a2b5 100644 --- a/vendor/github.com/hashicorp/hcl/.gitignore +++ b/vendor/github.com/hashicorp/hcl/.gitignore @@ -1,9 +1,9 @@ -y.output - -# ignore intellij files -.idea -*.iml -*.ipr -*.iws - -*.test +y.output + +# ignore intellij files +.idea +*.iml +*.ipr +*.iws + +*.test diff --git a/vendor/github.com/hashicorp/hcl/Makefile b/vendor/github.com/hashicorp/hcl/Makefile index 9fafd5017..84fd743f5 100644 --- a/vendor/github.com/hashicorp/hcl/Makefile +++ b/vendor/github.com/hashicorp/hcl/Makefile @@ -1,18 +1,18 @@ -TEST?=./... - -default: test - -fmt: generate - go fmt ./... - -test: generate - go get -t ./... - go test $(TEST) $(TESTARGS) - -generate: - go generate ./... - -updatedeps: - go get -u golang.org/x/tools/cmd/stringer - -.PHONY: default generate test updatedeps +TEST?=./... + +default: test + +fmt: generate + go fmt ./... + +test: generate + go get -t ./... + go test $(TEST) $(TESTARGS) + +generate: + go generate ./... + +updatedeps: + go get -u golang.org/x/tools/cmd/stringer + +.PHONY: default generate test updatedeps diff --git a/vendor/github.com/pelletier/go-toml/example-crlf.toml b/vendor/github.com/pelletier/go-toml/example-crlf.toml index 3d902f282..12950a163 100644 --- a/vendor/github.com/pelletier/go-toml/example-crlf.toml +++ b/vendor/github.com/pelletier/go-toml/example-crlf.toml @@ -1,29 +1,29 @@ -# This is a TOML document. Boom. - -title = "TOML Example" - -[owner] -name = "Tom Preston-Werner" -organization = "GitHub" -bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." -dob = 1979-05-27T07:32:00Z # First class dates? Why not? - -[database] -server = "192.168.1.1" -ports = [ 8001, 8001, 8002 ] -connection_max = 5000 -enabled = true - -[servers] - - # You can indent as you please. Tabs or spaces. TOML don't care. - [servers.alpha] - ip = "10.0.0.1" - dc = "eqdc10" - - [servers.beta] - ip = "10.0.0.2" - dc = "eqdc10" - -[clients] -data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it +# This is a TOML document. Boom. + +title = "TOML Example" + +[owner] +name = "Tom Preston-Werner" +organization = "GitHub" +bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." +dob = 1979-05-27T07:32:00Z # First class dates? Why not? + +[database] +server = "192.168.1.1" +ports = [ 8001, 8001, 8002 ] +connection_max = 5000 +enabled = true + +[servers] + + # You can indent as you please. Tabs or spaces. TOML don't care. + [servers.alpha] + ip = "10.0.0.1" + dc = "eqdc10" + + [servers.beta] + ip = "10.0.0.2" + dc = "eqdc10" + +[clients] +data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it diff --git a/vendor/github.com/sirupsen/logrus/appveyor.yml b/vendor/github.com/sirupsen/logrus/appveyor.yml index b4ffca275..96c2ce15f 100644 --- a/vendor/github.com/sirupsen/logrus/appveyor.yml +++ b/vendor/github.com/sirupsen/logrus/appveyor.yml @@ -1,14 +1,14 @@ -version: "{build}" -platform: x64 -clone_folder: c:\gopath\src\github.com\sirupsen\logrus -environment: - GOPATH: c:\gopath -branches: - only: - - master -install: - - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% - - go version -build_script: - - go get -t - - go test +version: "{build}" +platform: x64 +clone_folder: c:\gopath\src\github.com\sirupsen\logrus +environment: + GOPATH: c:\gopath +branches: + only: + - master +install: + - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% + - go version +build_script: + - go get -t + - go test diff --git a/vendor/github.com/spf13/afero/.travis.yml b/vendor/github.com/spf13/afero/.travis.yml index 8fc1261cb..0637db726 100644 --- a/vendor/github.com/spf13/afero/.travis.yml +++ b/vendor/github.com/spf13/afero/.travis.yml @@ -1,21 +1,21 @@ -sudo: false -language: go - -go: - - 1.9 - - "1.10" - - tip - -os: - - linux - - osx - -matrix: - allow_failures: - - go: tip - fast_finish: true - -script: - - go build - - go test -race -v ./... - +sudo: false +language: go + +go: + - 1.9 + - "1.10" + - tip + +os: + - linux + - osx + +matrix: + allow_failures: + - go: tip + fast_finish: true + +script: + - go build + - go test -race -v ./... + diff --git a/vendor/golang.org/x/net/html/atom/gen.go b/vendor/golang.org/x/net/html/atom/gen.go deleted file mode 100644 index 5d052781b..000000000 --- a/vendor/golang.org/x/net/html/atom/gen.go +++ /dev/null @@ -1,712 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -//go:generate go run gen.go -//go:generate go run gen.go -test - -package main - -import ( - "bytes" - "flag" - "fmt" - "go/format" - "io/ioutil" - "math/rand" - "os" - "sort" - "strings" -) - -// identifier converts s to a Go exported identifier. -// It converts "div" to "Div" and "accept-charset" to "AcceptCharset". -func identifier(s string) string { - b := make([]byte, 0, len(s)) - cap := true - for _, c := range s { - if c == '-' { - cap = true - continue - } - if cap && 'a' <= c && c <= 'z' { - c -= 'a' - 'A' - } - cap = false - b = append(b, byte(c)) - } - return string(b) -} - -var test = flag.Bool("test", false, "generate table_test.go") - -func genFile(name string, buf *bytes.Buffer) { - b, err := format.Source(buf.Bytes()) - if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - if err := ioutil.WriteFile(name, b, 0644); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func main() { - flag.Parse() - - var all []string - all = append(all, elements...) - all = append(all, attributes...) - all = append(all, eventHandlers...) - all = append(all, extra...) - sort.Strings(all) - - // uniq - lists have dups - w := 0 - for _, s := range all { - if w == 0 || all[w-1] != s { - all[w] = s - w++ - } - } - all = all[:w] - - if *test { - var buf bytes.Buffer - fmt.Fprintln(&buf, "// Code generated by go generate gen.go; DO NOT EDIT.\n") - fmt.Fprintln(&buf, "//go:generate go run gen.go -test\n") - fmt.Fprintln(&buf, "package atom\n") - fmt.Fprintln(&buf, "var testAtomList = []string{") - for _, s := range all { - fmt.Fprintf(&buf, "\t%q,\n", s) - } - fmt.Fprintln(&buf, "}") - - genFile("table_test.go", &buf) - return - } - - // Find hash that minimizes table size. - var best *table - for i := 0; i < 1000000; i++ { - if best != nil && 1<<(best.k-1) < len(all) { - break - } - h := rand.Uint32() - for k := uint(0); k <= 16; k++ { - if best != nil && k >= best.k { - break - } - var t table - if t.init(h, k, all) { - best = &t - break - } - } - } - if best == nil { - fmt.Fprintf(os.Stderr, "failed to construct string table\n") - os.Exit(1) - } - - // Lay out strings, using overlaps when possible. - layout := append([]string{}, all...) - - // Remove strings that are substrings of other strings - for changed := true; changed; { - changed = false - for i, s := range layout { - if s == "" { - continue - } - for j, t := range layout { - if i != j && t != "" && strings.Contains(s, t) { - changed = true - layout[j] = "" - } - } - } - } - - // Join strings where one suffix matches another prefix. - for { - // Find best i, j, k such that layout[i][len-k:] == layout[j][:k], - // maximizing overlap length k. - besti := -1 - bestj := -1 - bestk := 0 - for i, s := range layout { - if s == "" { - continue - } - for j, t := range layout { - if i == j { - continue - } - for k := bestk + 1; k <= len(s) && k <= len(t); k++ { - if s[len(s)-k:] == t[:k] { - besti = i - bestj = j - bestk = k - } - } - } - } - if bestk > 0 { - layout[besti] += layout[bestj][bestk:] - layout[bestj] = "" - continue - } - break - } - - text := strings.Join(layout, "") - - atom := map[string]uint32{} - for _, s := range all { - off := strings.Index(text, s) - if off < 0 { - panic("lost string " + s) - } - atom[s] = uint32(off<<8 | len(s)) - } - - var buf bytes.Buffer - // Generate the Go code. - fmt.Fprintln(&buf, "// Code generated by go generate gen.go; DO NOT EDIT.\n") - fmt.Fprintln(&buf, "//go:generate go run gen.go\n") - fmt.Fprintln(&buf, "package atom\n\nconst (") - - // compute max len - maxLen := 0 - for _, s := range all { - if maxLen < len(s) { - maxLen = len(s) - } - fmt.Fprintf(&buf, "\t%s Atom = %#x\n", identifier(s), atom[s]) - } - fmt.Fprintln(&buf, ")\n") - - fmt.Fprintf(&buf, "const hash0 = %#x\n\n", best.h0) - fmt.Fprintf(&buf, "const maxAtomLen = %d\n\n", maxLen) - - fmt.Fprintf(&buf, "var table = [1<<%d]Atom{\n", best.k) - for i, s := range best.tab { - if s == "" { - continue - } - fmt.Fprintf(&buf, "\t%#x: %#x, // %s\n", i, atom[s], s) - } - fmt.Fprintf(&buf, "}\n") - datasize := (1 << best.k) * 4 - - fmt.Fprintln(&buf, "const atomText =") - textsize := len(text) - for len(text) > 60 { - fmt.Fprintf(&buf, "\t%q +\n", text[:60]) - text = text[60:] - } - fmt.Fprintf(&buf, "\t%q\n\n", text) - - genFile("table.go", &buf) - - fmt.Fprintf(os.Stdout, "%d atoms; %d string bytes + %d tables = %d total data\n", len(all), textsize, datasize, textsize+datasize) -} - -type byLen []string - -func (x byLen) Less(i, j int) bool { return len(x[i]) > len(x[j]) } -func (x byLen) Swap(i, j int) { x[i], x[j] = x[j], x[i] } -func (x byLen) Len() int { return len(x) } - -// fnv computes the FNV hash with an arbitrary starting value h. -func fnv(h uint32, s string) uint32 { - for i := 0; i < len(s); i++ { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -// A table represents an attempt at constructing the lookup table. -// The lookup table uses cuckoo hashing, meaning that each string -// can be found in one of two positions. -type table struct { - h0 uint32 - k uint - mask uint32 - tab []string -} - -// hash returns the two hashes for s. -func (t *table) hash(s string) (h1, h2 uint32) { - h := fnv(t.h0, s) - h1 = h & t.mask - h2 = (h >> 16) & t.mask - return -} - -// init initializes the table with the given parameters. -// h0 is the initial hash value, -// k is the number of bits of hash value to use, and -// x is the list of strings to store in the table. -// init returns false if the table cannot be constructed. -func (t *table) init(h0 uint32, k uint, x []string) bool { - t.h0 = h0 - t.k = k - t.tab = make([]string, 1< len(t.tab) { - return false - } - s := t.tab[i] - h1, h2 := t.hash(s) - j := h1 + h2 - i - if t.tab[j] != "" && !t.push(j, depth+1) { - return false - } - t.tab[j] = s - return true -} - -// The lists of element names and attribute keys were taken from -// https://html.spec.whatwg.org/multipage/indices.html#index -// as of the "HTML Living Standard - Last Updated 16 April 2018" version. - -// "command", "keygen" and "menuitem" have been removed from the spec, -// but are kept here for backwards compatibility. -var elements = []string{ - "a", - "abbr", - "address", - "area", - "article", - "aside", - "audio", - "b", - "base", - "bdi", - "bdo", - "blockquote", - "body", - "br", - "button", - "canvas", - "caption", - "cite", - "code", - "col", - "colgroup", - "command", - "data", - "datalist", - "dd", - "del", - "details", - "dfn", - "dialog", - "div", - "dl", - "dt", - "em", - "embed", - "fieldset", - "figcaption", - "figure", - "footer", - "form", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "head", - "header", - "hgroup", - "hr", - "html", - "i", - "iframe", - "img", - "input", - "ins", - "kbd", - "keygen", - "label", - "legend", - "li", - "link", - "main", - "map", - "mark", - "menu", - "menuitem", - "meta", - "meter", - "nav", - "noscript", - "object", - "ol", - "optgroup", - "option", - "output", - "p", - "param", - "picture", - "pre", - "progress", - "q", - "rp", - "rt", - "ruby", - "s", - "samp", - "script", - "section", - "select", - "slot", - "small", - "source", - "span", - "strong", - "style", - "sub", - "summary", - "sup", - "table", - "tbody", - "td", - "template", - "textarea", - "tfoot", - "th", - "thead", - "time", - "title", - "tr", - "track", - "u", - "ul", - "var", - "video", - "wbr", -} - -// https://html.spec.whatwg.org/multipage/indices.html#attributes-3 -// -// "challenge", "command", "contextmenu", "dropzone", "icon", "keytype", "mediagroup", -// "radiogroup", "spellcheck", "scoped", "seamless", "sortable" and "sorted" have been removed from the spec, -// but are kept here for backwards compatibility. -var attributes = []string{ - "abbr", - "accept", - "accept-charset", - "accesskey", - "action", - "allowfullscreen", - "allowpaymentrequest", - "allowusermedia", - "alt", - "as", - "async", - "autocomplete", - "autofocus", - "autoplay", - "challenge", - "charset", - "checked", - "cite", - "class", - "color", - "cols", - "colspan", - "command", - "content", - "contenteditable", - "contextmenu", - "controls", - "coords", - "crossorigin", - "data", - "datetime", - "default", - "defer", - "dir", - "dirname", - "disabled", - "download", - "draggable", - "dropzone", - "enctype", - "for", - "form", - "formaction", - "formenctype", - "formmethod", - "formnovalidate", - "formtarget", - "headers", - "height", - "hidden", - "high", - "href", - "hreflang", - "http-equiv", - "icon", - "id", - "inputmode", - "integrity", - "is", - "ismap", - "itemid", - "itemprop", - "itemref", - "itemscope", - "itemtype", - "keytype", - "kind", - "label", - "lang", - "list", - "loop", - "low", - "manifest", - "max", - "maxlength", - "media", - "mediagroup", - "method", - "min", - "minlength", - "multiple", - "muted", - "name", - "nomodule", - "nonce", - "novalidate", - "open", - "optimum", - "pattern", - "ping", - "placeholder", - "playsinline", - "poster", - "preload", - "radiogroup", - "readonly", - "referrerpolicy", - "rel", - "required", - "reversed", - "rows", - "rowspan", - "sandbox", - "spellcheck", - "scope", - "scoped", - "seamless", - "selected", - "shape", - "size", - "sizes", - "sortable", - "sorted", - "slot", - "span", - "spellcheck", - "src", - "srcdoc", - "srclang", - "srcset", - "start", - "step", - "style", - "tabindex", - "target", - "title", - "translate", - "type", - "typemustmatch", - "updateviacache", - "usemap", - "value", - "width", - "workertype", - "wrap", -} - -// "onautocomplete", "onautocompleteerror", "onmousewheel", -// "onshow" and "onsort" have been removed from the spec, -// but are kept here for backwards compatibility. -var eventHandlers = []string{ - "onabort", - "onautocomplete", - "onautocompleteerror", - "onauxclick", - "onafterprint", - "onbeforeprint", - "onbeforeunload", - "onblur", - "oncancel", - "oncanplay", - "oncanplaythrough", - "onchange", - "onclick", - "onclose", - "oncontextmenu", - "oncopy", - "oncuechange", - "oncut", - "ondblclick", - "ondrag", - "ondragend", - "ondragenter", - "ondragexit", - "ondragleave", - "ondragover", - "ondragstart", - "ondrop", - "ondurationchange", - "onemptied", - "onended", - "onerror", - "onfocus", - "onhashchange", - "oninput", - "oninvalid", - "onkeydown", - "onkeypress", - "onkeyup", - "onlanguagechange", - "onload", - "onloadeddata", - "onloadedmetadata", - "onloadend", - "onloadstart", - "onmessage", - "onmessageerror", - "onmousedown", - "onmouseenter", - "onmouseleave", - "onmousemove", - "onmouseout", - "onmouseover", - "onmouseup", - "onmousewheel", - "onwheel", - "onoffline", - "ononline", - "onpagehide", - "onpageshow", - "onpaste", - "onpause", - "onplay", - "onplaying", - "onpopstate", - "onprogress", - "onratechange", - "onreset", - "onresize", - "onrejectionhandled", - "onscroll", - "onsecuritypolicyviolation", - "onseeked", - "onseeking", - "onselect", - "onshow", - "onsort", - "onstalled", - "onstorage", - "onsubmit", - "onsuspend", - "ontimeupdate", - "ontoggle", - "onunhandledrejection", - "onunload", - "onvolumechange", - "onwaiting", -} - -// extra are ad-hoc values not covered by any of the lists above. -var extra = []string{ - "acronym", - "align", - "annotation", - "annotation-xml", - "applet", - "basefont", - "bgsound", - "big", - "blink", - "center", - "color", - "desc", - "face", - "font", - "foreignObject", // HTML is case-insensitive, but SVG-embedded-in-HTML is case-sensitive. - "foreignobject", - "frame", - "frameset", - "image", - "isindex", - "listing", - "malignmark", - "marquee", - "math", - "mglyph", - "mi", - "mn", - "mo", - "ms", - "mtext", - "nobr", - "noembed", - "noframes", - "plaintext", - "prompt", - "public", - "rb", - "rtc", - "spacer", - "strike", - "svg", - "system", - "tt", - "xmp", -} diff --git a/vendor/golang.org/x/sys/unix/mkasm_darwin.go b/vendor/golang.org/x/sys/unix/mkasm_darwin.go deleted file mode 100644 index 4548b993d..000000000 --- a/vendor/golang.org/x/sys/unix/mkasm_darwin.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go. -//This program must be run after mksyscall.go. -package main - -import ( - "bytes" - "fmt" - "io/ioutil" - "log" - "os" - "strings" -) - -func main() { - in1, err := ioutil.ReadFile("syscall_darwin.go") - if err != nil { - log.Fatalf("can't open syscall_darwin.go: %s", err) - } - arch := os.Args[1] - in2, err := ioutil.ReadFile(fmt.Sprintf("syscall_darwin_%s.go", arch)) - if err != nil { - log.Fatalf("can't open syscall_darwin_%s.go: %s", arch, err) - } - in3, err := ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.go", arch)) - if err != nil { - log.Fatalf("can't open zsyscall_darwin_%s.go: %s", arch, err) - } - in := string(in1) + string(in2) + string(in3) - - trampolines := map[string]bool{} - - var out bytes.Buffer - - fmt.Fprintf(&out, "// go run mkasm_darwin.go %s\n", strings.Join(os.Args[1:], " ")) - fmt.Fprintf(&out, "// Code generated by the command above; DO NOT EDIT.\n") - fmt.Fprintf(&out, "\n") - fmt.Fprintf(&out, "// +build go1.12\n") - fmt.Fprintf(&out, "\n") - fmt.Fprintf(&out, "#include \"textflag.h\"\n") - for _, line := range strings.Split(in, "\n") { - if !strings.HasPrefix(line, "func ") || !strings.HasSuffix(line, "_trampoline()") { - continue - } - fn := line[5 : len(line)-13] - if !trampolines[fn] { - trampolines[fn] = true - fmt.Fprintf(&out, "TEXT ยท%s_trampoline(SB),NOSPLIT,$0-0\n", fn) - fmt.Fprintf(&out, "\tJMP\t%s(SB)\n", fn) - } - } - err = ioutil.WriteFile(fmt.Sprintf("zsyscall_darwin_%s.s", arch), out.Bytes(), 0644) - if err != nil { - log.Fatalf("can't write zsyscall_darwin_%s.s: %s", arch, err) - } -} diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go deleted file mode 100644 index 9feddd00c..000000000 --- a/vendor/golang.org/x/sys/unix/mkpost.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// mkpost processes the output of cgo -godefs to -// modify the generated types. It is used to clean up -// the sys API in an architecture specific manner. -// -// mkpost is run after cgo -godefs; see README.md. -package main - -import ( - "bytes" - "fmt" - "go/format" - "io/ioutil" - "log" - "os" - "regexp" -) - -func main() { - // Get the OS and architecture (using GOARCH_TARGET if it exists) - goos := os.Getenv("GOOS") - goarch := os.Getenv("GOARCH_TARGET") - if goarch == "" { - goarch = os.Getenv("GOARCH") - } - // Check that we are using the Docker-based build system if we should be. - if goos == "linux" { - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { - os.Stderr.WriteString("In the Docker-based build system, mkpost should not be called directly.\n") - os.Stderr.WriteString("See README.md\n") - os.Exit(1) - } - } - - b, err := ioutil.ReadAll(os.Stdin) - if err != nil { - log.Fatal(err) - } - - // Intentionally export __val fields in Fsid and Sigset_t - valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__val(\s+\S+\s+)}`) - b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$3}")) - - // Intentionally export __fds_bits field in FdSet - fdSetRegex := regexp.MustCompile(`type (FdSet) struct {(\s+)X__fds_bits(\s+\S+\s+)}`) - b = fdSetRegex.ReplaceAll(b, []byte("type $1 struct {${2}Bits$3}")) - - // If we have empty Ptrace structs, we should delete them. Only s390x emits - // nonempty Ptrace structs. - ptraceRexexp := regexp.MustCompile(`type Ptrace((Psw|Fpregs|Per) struct {\s*})`) - b = ptraceRexexp.ReplaceAll(b, nil) - - // Replace the control_regs union with a blank identifier for now. - controlRegsRegex := regexp.MustCompile(`(Control_regs)\s+\[0\]uint64`) - b = controlRegsRegex.ReplaceAll(b, []byte("_ [0]uint64")) - - // Remove fields that are added by glibc - // Note that this is unstable as the identifers are private. - removeFieldsRegex := regexp.MustCompile(`X__glibc\S*`) - b = removeFieldsRegex.ReplaceAll(b, []byte("_")) - - // Convert [65]int8 to [65]byte in Utsname members to simplify - // conversion to string; see golang.org/issue/20753 - convertUtsnameRegex := regexp.MustCompile(`((Sys|Node|Domain)name|Release|Version|Machine)(\s+)\[(\d+)\]u?int8`) - b = convertUtsnameRegex.ReplaceAll(b, []byte("$1$3[$4]byte")) - - // Convert [1024]int8 to [1024]byte in Ptmget members - convertPtmget := regexp.MustCompile(`([SC]n)(\s+)\[(\d+)\]u?int8`) - b = convertPtmget.ReplaceAll(b, []byte("$1[$3]byte")) - - // Remove spare fields (e.g. in Statx_t) - spareFieldsRegex := regexp.MustCompile(`X__spare\S*`) - b = spareFieldsRegex.ReplaceAll(b, []byte("_")) - - // Remove cgo padding fields - removePaddingFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`) - b = removePaddingFieldsRegex.ReplaceAll(b, []byte("_")) - - // Remove padding, hidden, or unused fields - removeFieldsRegex = regexp.MustCompile(`\b(X_\S+|Padding)`) - b = removeFieldsRegex.ReplaceAll(b, []byte("_")) - - // Remove the first line of warning from cgo - b = b[bytes.IndexByte(b, '\n')+1:] - // Modify the command in the header to include: - // mkpost, our own warning, and a build tag. - replacement := fmt.Sprintf(`$1 | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s,%s`, goarch, goos) - cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`) - b = cgoCommandRegex.ReplaceAll(b, []byte(replacement)) - - // gofmt - b, err = format.Source(b) - if err != nil { - log.Fatal(err) - } - - os.Stdout.Write(b) -} diff --git a/vendor/golang.org/x/sys/unix/mksyscall.go b/vendor/golang.org/x/sys/unix/mksyscall.go deleted file mode 100644 index e06e4253e..000000000 --- a/vendor/golang.org/x/sys/unix/mksyscall.go +++ /dev/null @@ -1,402 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -This program reads a file containing function prototypes -(like syscall_darwin.go) and generates system call bodies. -The prototypes are marked by lines beginning with "//sys" -and read like func declarations if //sys is replaced by func, but: - * The parameter lists must give a name for each argument. - This includes return parameters. - * The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. - * If the return parameter is an error number, it must be named errno. - -A line beginning with //sysnb is like //sys, except that the -goroutine will not be suspended during the execution of the system -call. This must only be used for system calls which can never -block, as otherwise the system call could cause all goroutines to -hang. -*/ -package main - -import ( - "bufio" - "flag" - "fmt" - "os" - "regexp" - "strings" -) - -var ( - b32 = flag.Bool("b32", false, "32bit big-endian") - l32 = flag.Bool("l32", false, "32bit little-endian") - plan9 = flag.Bool("plan9", false, "plan9") - openbsd = flag.Bool("openbsd", false, "openbsd") - netbsd = flag.Bool("netbsd", false, "netbsd") - dragonfly = flag.Bool("dragonfly", false, "dragonfly") - arm = flag.Bool("arm", false, "arm") // 64-bit value should use (even, odd)-pair - tags = flag.String("tags", "", "build tags") - filename = flag.String("output", "", "output file name (standard output if omitted)") -) - -// cmdLine returns this programs's commandline arguments -func cmdLine() string { - return "go run mksyscall.go " + strings.Join(os.Args[1:], " ") -} - -// buildTags returns build tags -func buildTags() string { - return *tags -} - -// Param is function parameter -type Param struct { - Name string - Type string -} - -// usage prints the program usage -func usage() { - fmt.Fprintf(os.Stderr, "usage: go run mksyscall.go [-b32 | -l32] [-tags x,y] [file ...]\n") - os.Exit(1) -} - -// parseParamList parses parameter list and returns a slice of parameters -func parseParamList(list string) []string { - list = strings.TrimSpace(list) - if list == "" { - return []string{} - } - return regexp.MustCompile(`\s*,\s*`).Split(list, -1) -} - -// parseParam splits a parameter into name and type -func parseParam(p string) Param { - ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) - if ps == nil { - fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) - os.Exit(1) - } - return Param{ps[1], ps[2]} -} - -func main() { - // Get the OS and architecture (using GOARCH_TARGET if it exists) - goos := os.Getenv("GOOS") - if goos == "" { - fmt.Fprintln(os.Stderr, "GOOS not defined in environment") - os.Exit(1) - } - goarch := os.Getenv("GOARCH_TARGET") - if goarch == "" { - goarch = os.Getenv("GOARCH") - } - - // Check that we are using the Docker-based build system if we should - if goos == "linux" { - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { - fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n") - fmt.Fprintf(os.Stderr, "See README.md\n") - os.Exit(1) - } - } - - flag.Usage = usage - flag.Parse() - if len(flag.Args()) <= 0 { - fmt.Fprintf(os.Stderr, "no files to parse provided\n") - usage() - } - - endianness := "" - if *b32 { - endianness = "big-endian" - } else if *l32 { - endianness = "little-endian" - } - - libc := false - if goos == "darwin" && strings.Contains(buildTags(), ",go1.12") { - libc = true - } - trampolines := map[string]bool{} - - text := "" - for _, path := range flag.Args() { - file, err := os.Open(path) - if err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - s := bufio.NewScanner(file) - for s.Scan() { - t := s.Text() - t = strings.TrimSpace(t) - t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) - nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) - if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { - continue - } - - // Line must be of the form - // func Open(path string, mode int, perm int) (fd int, errno error) - // Split into name, in params, out params. - f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$`).FindStringSubmatch(t) - if f == nil { - fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) - os.Exit(1) - } - funct, inps, outps, sysname := f[2], f[3], f[4], f[5] - - // Split argument lists on comma. - in := parseParamList(inps) - out := parseParamList(outps) - - // Try in vain to keep people from editing this file. - // The theory is that they jump into the middle of the file - // without reading the header. - text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" - - // Go function header. - outDecl := "" - if len(out) > 0 { - outDecl = fmt.Sprintf(" (%s)", strings.Join(out, ", ")) - } - text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outDecl) - - // Check if err return available - errvar := "" - for _, param := range out { - p := parseParam(param) - if p.Type == "error" { - errvar = p.Name - break - } - } - - // Prepare arguments to Syscall. - var args []string - n := 0 - for _, param := range in { - p := parseParam(param) - if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { - args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))") - } else if p.Type == "string" && errvar != "" { - text += fmt.Sprintf("\tvar _p%d *byte\n", n) - text += fmt.Sprintf("\t_p%d, %s = BytePtrFromString(%s)\n", n, errvar, p.Name) - text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) - args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) - n++ - } else if p.Type == "string" { - fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") - text += fmt.Sprintf("\tvar _p%d *byte\n", n) - text += fmt.Sprintf("\t_p%d, _ = BytePtrFromString(%s)\n", n, p.Name) - args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) - n++ - } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { - // Convert slice into pointer, length. - // Have to be careful not to take address of &a[0] if len == 0: - // pass dummy pointer in that case. - // Used to pass nil, but some OSes or simulators reject write(fd, nil, 0). - text += fmt.Sprintf("\tvar _p%d unsafe.Pointer\n", n) - text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = unsafe.Pointer(&%s[0])\n\t}", p.Name, n, p.Name) - text += fmt.Sprintf(" else {\n\t\t_p%d = unsafe.Pointer(&_zero)\n\t}\n", n) - args = append(args, fmt.Sprintf("uintptr(_p%d)", n), fmt.Sprintf("uintptr(len(%s))", p.Name)) - n++ - } else if p.Type == "int64" && (*openbsd || *netbsd) { - args = append(args, "0") - if endianness == "big-endian" { - args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) - } else if endianness == "little-endian" { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) - } else { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) - } - } else if p.Type == "int64" && *dragonfly { - if regexp.MustCompile(`^(?i)extp(read|write)`).FindStringSubmatch(funct) == nil { - args = append(args, "0") - } - if endianness == "big-endian" { - args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) - } else if endianness == "little-endian" { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) - } else { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) - } - } else if p.Type == "int64" && endianness != "" { - if len(args)%2 == 1 && *arm { - // arm abi specifies 64-bit argument uses - // (even, odd) pair - args = append(args, "0") - } - if endianness == "big-endian" { - args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) - } else { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) - } - } else { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) - } - } - - // Determine which form to use; pad args with zeros. - asm := "Syscall" - if nonblock != nil { - if errvar == "" && goos == "linux" { - asm = "RawSyscallNoError" - } else { - asm = "RawSyscall" - } - } else { - if errvar == "" && goos == "linux" { - asm = "SyscallNoError" - } - } - if len(args) <= 3 { - for len(args) < 3 { - args = append(args, "0") - } - } else if len(args) <= 6 { - asm += "6" - for len(args) < 6 { - args = append(args, "0") - } - } else if len(args) <= 9 { - asm += "9" - for len(args) < 9 { - args = append(args, "0") - } - } else { - fmt.Fprintf(os.Stderr, "%s:%s too many arguments to system call\n", path, funct) - } - - // System call number. - if sysname == "" { - sysname = "SYS_" + funct - sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) - sysname = strings.ToUpper(sysname) - } - - var libcFn string - if libc { - asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call - sysname = strings.TrimPrefix(sysname, "SYS_") // remove SYS_ - sysname = strings.ToLower(sysname) // lowercase - if sysname == "getdirentries64" { - // Special case - libSystem name and - // raw syscall name don't match. - sysname = "__getdirentries64" - } - libcFn = sysname - sysname = "funcPC(libc_" + sysname + "_trampoline)" - } - - // Actual call. - arglist := strings.Join(args, ", ") - call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist) - - // Assign return values. - body := "" - ret := []string{"_", "_", "_"} - doErrno := false - for i := 0; i < len(out); i++ { - p := parseParam(out[i]) - reg := "" - if p.Name == "err" && !*plan9 { - reg = "e1" - ret[2] = reg - doErrno = true - } else if p.Name == "err" && *plan9 { - ret[0] = "r0" - ret[2] = "e1" - break - } else { - reg = fmt.Sprintf("r%d", i) - ret[i] = reg - } - if p.Type == "bool" { - reg = fmt.Sprintf("%s != 0", reg) - } - if p.Type == "int64" && endianness != "" { - // 64-bit number in r1:r0 or r0:r1. - if i+2 > len(out) { - fmt.Fprintf(os.Stderr, "%s:%s not enough registers for int64 return\n", path, funct) - } - if endianness == "big-endian" { - reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1) - } else { - reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i) - } - ret[i] = fmt.Sprintf("r%d", i) - ret[i+1] = fmt.Sprintf("r%d", i+1) - } - if reg != "e1" || *plan9 { - body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) - } - } - if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" { - text += fmt.Sprintf("\t%s\n", call) - } else { - if errvar == "" && goos == "linux" { - // raw syscall without error on Linux, see golang.org/issue/22924 - text += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], call) - } else { - text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call) - } - } - text += body - - if *plan9 && ret[2] == "e1" { - text += "\tif int32(r0) == -1 {\n" - text += "\t\terr = e1\n" - text += "\t}\n" - } else if doErrno { - text += "\tif e1 != 0 {\n" - text += "\t\terr = errnoErr(e1)\n" - text += "\t}\n" - } - text += "\treturn\n" - text += "}\n\n" - - if libc && !trampolines[libcFn] { - // some system calls share a trampoline, like read and readlen. - trampolines[libcFn] = true - // Declare assembly trampoline. - text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn) - // Assembly trampoline calls the libc_* function, which this magic - // redirects to use the function from libSystem. - text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn) - text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn) - text += "\n" - } - } - if err := s.Err(); err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - file.Close() - } - fmt.Printf(srcTemplate, cmdLine(), buildTags(), text) -} - -const srcTemplate = `// %s -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -%s -` diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go deleted file mode 100644 index f2c58fb7c..000000000 --- a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go +++ /dev/null @@ -1,404 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -This program reads a file containing function prototypes -(like syscall_aix.go) and generates system call bodies. -The prototypes are marked by lines beginning with "//sys" -and read like func declarations if //sys is replaced by func, but: - * The parameter lists must give a name for each argument. - This includes return parameters. - * The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. - * If the return parameter is an error number, it must be named err. - * If go func name needs to be different than its libc name, - * or the function is not in libc, name could be specified - * at the end, after "=" sign, like - //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt -*/ -package main - -import ( - "bufio" - "flag" - "fmt" - "os" - "regexp" - "strings" -) - -var ( - b32 = flag.Bool("b32", false, "32bit big-endian") - l32 = flag.Bool("l32", false, "32bit little-endian") - aix = flag.Bool("aix", false, "aix") - tags = flag.String("tags", "", "build tags") -) - -// cmdLine returns this programs's commandline arguments -func cmdLine() string { - return "go run mksyscall_aix_ppc.go " + strings.Join(os.Args[1:], " ") -} - -// buildTags returns build tags -func buildTags() string { - return *tags -} - -// Param is function parameter -type Param struct { - Name string - Type string -} - -// usage prints the program usage -func usage() { - fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc.go [-b32 | -l32] [-tags x,y] [file ...]\n") - os.Exit(1) -} - -// parseParamList parses parameter list and returns a slice of parameters -func parseParamList(list string) []string { - list = strings.TrimSpace(list) - if list == "" { - return []string{} - } - return regexp.MustCompile(`\s*,\s*`).Split(list, -1) -} - -// parseParam splits a parameter into name and type -func parseParam(p string) Param { - ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) - if ps == nil { - fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) - os.Exit(1) - } - return Param{ps[1], ps[2]} -} - -func main() { - flag.Usage = usage - flag.Parse() - if len(flag.Args()) <= 0 { - fmt.Fprintf(os.Stderr, "no files to parse provided\n") - usage() - } - - endianness := "" - if *b32 { - endianness = "big-endian" - } else if *l32 { - endianness = "little-endian" - } - - pack := "" - text := "" - cExtern := "/*\n#include \n#include \n" - for _, path := range flag.Args() { - file, err := os.Open(path) - if err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - s := bufio.NewScanner(file) - for s.Scan() { - t := s.Text() - t = strings.TrimSpace(t) - t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) - if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" { - pack = p[1] - } - nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) - if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { - continue - } - - // Line must be of the form - // func Open(path string, mode int, perm int) (fd int, err error) - // Split into name, in params, out params. - f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t) - if f == nil { - fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) - os.Exit(1) - } - funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6] - - // Split argument lists on comma. - in := parseParamList(inps) - out := parseParamList(outps) - - inps = strings.Join(in, ", ") - outps = strings.Join(out, ", ") - - // Try in vain to keep people from editing this file. - // The theory is that they jump into the middle of the file - // without reading the header. - text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" - - // Check if value return, err return available - errvar := "" - retvar := "" - rettype := "" - for _, param := range out { - p := parseParam(param) - if p.Type == "error" { - errvar = p.Name - } else { - retvar = p.Name - rettype = p.Type - } - } - - // System call name. - if sysname == "" { - sysname = funct - } - sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) - sysname = strings.ToLower(sysname) // All libc functions are lowercase. - - cRettype := "" - if rettype == "unsafe.Pointer" { - cRettype = "uintptr_t" - } else if rettype == "uintptr" { - cRettype = "uintptr_t" - } else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil { - cRettype = "uintptr_t" - } else if rettype == "int" { - cRettype = "int" - } else if rettype == "int32" { - cRettype = "int" - } else if rettype == "int64" { - cRettype = "long long" - } else if rettype == "uint32" { - cRettype = "unsigned int" - } else if rettype == "uint64" { - cRettype = "unsigned long long" - } else { - cRettype = "int" - } - if sysname == "exit" { - cRettype = "void" - } - - // Change p.Types to c - var cIn []string - for _, param := range in { - p := parseParam(param) - if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { - cIn = append(cIn, "uintptr_t") - } else if p.Type == "string" { - cIn = append(cIn, "uintptr_t") - } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { - cIn = append(cIn, "uintptr_t", "size_t") - } else if p.Type == "unsafe.Pointer" { - cIn = append(cIn, "uintptr_t") - } else if p.Type == "uintptr" { - cIn = append(cIn, "uintptr_t") - } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { - cIn = append(cIn, "uintptr_t") - } else if p.Type == "int" { - cIn = append(cIn, "int") - } else if p.Type == "int32" { - cIn = append(cIn, "int") - } else if p.Type == "int64" { - cIn = append(cIn, "long long") - } else if p.Type == "uint32" { - cIn = append(cIn, "unsigned int") - } else if p.Type == "uint64" { - cIn = append(cIn, "unsigned long long") - } else { - cIn = append(cIn, "int") - } - } - - if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" { - // Imports of system calls from libc - cExtern += fmt.Sprintf("%s %s", cRettype, sysname) - cIn := strings.Join(cIn, ", ") - cExtern += fmt.Sprintf("(%s);\n", cIn) - } - - // So file name. - if *aix { - if modname == "" { - modname = "libc.a/shr_64.o" - } else { - fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct) - os.Exit(1) - } - } - - strconvfunc := "C.CString" - - // Go function header. - if outps != "" { - outps = fmt.Sprintf(" (%s)", outps) - } - if text != "" { - text += "\n" - } - - text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps) - - // Prepare arguments to Syscall. - var args []string - n := 0 - argN := 0 - for _, param := range in { - p := parseParam(param) - if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { - args = append(args, "C.uintptr_t(uintptr(unsafe.Pointer("+p.Name+")))") - } else if p.Type == "string" && errvar != "" { - text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name) - args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n)) - n++ - } else if p.Type == "string" { - fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") - text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name) - args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n)) - n++ - } else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil { - // Convert slice into pointer, length. - // Have to be careful not to take address of &a[0] if len == 0: - // pass nil in that case. - text += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1]) - text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name) - args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(unsafe.Pointer(_p%d)))", n)) - n++ - text += fmt.Sprintf("\tvar _p%d int\n", n) - text += fmt.Sprintf("\t_p%d = len(%s)\n", n, p.Name) - args = append(args, fmt.Sprintf("C.size_t(_p%d)", n)) - n++ - } else if p.Type == "int64" && endianness != "" { - if endianness == "big-endian" { - args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) - } else { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) - } - n++ - } else if p.Type == "bool" { - text += fmt.Sprintf("\tvar _p%d uint32\n", n) - text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n) - args = append(args, fmt.Sprintf("_p%d", n)) - } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { - args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name)) - } else if p.Type == "unsafe.Pointer" { - args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name)) - } else if p.Type == "int" { - if (argN == 2) && ((funct == "readlen") || (funct == "writelen")) { - args = append(args, fmt.Sprintf("C.size_t(%s)", p.Name)) - } else if argN == 0 && funct == "fcntl" { - args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) - } else if (argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt")) { - args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) - } else { - args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) - } - } else if p.Type == "int32" { - args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) - } else if p.Type == "int64" { - args = append(args, fmt.Sprintf("C.longlong(%s)", p.Name)) - } else if p.Type == "uint32" { - args = append(args, fmt.Sprintf("C.uint(%s)", p.Name)) - } else if p.Type == "uint64" { - args = append(args, fmt.Sprintf("C.ulonglong(%s)", p.Name)) - } else if p.Type == "uintptr" { - args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) - } else { - args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) - } - argN++ - } - - // Actual call. - arglist := strings.Join(args, ", ") - call := "" - if sysname == "exit" { - if errvar != "" { - call += "er :=" - } else { - call += "" - } - } else if errvar != "" { - call += "r0,er :=" - } else if retvar != "" { - call += "r0,_ :=" - } else { - call += "" - } - call += fmt.Sprintf("C.%s(%s)", sysname, arglist) - - // Assign return values. - body := "" - for i := 0; i < len(out); i++ { - p := parseParam(out[i]) - reg := "" - if p.Name == "err" { - reg = "e1" - } else { - reg = "r0" - } - if reg != "e1" { - body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) - } - } - - // verify return - if sysname != "exit" && errvar != "" { - if regexp.MustCompile(`^uintptr`).FindStringSubmatch(cRettype) != nil { - body += "\tif (uintptr(r0) ==^uintptr(0) && er != nil) {\n" - body += fmt.Sprintf("\t\t%s = er\n", errvar) - body += "\t}\n" - } else { - body += "\tif (r0 ==-1 && er != nil) {\n" - body += fmt.Sprintf("\t\t%s = er\n", errvar) - body += "\t}\n" - } - } else if errvar != "" { - body += "\tif (er != nil) {\n" - body += fmt.Sprintf("\t\t%s = er\n", errvar) - body += "\t}\n" - } - - text += fmt.Sprintf("\t%s\n", call) - text += body - - text += "\treturn\n" - text += "}\n" - } - if err := s.Err(); err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - file.Close() - } - imp := "" - if pack != "unix" { - imp = "import \"golang.org/x/sys/unix\"\n" - - } - fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, cExtern, imp, text) -} - -const srcTemplate = `// %s -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s - -package %s - - -%s -*/ -import "C" -import ( - "unsafe" -) - - -%s - -%s -` diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go deleted file mode 100644 index 45b442908..000000000 --- a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go +++ /dev/null @@ -1,602 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -This program reads a file containing function prototypes -(like syscall_aix.go) and generates system call bodies. -The prototypes are marked by lines beginning with "//sys" -and read like func declarations if //sys is replaced by func, but: - * The parameter lists must give a name for each argument. - This includes return parameters. - * The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. - * If the return parameter is an error number, it must be named err. - * If go func name needs to be different than its libc name, - * or the function is not in libc, name could be specified - * at the end, after "=" sign, like - //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt - - -This program will generate three files and handle both gc and gccgo implementation: - - zsyscall_aix_ppc64.go: the common part of each implementation (error handler, pointer creation) - - zsyscall_aix_ppc64_gc.go: gc part with //go_cgo_import_dynamic and a call to syscall6 - - zsyscall_aix_ppc64_gccgo.go: gccgo part with C function and conversion to C type. - - The generated code looks like this - -zsyscall_aix_ppc64.go -func asyscall(...) (n int, err error) { - // Pointer Creation - r1, e1 := callasyscall(...) - // Type Conversion - // Error Handler - return -} - -zsyscall_aix_ppc64_gc.go -//go:cgo_import_dynamic libc_asyscall asyscall "libc.a/shr_64.o" -//go:linkname libc_asyscall libc_asyscall -var asyscall syscallFunc - -func callasyscall(...) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_asyscall)), "nb_args", ... ) - return -} - -zsyscall_aix_ppc64_ggcgo.go - -// int asyscall(...) - -import "C" - -func callasyscall(...) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.asyscall(...)) - e1 = syscall.GetErrno() - return -} -*/ - -package main - -import ( - "bufio" - "flag" - "fmt" - "io/ioutil" - "os" - "regexp" - "strings" -) - -var ( - b32 = flag.Bool("b32", false, "32bit big-endian") - l32 = flag.Bool("l32", false, "32bit little-endian") - aix = flag.Bool("aix", false, "aix") - tags = flag.String("tags", "", "build tags") -) - -// cmdLine returns this programs's commandline arguments -func cmdLine() string { - return "go run mksyscall_aix_ppc64.go " + strings.Join(os.Args[1:], " ") -} - -// buildTags returns build tags -func buildTags() string { - return *tags -} - -// Param is function parameter -type Param struct { - Name string - Type string -} - -// usage prints the program usage -func usage() { - fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc64.go [-b32 | -l32] [-tags x,y] [file ...]\n") - os.Exit(1) -} - -// parseParamList parses parameter list and returns a slice of parameters -func parseParamList(list string) []string { - list = strings.TrimSpace(list) - if list == "" { - return []string{} - } - return regexp.MustCompile(`\s*,\s*`).Split(list, -1) -} - -// parseParam splits a parameter into name and type -func parseParam(p string) Param { - ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) - if ps == nil { - fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) - os.Exit(1) - } - return Param{ps[1], ps[2]} -} - -func main() { - flag.Usage = usage - flag.Parse() - if len(flag.Args()) <= 0 { - fmt.Fprintf(os.Stderr, "no files to parse provided\n") - usage() - } - - endianness := "" - if *b32 { - endianness = "big-endian" - } else if *l32 { - endianness = "little-endian" - } - - pack := "" - // GCCGO - textgccgo := "" - cExtern := "/*\n#include \n" - // GC - textgc := "" - dynimports := "" - linknames := "" - var vars []string - // COMMON - textcommon := "" - for _, path := range flag.Args() { - file, err := os.Open(path) - if err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - s := bufio.NewScanner(file) - for s.Scan() { - t := s.Text() - t = strings.TrimSpace(t) - t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) - if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" { - pack = p[1] - } - nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) - if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { - continue - } - - // Line must be of the form - // func Open(path string, mode int, perm int) (fd int, err error) - // Split into name, in params, out params. - f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t) - if f == nil { - fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) - os.Exit(1) - } - funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6] - - // Split argument lists on comma. - in := parseParamList(inps) - out := parseParamList(outps) - - inps = strings.Join(in, ", ") - outps = strings.Join(out, ", ") - - if sysname == "" { - sysname = funct - } - - onlyCommon := false - if funct == "readlen" || funct == "writelen" || funct == "FcntlInt" || funct == "FcntlFlock" { - // This function call another syscall which is already implemented. - // Therefore, the gc and gccgo part must not be generated. - onlyCommon = true - } - - // Try in vain to keep people from editing this file. - // The theory is that they jump into the middle of the file - // without reading the header. - - textcommon += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" - if !onlyCommon { - textgccgo += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" - textgc += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" - } - - // Check if value return, err return available - errvar := "" - rettype := "" - for _, param := range out { - p := parseParam(param) - if p.Type == "error" { - errvar = p.Name - } else { - rettype = p.Type - } - } - - sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) - sysname = strings.ToLower(sysname) // All libc functions are lowercase. - - // GCCGO Prototype return type - cRettype := "" - if rettype == "unsafe.Pointer" { - cRettype = "uintptr_t" - } else if rettype == "uintptr" { - cRettype = "uintptr_t" - } else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil { - cRettype = "uintptr_t" - } else if rettype == "int" { - cRettype = "int" - } else if rettype == "int32" { - cRettype = "int" - } else if rettype == "int64" { - cRettype = "long long" - } else if rettype == "uint32" { - cRettype = "unsigned int" - } else if rettype == "uint64" { - cRettype = "unsigned long long" - } else { - cRettype = "int" - } - if sysname == "exit" { - cRettype = "void" - } - - // GCCGO Prototype arguments type - var cIn []string - for i, param := range in { - p := parseParam(param) - if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { - cIn = append(cIn, "uintptr_t") - } else if p.Type == "string" { - cIn = append(cIn, "uintptr_t") - } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { - cIn = append(cIn, "uintptr_t", "size_t") - } else if p.Type == "unsafe.Pointer" { - cIn = append(cIn, "uintptr_t") - } else if p.Type == "uintptr" { - cIn = append(cIn, "uintptr_t") - } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { - cIn = append(cIn, "uintptr_t") - } else if p.Type == "int" { - if (i == 0 || i == 2) && funct == "fcntl" { - // These fcntl arguments needs to be uintptr to be able to call FcntlInt and FcntlFlock - cIn = append(cIn, "uintptr_t") - } else { - cIn = append(cIn, "int") - } - - } else if p.Type == "int32" { - cIn = append(cIn, "int") - } else if p.Type == "int64" { - cIn = append(cIn, "long long") - } else if p.Type == "uint32" { - cIn = append(cIn, "unsigned int") - } else if p.Type == "uint64" { - cIn = append(cIn, "unsigned long long") - } else { - cIn = append(cIn, "int") - } - } - - if !onlyCommon { - // GCCGO Prototype Generation - // Imports of system calls from libc - cExtern += fmt.Sprintf("%s %s", cRettype, sysname) - cIn := strings.Join(cIn, ", ") - cExtern += fmt.Sprintf("(%s);\n", cIn) - } - // GC Library name - if modname == "" { - modname = "libc.a/shr_64.o" - } else { - fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct) - os.Exit(1) - } - sysvarname := fmt.Sprintf("libc_%s", sysname) - - if !onlyCommon { - // GC Runtime import of function to allow cross-platform builds. - dynimports += fmt.Sprintf("//go:cgo_import_dynamic %s %s \"%s\"\n", sysvarname, sysname, modname) - // GC Link symbol to proc address variable. - linknames += fmt.Sprintf("//go:linkname %s %s\n", sysvarname, sysvarname) - // GC Library proc address variable. - vars = append(vars, sysvarname) - } - - strconvfunc := "BytePtrFromString" - strconvtype := "*byte" - - // Go function header. - if outps != "" { - outps = fmt.Sprintf(" (%s)", outps) - } - if textcommon != "" { - textcommon += "\n" - } - - textcommon += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps) - - // Prepare arguments tocall. - var argscommon []string // Arguments in the common part - var argscall []string // Arguments for call prototype - var argsgc []string // Arguments for gc call (with syscall6) - var argsgccgo []string // Arguments for gccgo call (with C.name_of_syscall) - n := 0 - argN := 0 - for _, param := range in { - p := parseParam(param) - if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { - argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(%s))", p.Name)) - argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) - argsgc = append(argsgc, p.Name) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) - } else if p.Type == "string" && errvar != "" { - textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) - textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name) - textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) - - argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) - argscall = append(argscall, fmt.Sprintf("_p%d uintptr ", n)) - argsgc = append(argsgc, fmt.Sprintf("_p%d", n)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n)) - n++ - } else if p.Type == "string" { - fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") - textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) - textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name) - textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) - - argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) - argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n)) - argsgc = append(argsgc, fmt.Sprintf("_p%d", n)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n)) - n++ - } else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil { - // Convert slice into pointer, length. - // Have to be careful not to take address of &a[0] if len == 0: - // pass nil in that case. - textcommon += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1]) - textcommon += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name) - argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("len(%s)", p.Name)) - argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n), fmt.Sprintf("_lenp%d int", n)) - argsgc = append(argsgc, fmt.Sprintf("_p%d", n), fmt.Sprintf("uintptr(_lenp%d)", n)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n), fmt.Sprintf("C.size_t(_lenp%d)", n)) - n++ - } else if p.Type == "int64" && endianness != "" { - fmt.Fprintf(os.Stderr, path+":"+funct+" uses int64 with 32 bits mode. Case not yet implemented\n") - } else if p.Type == "bool" { - fmt.Fprintf(os.Stderr, path+":"+funct+" uses bool. Case not yet implemented\n") - } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil || p.Type == "unsafe.Pointer" { - argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name)) - argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) - argsgc = append(argsgc, p.Name) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) - } else if p.Type == "int" { - if (argN == 0 || argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt") || (funct == "FcntlFlock")) { - // These fcntl arguments need to be uintptr to be able to call FcntlInt and FcntlFlock - argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name)) - argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) - argsgc = append(argsgc, p.Name) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) - - } else { - argscommon = append(argscommon, p.Name) - argscall = append(argscall, fmt.Sprintf("%s int", p.Name)) - argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name)) - } - } else if p.Type == "int32" { - argscommon = append(argscommon, p.Name) - argscall = append(argscall, fmt.Sprintf("%s int32", p.Name)) - argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name)) - } else if p.Type == "int64" { - argscommon = append(argscommon, p.Name) - argscall = append(argscall, fmt.Sprintf("%s int64", p.Name)) - argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.longlong(%s)", p.Name)) - } else if p.Type == "uint32" { - argscommon = append(argscommon, p.Name) - argscall = append(argscall, fmt.Sprintf("%s uint32", p.Name)) - argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uint(%s)", p.Name)) - } else if p.Type == "uint64" { - argscommon = append(argscommon, p.Name) - argscall = append(argscall, fmt.Sprintf("%s uint64", p.Name)) - argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.ulonglong(%s)", p.Name)) - } else if p.Type == "uintptr" { - argscommon = append(argscommon, p.Name) - argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) - argsgc = append(argsgc, p.Name) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) - } else { - argscommon = append(argscommon, fmt.Sprintf("int(%s)", p.Name)) - argscall = append(argscall, fmt.Sprintf("%s int", p.Name)) - argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) - argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name)) - } - argN++ - } - nargs := len(argsgc) - - // COMMON function generation - argscommonlist := strings.Join(argscommon, ", ") - callcommon := fmt.Sprintf("call%s(%s)", sysname, argscommonlist) - ret := []string{"_", "_"} - body := "" - doErrno := false - for i := 0; i < len(out); i++ { - p := parseParam(out[i]) - reg := "" - if p.Name == "err" { - reg = "e1" - ret[1] = reg - doErrno = true - } else { - reg = "r0" - ret[0] = reg - } - if p.Type == "bool" { - reg = fmt.Sprintf("%s != 0", reg) - } - if reg != "e1" { - body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) - } - } - if ret[0] == "_" && ret[1] == "_" { - textcommon += fmt.Sprintf("\t%s\n", callcommon) - } else { - textcommon += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], callcommon) - } - textcommon += body - - if doErrno { - textcommon += "\tif e1 != 0 {\n" - textcommon += "\t\terr = errnoErr(e1)\n" - textcommon += "\t}\n" - } - textcommon += "\treturn\n" - textcommon += "}\n" - - if onlyCommon { - continue - } - - // CALL Prototype - callProto := fmt.Sprintf("func call%s(%s) (r1 uintptr, e1 Errno) {\n", sysname, strings.Join(argscall, ", ")) - - // GC function generation - asm := "syscall6" - if nonblock != nil { - asm = "rawSyscall6" - } - - if len(argsgc) <= 6 { - for len(argsgc) < 6 { - argsgc = append(argsgc, "0") - } - } else { - fmt.Fprintf(os.Stderr, "%s: too many arguments to system call", funct) - os.Exit(1) - } - argsgclist := strings.Join(argsgc, ", ") - callgc := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, argsgclist) - - textgc += callProto - textgc += fmt.Sprintf("\tr1, _, e1 = %s\n", callgc) - textgc += "\treturn\n}\n" - - // GCCGO function generation - argsgccgolist := strings.Join(argsgccgo, ", ") - callgccgo := fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist) - textgccgo += callProto - textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo) - textgccgo += "\te1 = syscall.GetErrno()\n" - textgccgo += "\treturn\n}\n" - } - if err := s.Err(); err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - file.Close() - } - imp := "" - if pack != "unix" { - imp = "import \"golang.org/x/sys/unix\"\n" - - } - - // Print zsyscall_aix_ppc64.go - err := ioutil.WriteFile("zsyscall_aix_ppc64.go", - []byte(fmt.Sprintf(srcTemplate1, cmdLine(), buildTags(), pack, imp, textcommon)), - 0644) - if err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - - // Print zsyscall_aix_ppc64_gc.go - vardecls := "\t" + strings.Join(vars, ",\n\t") - vardecls += " syscallFunc" - err = ioutil.WriteFile("zsyscall_aix_ppc64_gc.go", - []byte(fmt.Sprintf(srcTemplate2, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, textgc)), - 0644) - if err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - - // Print zsyscall_aix_ppc64_gccgo.go - err = ioutil.WriteFile("zsyscall_aix_ppc64_gccgo.go", - []byte(fmt.Sprintf(srcTemplate3, cmdLine(), buildTags(), pack, cExtern, imp, textgccgo)), - 0644) - if err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } -} - -const srcTemplate1 = `// %s -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s - -package %s - -import ( - "unsafe" -) - - -%s - -%s -` -const srcTemplate2 = `// %s -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s -// +build !gccgo - -package %s - -import ( - "unsafe" -) -%s -%s -%s -type syscallFunc uintptr - -var ( -%s -) - -// Implemented in runtime/syscall_aix.go. -func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) - -%s -` -const srcTemplate3 = `// %s -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s -// +build gccgo - -package %s - -%s -*/ -import "C" -import ( - "syscall" -) - - -%s - -%s -` diff --git a/vendor/golang.org/x/sys/unix/mksyscall_solaris.go b/vendor/golang.org/x/sys/unix/mksyscall_solaris.go deleted file mode 100644 index 3d864738b..000000000 --- a/vendor/golang.org/x/sys/unix/mksyscall_solaris.go +++ /dev/null @@ -1,335 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* - This program reads a file containing function prototypes - (like syscall_solaris.go) and generates system call bodies. - The prototypes are marked by lines beginning with "//sys" - and read like func declarations if //sys is replaced by func, but: - * The parameter lists must give a name for each argument. - This includes return parameters. - * The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. - * If the return parameter is an error number, it must be named err. - * If go func name needs to be different than its libc name, - * or the function is not in libc, name could be specified - * at the end, after "=" sign, like - //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt -*/ - -package main - -import ( - "bufio" - "flag" - "fmt" - "os" - "regexp" - "strings" -) - -var ( - b32 = flag.Bool("b32", false, "32bit big-endian") - l32 = flag.Bool("l32", false, "32bit little-endian") - tags = flag.String("tags", "", "build tags") -) - -// cmdLine returns this programs's commandline arguments -func cmdLine() string { - return "go run mksyscall_solaris.go " + strings.Join(os.Args[1:], " ") -} - -// buildTags returns build tags -func buildTags() string { - return *tags -} - -// Param is function parameter -type Param struct { - Name string - Type string -} - -// usage prints the program usage -func usage() { - fmt.Fprintf(os.Stderr, "usage: go run mksyscall_solaris.go [-b32 | -l32] [-tags x,y] [file ...]\n") - os.Exit(1) -} - -// parseParamList parses parameter list and returns a slice of parameters -func parseParamList(list string) []string { - list = strings.TrimSpace(list) - if list == "" { - return []string{} - } - return regexp.MustCompile(`\s*,\s*`).Split(list, -1) -} - -// parseParam splits a parameter into name and type -func parseParam(p string) Param { - ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) - if ps == nil { - fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) - os.Exit(1) - } - return Param{ps[1], ps[2]} -} - -func main() { - flag.Usage = usage - flag.Parse() - if len(flag.Args()) <= 0 { - fmt.Fprintf(os.Stderr, "no files to parse provided\n") - usage() - } - - endianness := "" - if *b32 { - endianness = "big-endian" - } else if *l32 { - endianness = "little-endian" - } - - pack := "" - text := "" - dynimports := "" - linknames := "" - var vars []string - for _, path := range flag.Args() { - file, err := os.Open(path) - if err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - s := bufio.NewScanner(file) - for s.Scan() { - t := s.Text() - t = strings.TrimSpace(t) - t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) - if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" { - pack = p[1] - } - nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) - if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { - continue - } - - // Line must be of the form - // func Open(path string, mode int, perm int) (fd int, err error) - // Split into name, in params, out params. - f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t) - if f == nil { - fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) - os.Exit(1) - } - funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6] - - // Split argument lists on comma. - in := parseParamList(inps) - out := parseParamList(outps) - - inps = strings.Join(in, ", ") - outps = strings.Join(out, ", ") - - // Try in vain to keep people from editing this file. - // The theory is that they jump into the middle of the file - // without reading the header. - text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" - - // So file name. - if modname == "" { - modname = "libc" - } - - // System call name. - if sysname == "" { - sysname = funct - } - - // System call pointer variable name. - sysvarname := fmt.Sprintf("proc%s", sysname) - - strconvfunc := "BytePtrFromString" - strconvtype := "*byte" - - sysname = strings.ToLower(sysname) // All libc functions are lowercase. - - // Runtime import of function to allow cross-platform builds. - dynimports += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"%s.so\"\n", sysname, sysname, modname) - // Link symbol to proc address variable. - linknames += fmt.Sprintf("//go:linkname %s libc_%s\n", sysvarname, sysname) - // Library proc address variable. - vars = append(vars, sysvarname) - - // Go function header. - outlist := strings.Join(out, ", ") - if outlist != "" { - outlist = fmt.Sprintf(" (%s)", outlist) - } - if text != "" { - text += "\n" - } - text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outlist) - - // Check if err return available - errvar := "" - for _, param := range out { - p := parseParam(param) - if p.Type == "error" { - errvar = p.Name - continue - } - } - - // Prepare arguments to Syscall. - var args []string - n := 0 - for _, param := range in { - p := parseParam(param) - if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { - args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))") - } else if p.Type == "string" && errvar != "" { - text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) - text += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name) - text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) - args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) - n++ - } else if p.Type == "string" { - fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") - text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) - text += fmt.Sprintf("\t_p%d, _ = %s(%s)\n", n, strconvfunc, p.Name) - args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) - n++ - } else if s := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); s != nil { - // Convert slice into pointer, length. - // Have to be careful not to take address of &a[0] if len == 0: - // pass nil in that case. - text += fmt.Sprintf("\tvar _p%d *%s\n", n, s[1]) - text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name) - args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("uintptr(len(%s))", p.Name)) - n++ - } else if p.Type == "int64" && endianness != "" { - if endianness == "big-endian" { - args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) - } else { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) - } - } else if p.Type == "bool" { - text += fmt.Sprintf("\tvar _p%d uint32\n", n) - text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n) - args = append(args, fmt.Sprintf("uintptr(_p%d)", n)) - n++ - } else { - args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) - } - } - nargs := len(args) - - // Determine which form to use; pad args with zeros. - asm := "sysvicall6" - if nonblock != nil { - asm = "rawSysvicall6" - } - if len(args) <= 6 { - for len(args) < 6 { - args = append(args, "0") - } - } else { - fmt.Fprintf(os.Stderr, "%s: too many arguments to system call\n", path) - os.Exit(1) - } - - // Actual call. - arglist := strings.Join(args, ", ") - call := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, arglist) - - // Assign return values. - body := "" - ret := []string{"_", "_", "_"} - doErrno := false - for i := 0; i < len(out); i++ { - p := parseParam(out[i]) - reg := "" - if p.Name == "err" { - reg = "e1" - ret[2] = reg - doErrno = true - } else { - reg = fmt.Sprintf("r%d", i) - ret[i] = reg - } - if p.Type == "bool" { - reg = fmt.Sprintf("%d != 0", reg) - } - if p.Type == "int64" && endianness != "" { - // 64-bit number in r1:r0 or r0:r1. - if i+2 > len(out) { - fmt.Fprintf(os.Stderr, "%s: not enough registers for int64 return\n", path) - os.Exit(1) - } - if endianness == "big-endian" { - reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1) - } else { - reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i) - } - ret[i] = fmt.Sprintf("r%d", i) - ret[i+1] = fmt.Sprintf("r%d", i+1) - } - if reg != "e1" { - body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) - } - } - if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" { - text += fmt.Sprintf("\t%s\n", call) - } else { - text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call) - } - text += body - - if doErrno { - text += "\tif e1 != 0 {\n" - text += "\t\terr = e1\n" - text += "\t}\n" - } - text += "\treturn\n" - text += "}\n" - } - if err := s.Err(); err != nil { - fmt.Fprintf(os.Stderr, err.Error()) - os.Exit(1) - } - file.Close() - } - imp := "" - if pack != "unix" { - imp = "import \"golang.org/x/sys/unix\"\n" - - } - vardecls := "\t" + strings.Join(vars, ",\n\t") - vardecls += " syscallFunc" - fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, text) -} - -const srcTemplate = `// %s -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s - -package %s - -import ( - "syscall" - "unsafe" -) -%s -%s -%s -var ( -%s -) - -%s -` diff --git a/vendor/golang.org/x/sys/unix/mksysnum.go b/vendor/golang.org/x/sys/unix/mksysnum.go deleted file mode 100644 index 07f8960ff..000000000 --- a/vendor/golang.org/x/sys/unix/mksysnum.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Generate system call table for DragonFly, NetBSD, -// FreeBSD, OpenBSD or Darwin from master list -// (for example, /usr/src/sys/kern/syscalls.master or -// sys/syscall.h). -package main - -import ( - "bufio" - "fmt" - "io" - "io/ioutil" - "net/http" - "os" - "regexp" - "strings" -) - -var ( - goos, goarch string -) - -// cmdLine returns this programs's commandline arguments -func cmdLine() string { - return "go run mksysnum.go " + strings.Join(os.Args[1:], " ") -} - -// buildTags returns build tags -func buildTags() string { - return fmt.Sprintf("%s,%s", goarch, goos) -} - -func checkErr(err error) { - if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } -} - -// source string and substring slice for regexp -type re struct { - str string // source string - sub []string // matched sub-string -} - -// Match performs regular expression match -func (r *re) Match(exp string) bool { - r.sub = regexp.MustCompile(exp).FindStringSubmatch(r.str) - if r.sub != nil { - return true - } - return false -} - -// fetchFile fetches a text file from URL -func fetchFile(URL string) io.Reader { - resp, err := http.Get(URL) - checkErr(err) - defer resp.Body.Close() - body, err := ioutil.ReadAll(resp.Body) - checkErr(err) - return strings.NewReader(string(body)) -} - -// readFile reads a text file from path -func readFile(path string) io.Reader { - file, err := os.Open(os.Args[1]) - checkErr(err) - return file -} - -func format(name, num, proto string) string { - name = strings.ToUpper(name) - // There are multiple entries for enosys and nosys, so comment them out. - nm := re{str: name} - if nm.Match(`^SYS_E?NOSYS$`) { - name = fmt.Sprintf("// %s", name) - } - if name == `SYS_SYS_EXIT` { - name = `SYS_EXIT` - } - return fmt.Sprintf(" %s = %s; // %s\n", name, num, proto) -} - -func main() { - // Get the OS (using GOOS_TARGET if it exist) - goos = os.Getenv("GOOS_TARGET") - if goos == "" { - goos = os.Getenv("GOOS") - } - // Get the architecture (using GOARCH_TARGET if it exists) - goarch = os.Getenv("GOARCH_TARGET") - if goarch == "" { - goarch = os.Getenv("GOARCH") - } - // Check if GOOS and GOARCH environment variables are defined - if goarch == "" || goos == "" { - fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n") - os.Exit(1) - } - - file := strings.TrimSpace(os.Args[1]) - var syscalls io.Reader - if strings.HasPrefix(file, "https://") || strings.HasPrefix(file, "http://") { - // Download syscalls.master file - syscalls = fetchFile(file) - } else { - syscalls = readFile(file) - } - - var text, line string - s := bufio.NewScanner(syscalls) - for s.Scan() { - t := re{str: line} - if t.Match(`^(.*)\\$`) { - // Handle continuation - line = t.sub[1] - line += strings.TrimLeft(s.Text(), " \t") - } else { - // New line - line = s.Text() - } - t = re{str: line} - if t.Match(`\\$`) { - continue - } - t = re{str: line} - - switch goos { - case "dragonfly": - if t.Match(`^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$`) { - num, proto := t.sub[1], t.sub[2] - name := fmt.Sprintf("SYS_%s", t.sub[3]) - text += format(name, num, proto) - } - case "freebsd": - if t.Match(`^([0-9]+)\s+\S+\s+(?:NO)?STD\s+({ \S+\s+(\w+).*)$`) { - num, proto := t.sub[1], t.sub[2] - name := fmt.Sprintf("SYS_%s", t.sub[3]) - text += format(name, num, proto) - } - case "openbsd": - if t.Match(`^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$`) { - num, proto, name := t.sub[1], t.sub[3], t.sub[4] - text += format(name, num, proto) - } - case "netbsd": - if t.Match(`^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$`) { - num, proto, compat := t.sub[1], t.sub[6], t.sub[8] - name := t.sub[7] + "_" + t.sub[9] - if t.sub[11] != "" { - name = t.sub[7] + "_" + t.sub[11] - } - name = strings.ToUpper(name) - if compat == "" || compat == "13" || compat == "30" || compat == "50" { - text += fmt.Sprintf(" %s = %s; // %s\n", name, num, proto) - } - } - case "darwin": - if t.Match(`^#define\s+SYS_(\w+)\s+([0-9]+)`) { - name, num := t.sub[1], t.sub[2] - name = strings.ToUpper(name) - text += fmt.Sprintf(" SYS_%s = %s;\n", name, num) - } - default: - fmt.Fprintf(os.Stderr, "unrecognized GOOS=%s\n", goos) - os.Exit(1) - - } - } - err := s.Err() - checkErr(err) - - fmt.Printf(template, cmdLine(), buildTags(), text) -} - -const template = `// %s -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s - -package unix - -const( -%s)` diff --git a/vendor/golang.org/x/sys/unix/types_aix.go b/vendor/golang.org/x/sys/unix/types_aix.go deleted file mode 100644 index 25e834940..000000000 --- a/vendor/golang.org/x/sys/unix/types_aix.go +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore -// +build aix - -/* -Input to cgo -godefs. See also mkerrors.sh and mkall.sh -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - - -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics - -const ( - SizeofPtr = C.sizeofPtr - SizeofShort = C.sizeof_short - SizeofInt = C.sizeof_int - SizeofLong = C.sizeof_long - SizeofLongLong = C.sizeof_longlong - PathMax = C.PATH_MAX -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -type off64 C.off64_t -type off C.off_t -type Mode_t C.mode_t - -// Time - -type Timespec C.struct_timespec - -type StTimespec C.struct_st_timespec - -type Timeval C.struct_timeval - -type Timeval32 C.struct_timeval32 - -type Timex C.struct_timex - -type Time_t C.time_t - -type Tms C.struct_tms - -type Utimbuf C.struct_utimbuf - -type Timezone C.struct_timezone - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit64 - -type Pid_t C.pid_t - -type _Gid_t C.gid_t - -type dev_t C.dev_t - -// Files - -type Stat_t C.struct_stat - -type StatxTimestamp C.struct_statx_timestamp - -type Statx_t C.struct_statx - -type Dirent C.struct_dirent - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Cmsghdr C.struct_cmsghdr - -type ICMPv6Filter C.struct_icmp6_filter - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type Linger C.struct_linger - -type Msghdr C.struct_msghdr - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr -) - -type IfMsgHdr C.struct_if_msghdr - -// Misc - -type FdSet C.fd_set - -type Utsname C.struct_utsname - -type Ustat_t C.struct_ustat - -type Sigset_t C.sigset_t - -const ( - AT_FDCWD = C.AT_FDCWD - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// Terminal handling - -type Termios C.struct_termios - -type Termio C.struct_termio - -type Winsize C.struct_winsize - -//poll - -type PollFd struct { - Fd int32 - Events uint16 - Revents uint16 -} - -const ( - POLLERR = C.POLLERR - POLLHUP = C.POLLHUP - POLLIN = C.POLLIN - POLLNVAL = C.POLLNVAL - POLLOUT = C.POLLOUT - POLLPRI = C.POLLPRI - POLLRDBAND = C.POLLRDBAND - POLLRDNORM = C.POLLRDNORM - POLLWRBAND = C.POLLWRBAND - POLLWRNORM = C.POLLWRNORM -) - -//flock_t - -type Flock_t C.struct_flock64 - -// Statfs - -type Fsid_t C.struct_fsid_t -type Fsid64_t C.struct_fsid64_t - -type Statfs_t C.struct_statfs - -const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/types_darwin.go b/vendor/golang.org/x/sys/unix/types_darwin.go deleted file mode 100644 index 9fd2aaa6a..000000000 --- a/vendor/golang.org/x/sys/unix/types_darwin.go +++ /dev/null @@ -1,277 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define __DARWIN_UNIX03 0 -#define KERNEL -#define _DARWIN_USE_64_BIT_INODE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics - -const ( - SizeofPtr = C.sizeofPtr - SizeofShort = C.sizeof_short - SizeofInt = C.sizeof_int - SizeofLong = C.sizeof_long - SizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -type Timeval32 C.struct_timeval32 - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -type Stat_t C.struct_stat64 - -type Statfs_t C.struct_statfs64 - -type Flock_t C.struct_flock - -type Fstore_t C.struct_fstore - -type Radvisory_t C.struct_radvisory - -type Fbootstraptransfer_t C.struct_fbootstraptransfer - -type Log2phys_t C.struct_log2phys - -type Fsid C.struct_fsid - -type Dirent C.struct_dirent - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet4Pktinfo C.struct_in_pktinfo - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr - SizeofIfmaMsghdr2 = C.sizeof_struct_ifma_msghdr2 - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfmaMsghdr C.struct_ifma_msghdr - -type IfmaMsghdr2 C.struct_ifma_msghdr2 - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -// Terminal handling - -type Termios C.struct_termios - -type Winsize C.struct_winsize - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// poll - -type PollFd C.struct_pollfd - -const ( - POLLERR = C.POLLERR - POLLHUP = C.POLLHUP - POLLIN = C.POLLIN - POLLNVAL = C.POLLNVAL - POLLOUT = C.POLLOUT - POLLPRI = C.POLLPRI - POLLRDBAND = C.POLLRDBAND - POLLRDNORM = C.POLLRDNORM - POLLWRBAND = C.POLLWRBAND - POLLWRNORM = C.POLLWRNORM -) - -// uname - -type Utsname C.struct_utsname diff --git a/vendor/golang.org/x/sys/unix/types_dragonfly.go b/vendor/golang.org/x/sys/unix/types_dragonfly.go deleted file mode 100644 index 3365dd79d..000000000 --- a/vendor/golang.org/x/sys/unix/types_dragonfly.go +++ /dev/null @@ -1,263 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics - -const ( - SizeofPtr = C.sizeofPtr - SizeofShort = C.sizeof_short - SizeofInt = C.sizeof_int - SizeofLong = C.sizeof_long - SizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -type Stat_t C.struct_stat - -type Statfs_t C.struct_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type Fsid C.struct_fsid - -// File system limits - -const ( - PathMax = C.PATH_MAX -) - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfmaMsghdr C.struct_ifma_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -// Terminal handling - -type Termios C.struct_termios - -type Winsize C.struct_winsize - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// poll - -type PollFd C.struct_pollfd - -const ( - POLLERR = C.POLLERR - POLLHUP = C.POLLHUP - POLLIN = C.POLLIN - POLLNVAL = C.POLLNVAL - POLLOUT = C.POLLOUT - POLLPRI = C.POLLPRI - POLLRDBAND = C.POLLRDBAND - POLLRDNORM = C.POLLRDNORM - POLLWRBAND = C.POLLWRBAND - POLLWRNORM = C.POLLWRNORM -) - -// Uname - -type Utsname C.struct_utsname diff --git a/vendor/golang.org/x/sys/unix/types_freebsd.go b/vendor/golang.org/x/sys/unix/types_freebsd.go deleted file mode 100644 index 747079895..000000000 --- a/vendor/golang.org/x/sys/unix/types_freebsd.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define _WANT_FREEBSD11_STAT 1 -#define _WANT_FREEBSD11_STATFS 1 -#define _WANT_FREEBSD11_DIRENT 1 -#define _WANT_FREEBSD11_KEVENT 1 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -// This structure is a duplicate of if_data on FreeBSD 8-STABLE. -// See /usr/include/net/if.h. -struct if_data8 { - u_char ifi_type; - u_char ifi_physical; - u_char ifi_addrlen; - u_char ifi_hdrlen; - u_char ifi_link_state; - u_char ifi_spare_char1; - u_char ifi_spare_char2; - u_char ifi_datalen; - u_long ifi_mtu; - u_long ifi_metric; - u_long ifi_baudrate; - u_long ifi_ipackets; - u_long ifi_ierrors; - u_long ifi_opackets; - u_long ifi_oerrors; - u_long ifi_collisions; - u_long ifi_ibytes; - u_long ifi_obytes; - u_long ifi_imcasts; - u_long ifi_omcasts; - u_long ifi_iqdrops; - u_long ifi_noproto; - u_long ifi_hwassist; -// FIXME: these are now unions, so maybe need to change definitions? -#undef ifi_epoch - time_t ifi_epoch; -#undef ifi_lastchange - struct timeval ifi_lastchange; -}; - -// This structure is a duplicate of if_msghdr on FreeBSD 8-STABLE. -// See /usr/include/net/if.h. -struct if_msghdr8 { - u_short ifm_msglen; - u_char ifm_version; - u_char ifm_type; - int ifm_addrs; - int ifm_flags; - u_short ifm_index; - struct if_data8 ifm_data; -}; -*/ -import "C" - -// Machine characteristics - -const ( - SizeofPtr = C.sizeofPtr - SizeofShort = C.sizeof_short - SizeofInt = C.sizeof_int - SizeofLong = C.sizeof_long - SizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -const ( - _statfsVersion = C.STATFS_VERSION - _dirblksiz = C.DIRBLKSIZ -) - -type Stat_t C.struct_stat - -type stat_freebsd11_t C.struct_freebsd11_stat - -type Statfs_t C.struct_statfs - -type statfs_freebsd11_t C.struct_freebsd11_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type dirent_freebsd11 C.struct_freebsd11_dirent - -type Fsid C.struct_fsid - -// File system limits - -const ( - PathMax = C.PATH_MAX -) - -// Advice to Fadvise - -const ( - FADV_NORMAL = C.POSIX_FADV_NORMAL - FADV_RANDOM = C.POSIX_FADV_RANDOM - FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL - FADV_WILLNEED = C.POSIX_FADV_WILLNEED - FADV_DONTNEED = C.POSIX_FADV_DONTNEED - FADV_NOREUSE = C.POSIX_FADV_NOREUSE -) - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPMreqn C.struct_ip_mreqn - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPMreqn = C.sizeof_struct_ip_mreqn - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent_freebsd11 - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - sizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfMsghdr = C.sizeof_struct_if_msghdr8 - sizeofIfData = C.sizeof_struct_if_data - SizeofIfData = C.sizeof_struct_if_data8 - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type ifMsghdr C.struct_if_msghdr - -type IfMsghdr C.struct_if_msghdr8 - -type ifData C.struct_if_data - -type IfData C.struct_if_data8 - -type IfaMsghdr C.struct_ifa_msghdr - -type IfmaMsghdr C.struct_ifma_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfZbuf = C.sizeof_struct_bpf_zbuf - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr - SizeofBpfZbufHeader = C.sizeof_struct_bpf_zbuf_header -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfZbuf C.struct_bpf_zbuf - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -type BpfZbufHeader C.struct_bpf_zbuf_header - -// Terminal handling - -type Termios C.struct_termios - -type Winsize C.struct_winsize - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// poll - -type PollFd C.struct_pollfd - -const ( - POLLERR = C.POLLERR - POLLHUP = C.POLLHUP - POLLIN = C.POLLIN - POLLINIGNEOF = C.POLLINIGNEOF - POLLNVAL = C.POLLNVAL - POLLOUT = C.POLLOUT - POLLPRI = C.POLLPRI - POLLRDBAND = C.POLLRDBAND - POLLRDNORM = C.POLLRDNORM - POLLWRBAND = C.POLLWRBAND - POLLWRNORM = C.POLLWRNORM -) - -// Capabilities - -type CapRights C.struct_cap_rights - -// Uname - -type Utsname C.struct_utsname diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_netbsd.go deleted file mode 100644 index 2dd4f9542..000000000 --- a/vendor/golang.org/x/sys/unix/types_netbsd.go +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics - -const ( - SizeofPtr = C.sizeofPtr - SizeofShort = C.sizeof_short - SizeofInt = C.sizeof_int - SizeofLong = C.sizeof_long - SizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -type Stat_t C.struct_stat - -type Statfs_t C.struct_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type Fsid C.fsid_t - -// File system limits - -const ( - PathMax = C.PATH_MAX -) - -// Advice to Fadvise - -const ( - FADV_NORMAL = C.POSIX_FADV_NORMAL - FADV_RANDOM = C.POSIX_FADV_RANDOM - FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL - FADV_WILLNEED = C.POSIX_FADV_WILLNEED - FADV_DONTNEED = C.POSIX_FADV_DONTNEED - FADV_NOREUSE = C.POSIX_FADV_NOREUSE -) - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -type Mclpool C.struct_mclpool - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -type BpfTimeval C.struct_bpf_timeval - -// Terminal handling - -type Termios C.struct_termios - -type Winsize C.struct_winsize - -type Ptmget C.struct_ptmget - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// poll - -type PollFd C.struct_pollfd - -const ( - POLLERR = C.POLLERR - POLLHUP = C.POLLHUP - POLLIN = C.POLLIN - POLLNVAL = C.POLLNVAL - POLLOUT = C.POLLOUT - POLLPRI = C.POLLPRI - POLLRDBAND = C.POLLRDBAND - POLLRDNORM = C.POLLRDNORM - POLLWRBAND = C.POLLWRBAND - POLLWRNORM = C.POLLWRNORM -) - -// Sysctl - -type Sysctlnode C.struct_sysctlnode - -// Uname - -type Utsname C.struct_utsname - -// Clockinfo - -const SizeofClockinfo = C.sizeof_struct_clockinfo - -type Clockinfo C.struct_clockinfo diff --git a/vendor/golang.org/x/sys/unix/types_openbsd.go b/vendor/golang.org/x/sys/unix/types_openbsd.go deleted file mode 100644 index 4e5e57f9a..000000000 --- a/vendor/golang.org/x/sys/unix/types_openbsd.go +++ /dev/null @@ -1,276 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics - -const ( - SizeofPtr = C.sizeofPtr - SizeofShort = C.sizeof_short - SizeofInt = C.sizeof_int - SizeofLong = C.sizeof_long - SizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -type Stat_t C.struct_stat - -type Statfs_t C.struct_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type Fsid C.fsid_t - -// File system limits - -const ( - PathMax = C.PATH_MAX -) - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -type Mclpool C.struct_mclpool - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -type BpfTimeval C.struct_bpf_timeval - -// Terminal handling - -type Termios C.struct_termios - -type Winsize C.struct_winsize - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// poll - -type PollFd C.struct_pollfd - -const ( - POLLERR = C.POLLERR - POLLHUP = C.POLLHUP - POLLIN = C.POLLIN - POLLNVAL = C.POLLNVAL - POLLOUT = C.POLLOUT - POLLPRI = C.POLLPRI - POLLRDBAND = C.POLLRDBAND - POLLRDNORM = C.POLLRDNORM - POLLWRBAND = C.POLLWRBAND - POLLWRNORM = C.POLLWRNORM -) - -// Signal Sets - -type Sigset_t C.sigset_t - -// Uname - -type Utsname C.struct_utsname - -// Uvmexp - -const SizeofUvmexp = C.sizeof_struct_uvmexp - -type Uvmexp C.struct_uvmexp diff --git a/vendor/golang.org/x/sys/unix/types_solaris.go b/vendor/golang.org/x/sys/unix/types_solaris.go deleted file mode 100644 index 2b716f934..000000000 --- a/vendor/golang.org/x/sys/unix/types_solaris.go +++ /dev/null @@ -1,266 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -// These defines ensure that builds done on newer versions of Solaris are -// backwards-compatible with older versions of Solaris and -// OpenSolaris-based derivatives. -#define __USE_SUNOS_SOCKETS__ // msghdr -#define __USE_LEGACY_PROTOTYPES__ // iovec -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics - -const ( - SizeofPtr = C.sizeofPtr - SizeofShort = C.sizeof_short - SizeofInt = C.sizeof_int - SizeofLong = C.sizeof_long - SizeofLongLong = C.sizeof_longlong - PathMax = C.PATH_MAX - MaxHostNameLen = C.MAXHOSTNAMELEN -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -type Timeval32 C.struct_timeval32 - -type Tms C.struct_tms - -type Utimbuf C.struct_utimbuf - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -type Stat_t C.struct_stat - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -// Filesystems - -type _Fsblkcnt_t C.fsblkcnt_t - -type Statvfs_t C.struct_statvfs - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Select - -type FdSet C.fd_set - -// Misc - -type Utsname C.struct_utsname - -type Ustat_t C.struct_ustat - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW - AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_EACCESS = C.AT_EACCESS -) - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfTimeval C.struct_bpf_timeval - -type BpfHdr C.struct_bpf_hdr - -// Terminal handling - -type Termios C.struct_termios - -type Termio C.struct_termio - -type Winsize C.struct_winsize - -// poll - -type PollFd C.struct_pollfd - -const ( - POLLERR = C.POLLERR - POLLHUP = C.POLLHUP - POLLIN = C.POLLIN - POLLNVAL = C.POLLNVAL - POLLOUT = C.POLLOUT - POLLPRI = C.POLLPRI - POLLRDBAND = C.POLLRDBAND - POLLRDNORM = C.POLLRDNORM - POLLWRBAND = C.POLLWRBAND - POLLWRNORM = C.POLLWRNORM -) diff --git a/vendor/golang.org/x/text/encoding/charmap/maketables.go b/vendor/golang.org/x/text/encoding/charmap/maketables.go deleted file mode 100644 index f7941701e..000000000 --- a/vendor/golang.org/x/text/encoding/charmap/maketables.go +++ /dev/null @@ -1,556 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/internal/gen" -) - -const ascii = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + - "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + - ` !"#$%&'()*+,-./0123456789:;<=>?` + - `@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` + - "`abcdefghijklmnopqrstuvwxyz{|}~\u007f" - -var encodings = []struct { - name string - mib string - comment string - varName string - replacement byte - mapping string -}{ - { - "IBM Code Page 037", - "IBM037", - "", - "CodePage037", - 0x3f, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM037-2.1.2.ucm", - }, - { - "IBM Code Page 437", - "PC8CodePage437", - "", - "CodePage437", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM437-2.1.2.ucm", - }, - { - "IBM Code Page 850", - "PC850Multilingual", - "", - "CodePage850", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM850-2.1.2.ucm", - }, - { - "IBM Code Page 852", - "PCp852", - "", - "CodePage852", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM852-2.1.2.ucm", - }, - { - "IBM Code Page 855", - "IBM855", - "", - "CodePage855", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM855-2.1.2.ucm", - }, - { - "Windows Code Page 858", // PC latin1 with Euro - "IBM00858", - "", - "CodePage858", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-858-2000.ucm", - }, - { - "IBM Code Page 860", - "IBM860", - "", - "CodePage860", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM860-2.1.2.ucm", - }, - { - "IBM Code Page 862", - "PC862LatinHebrew", - "", - "CodePage862", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM862-2.1.2.ucm", - }, - { - "IBM Code Page 863", - "IBM863", - "", - "CodePage863", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM863-2.1.2.ucm", - }, - { - "IBM Code Page 865", - "IBM865", - "", - "CodePage865", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM865-2.1.2.ucm", - }, - { - "IBM Code Page 866", - "IBM866", - "", - "CodePage866", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-ibm866.txt", - }, - { - "IBM Code Page 1047", - "IBM1047", - "", - "CodePage1047", - 0x3f, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM1047-2.1.2.ucm", - }, - { - "IBM Code Page 1140", - "IBM01140", - "", - "CodePage1140", - 0x3f, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/ibm-1140_P100-1997.ucm", - }, - { - "ISO 8859-1", - "ISOLatin1", - "", - "ISO8859_1", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_1-1998.ucm", - }, - { - "ISO 8859-2", - "ISOLatin2", - "", - "ISO8859_2", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-2.txt", - }, - { - "ISO 8859-3", - "ISOLatin3", - "", - "ISO8859_3", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-3.txt", - }, - { - "ISO 8859-4", - "ISOLatin4", - "", - "ISO8859_4", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-4.txt", - }, - { - "ISO 8859-5", - "ISOLatinCyrillic", - "", - "ISO8859_5", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-5.txt", - }, - { - "ISO 8859-6", - "ISOLatinArabic", - "", - "ISO8859_6,ISO8859_6E,ISO8859_6I", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-6.txt", - }, - { - "ISO 8859-7", - "ISOLatinGreek", - "", - "ISO8859_7", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-7.txt", - }, - { - "ISO 8859-8", - "ISOLatinHebrew", - "", - "ISO8859_8,ISO8859_8E,ISO8859_8I", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-8.txt", - }, - { - "ISO 8859-9", - "ISOLatin5", - "", - "ISO8859_9", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_9-1999.ucm", - }, - { - "ISO 8859-10", - "ISOLatin6", - "", - "ISO8859_10", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-10.txt", - }, - { - "ISO 8859-13", - "ISO885913", - "", - "ISO8859_13", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-13.txt", - }, - { - "ISO 8859-14", - "ISO885914", - "", - "ISO8859_14", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-14.txt", - }, - { - "ISO 8859-15", - "ISO885915", - "", - "ISO8859_15", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-15.txt", - }, - { - "ISO 8859-16", - "ISO885916", - "", - "ISO8859_16", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-16.txt", - }, - { - "KOI8-R", - "KOI8R", - "", - "KOI8R", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-koi8-r.txt", - }, - { - "KOI8-U", - "KOI8U", - "", - "KOI8U", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-koi8-u.txt", - }, - { - "Macintosh", - "Macintosh", - "", - "Macintosh", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-macintosh.txt", - }, - { - "Macintosh Cyrillic", - "MacintoshCyrillic", - "", - "MacintoshCyrillic", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-x-mac-cyrillic.txt", - }, - { - "Windows 874", - "Windows874", - "", - "Windows874", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-874.txt", - }, - { - "Windows 1250", - "Windows1250", - "", - "Windows1250", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1250.txt", - }, - { - "Windows 1251", - "Windows1251", - "", - "Windows1251", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1251.txt", - }, - { - "Windows 1252", - "Windows1252", - "", - "Windows1252", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1252.txt", - }, - { - "Windows 1253", - "Windows1253", - "", - "Windows1253", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1253.txt", - }, - { - "Windows 1254", - "Windows1254", - "", - "Windows1254", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1254.txt", - }, - { - "Windows 1255", - "Windows1255", - "", - "Windows1255", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1255.txt", - }, - { - "Windows 1256", - "Windows1256", - "", - "Windows1256", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1256.txt", - }, - { - "Windows 1257", - "Windows1257", - "", - "Windows1257", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1257.txt", - }, - { - "Windows 1258", - "Windows1258", - "", - "Windows1258", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1258.txt", - }, - { - "X-User-Defined", - "XUserDefined", - "It is defined at http://encoding.spec.whatwg.org/#x-user-defined", - "XUserDefined", - encoding.ASCIISub, - ascii + - "\uf780\uf781\uf782\uf783\uf784\uf785\uf786\uf787" + - "\uf788\uf789\uf78a\uf78b\uf78c\uf78d\uf78e\uf78f" + - "\uf790\uf791\uf792\uf793\uf794\uf795\uf796\uf797" + - "\uf798\uf799\uf79a\uf79b\uf79c\uf79d\uf79e\uf79f" + - "\uf7a0\uf7a1\uf7a2\uf7a3\uf7a4\uf7a5\uf7a6\uf7a7" + - "\uf7a8\uf7a9\uf7aa\uf7ab\uf7ac\uf7ad\uf7ae\uf7af" + - "\uf7b0\uf7b1\uf7b2\uf7b3\uf7b4\uf7b5\uf7b6\uf7b7" + - "\uf7b8\uf7b9\uf7ba\uf7bb\uf7bc\uf7bd\uf7be\uf7bf" + - "\uf7c0\uf7c1\uf7c2\uf7c3\uf7c4\uf7c5\uf7c6\uf7c7" + - "\uf7c8\uf7c9\uf7ca\uf7cb\uf7cc\uf7cd\uf7ce\uf7cf" + - "\uf7d0\uf7d1\uf7d2\uf7d3\uf7d4\uf7d5\uf7d6\uf7d7" + - "\uf7d8\uf7d9\uf7da\uf7db\uf7dc\uf7dd\uf7de\uf7df" + - "\uf7e0\uf7e1\uf7e2\uf7e3\uf7e4\uf7e5\uf7e6\uf7e7" + - "\uf7e8\uf7e9\uf7ea\uf7eb\uf7ec\uf7ed\uf7ee\uf7ef" + - "\uf7f0\uf7f1\uf7f2\uf7f3\uf7f4\uf7f5\uf7f6\uf7f7" + - "\uf7f8\uf7f9\uf7fa\uf7fb\uf7fc\uf7fd\uf7fe\uf7ff", - }, -} - -func getWHATWG(url string) string { - res, err := http.Get(url) - if err != nil { - log.Fatalf("%q: Get: %v", url, err) - } - defer res.Body.Close() - - mapping := make([]rune, 128) - for i := range mapping { - mapping[i] = '\ufffd' - } - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := 0, 0 - if _, err := fmt.Sscanf(s, "%d\t0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 128 <= x { - log.Fatalf("code %d is out of range", x) - } - if 0x80 <= y && y < 0xa0 { - // We diverge from the WHATWG spec by mapping control characters - // in the range [0x80, 0xa0) to U+FFFD. - continue - } - mapping[x] = rune(y) - } - return ascii + string(mapping) -} - -func getUCM(url string) string { - res, err := http.Get(url) - if err != nil { - log.Fatalf("%q: Get: %v", url, err) - } - defer res.Body.Close() - - mapping := make([]rune, 256) - for i := range mapping { - mapping[i] = '\ufffd' - } - - charsFound := 0 - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - var c byte - var r rune - if _, err := fmt.Sscanf(s, ` \x%x |0`, &r, &c); err != nil { - continue - } - mapping[c] = r - charsFound++ - } - - if charsFound < 200 { - log.Fatalf("%q: only %d characters found (wrong page format?)", url, charsFound) - } - - return string(mapping) -} - -func main() { - mibs := map[string]bool{} - all := []string{} - - w := gen.NewCodeWriter() - defer w.WriteGoFile("tables.go", "charmap") - - printf := func(s string, a ...interface{}) { fmt.Fprintf(w, s, a...) } - - printf("import (\n") - printf("\t\"golang.org/x/text/encoding\"\n") - printf("\t\"golang.org/x/text/encoding/internal/identifier\"\n") - printf(")\n\n") - for _, e := range encodings { - varNames := strings.Split(e.varName, ",") - all = append(all, varNames...) - varName := varNames[0] - switch { - case strings.HasPrefix(e.mapping, "http://encoding.spec.whatwg.org/"): - e.mapping = getWHATWG(e.mapping) - case strings.HasPrefix(e.mapping, "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/"): - e.mapping = getUCM(e.mapping) - } - - asciiSuperset, low := strings.HasPrefix(e.mapping, ascii), 0x00 - if asciiSuperset { - low = 0x80 - } - lvn := 1 - if strings.HasPrefix(varName, "ISO") || strings.HasPrefix(varName, "KOI") { - lvn = 3 - } - lowerVarName := strings.ToLower(varName[:lvn]) + varName[lvn:] - printf("// %s is the %s encoding.\n", varName, e.name) - if e.comment != "" { - printf("//\n// %s\n", e.comment) - } - printf("var %s *Charmap = &%s\n\nvar %s = Charmap{\nname: %q,\n", - varName, lowerVarName, lowerVarName, e.name) - if mibs[e.mib] { - log.Fatalf("MIB type %q declared multiple times.", e.mib) - } - printf("mib: identifier.%s,\n", e.mib) - printf("asciiSuperset: %t,\n", asciiSuperset) - printf("low: 0x%02x,\n", low) - printf("replacement: 0x%02x,\n", e.replacement) - - printf("decode: [256]utf8Enc{\n") - i, backMapping := 0, map[rune]byte{} - for _, c := range e.mapping { - if _, ok := backMapping[c]; !ok && c != utf8.RuneError { - backMapping[c] = byte(i) - } - var buf [8]byte - n := utf8.EncodeRune(buf[:], c) - if n > 3 { - panic(fmt.Sprintf("rune %q (%U) is too long", c, c)) - } - printf("{%d,[3]byte{0x%02x,0x%02x,0x%02x}},", n, buf[0], buf[1], buf[2]) - if i%2 == 1 { - printf("\n") - } - i++ - } - printf("},\n") - - printf("encode: [256]uint32{\n") - encode := make([]uint32, 0, 256) - for c, i := range backMapping { - encode = append(encode, uint32(i)<<24|uint32(c)) - } - sort.Sort(byRune(encode)) - for len(encode) < cap(encode) { - encode = append(encode, encode[len(encode)-1]) - } - for i, enc := range encode { - printf("0x%08x,", enc) - if i%8 == 7 { - printf("\n") - } - } - printf("},\n}\n") - - // Add an estimate of the size of a single Charmap{} struct value, which - // includes two 256 elem arrays of 4 bytes and some extra fields, which - // align to 3 uint64s on 64-bit architectures. - w.Size += 2*4*256 + 3*8 - } - // TODO: add proper line breaking. - printf("var listAll = []encoding.Encoding{\n%s,\n}\n\n", strings.Join(all, ",\n")) -} - -type byRune []uint32 - -func (b byRune) Len() int { return len(b) } -func (b byRune) Less(i, j int) bool { return b[i]&0xffffff < b[j]&0xffffff } -func (b byRune) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/htmlindex/gen.go b/vendor/golang.org/x/text/encoding/htmlindex/gen.go deleted file mode 100644 index ac6b4a77f..000000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/gen.go +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bytes" - "encoding/json" - "fmt" - "log" - "strings" - - "golang.org/x/text/internal/gen" -) - -type group struct { - Encodings []struct { - Labels []string - Name string - } -} - -func main() { - gen.Init() - - r := gen.Open("https://encoding.spec.whatwg.org", "whatwg", "encodings.json") - var groups []group - if err := json.NewDecoder(r).Decode(&groups); err != nil { - log.Fatalf("Error reading encodings.json: %v", err) - } - - w := &bytes.Buffer{} - fmt.Fprintln(w, "type htmlEncoding byte") - fmt.Fprintln(w, "const (") - for i, g := range groups { - for _, e := range g.Encodings { - key := strings.ToLower(e.Name) - name := consts[key] - if name == "" { - log.Fatalf("No const defined for %s.", key) - } - if i == 0 { - fmt.Fprintf(w, "%s htmlEncoding = iota\n", name) - } else { - fmt.Fprintf(w, "%s\n", name) - } - } - } - fmt.Fprintln(w, "numEncodings") - fmt.Fprint(w, ")\n\n") - - fmt.Fprintln(w, "var canonical = [numEncodings]string{") - for _, g := range groups { - for _, e := range g.Encodings { - fmt.Fprintf(w, "%q,\n", strings.ToLower(e.Name)) - } - } - fmt.Fprint(w, "}\n\n") - - fmt.Fprintln(w, "var nameMap = map[string]htmlEncoding{") - for _, g := range groups { - for _, e := range g.Encodings { - for _, l := range e.Labels { - key := strings.ToLower(e.Name) - name := consts[key] - fmt.Fprintf(w, "%q: %s,\n", l, name) - } - } - } - fmt.Fprint(w, "}\n\n") - - var tags []string - fmt.Fprintln(w, "var localeMap = []htmlEncoding{") - for _, loc := range locales { - tags = append(tags, loc.tag) - fmt.Fprintf(w, "%s, // %s \n", consts[loc.name], loc.tag) - } - fmt.Fprint(w, "}\n\n") - - fmt.Fprintf(w, "const locales = %q\n", strings.Join(tags, " ")) - - gen.WriteGoFile("tables.go", "htmlindex", w.Bytes()) -} - -// consts maps canonical encoding name to internal constant. -var consts = map[string]string{ - "utf-8": "utf8", - "ibm866": "ibm866", - "iso-8859-2": "iso8859_2", - "iso-8859-3": "iso8859_3", - "iso-8859-4": "iso8859_4", - "iso-8859-5": "iso8859_5", - "iso-8859-6": "iso8859_6", - "iso-8859-7": "iso8859_7", - "iso-8859-8": "iso8859_8", - "iso-8859-8-i": "iso8859_8I", - "iso-8859-10": "iso8859_10", - "iso-8859-13": "iso8859_13", - "iso-8859-14": "iso8859_14", - "iso-8859-15": "iso8859_15", - "iso-8859-16": "iso8859_16", - "koi8-r": "koi8r", - "koi8-u": "koi8u", - "macintosh": "macintosh", - "windows-874": "windows874", - "windows-1250": "windows1250", - "windows-1251": "windows1251", - "windows-1252": "windows1252", - "windows-1253": "windows1253", - "windows-1254": "windows1254", - "windows-1255": "windows1255", - "windows-1256": "windows1256", - "windows-1257": "windows1257", - "windows-1258": "windows1258", - "x-mac-cyrillic": "macintoshCyrillic", - "gbk": "gbk", - "gb18030": "gb18030", - // "hz-gb-2312": "hzgb2312", // Was removed from WhatWG - "big5": "big5", - "euc-jp": "eucjp", - "iso-2022-jp": "iso2022jp", - "shift_jis": "shiftJIS", - "euc-kr": "euckr", - "replacement": "replacement", - "utf-16be": "utf16be", - "utf-16le": "utf16le", - "x-user-defined": "xUserDefined", -} - -// locales is taken from -// https://html.spec.whatwg.org/multipage/syntax.html#encoding-sniffing-algorithm. -var locales = []struct{ tag, name string }{ - // The default value. Explicitly state latin to benefit from the exact - // script option, while still making 1252 the default encoding for languages - // written in Latin script. - {"und_Latn", "windows-1252"}, - {"ar", "windows-1256"}, - {"ba", "windows-1251"}, - {"be", "windows-1251"}, - {"bg", "windows-1251"}, - {"cs", "windows-1250"}, - {"el", "iso-8859-7"}, - {"et", "windows-1257"}, - {"fa", "windows-1256"}, - {"he", "windows-1255"}, - {"hr", "windows-1250"}, - {"hu", "iso-8859-2"}, - {"ja", "shift_jis"}, - {"kk", "windows-1251"}, - {"ko", "euc-kr"}, - {"ku", "windows-1254"}, - {"ky", "windows-1251"}, - {"lt", "windows-1257"}, - {"lv", "windows-1257"}, - {"mk", "windows-1251"}, - {"pl", "iso-8859-2"}, - {"ru", "windows-1251"}, - {"sah", "windows-1251"}, - {"sk", "windows-1250"}, - {"sl", "iso-8859-2"}, - {"sr", "windows-1251"}, - {"tg", "windows-1251"}, - {"th", "windows-874"}, - {"tr", "windows-1254"}, - {"tt", "windows-1251"}, - {"uk", "windows-1251"}, - {"vi", "windows-1258"}, - {"zh-hans", "gb18030"}, - {"zh-hant", "big5"}, -} diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/gen.go b/vendor/golang.org/x/text/encoding/internal/identifier/gen.go deleted file mode 100644 index 0c8eba7e5..000000000 --- a/vendor/golang.org/x/text/encoding/internal/identifier/gen.go +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bytes" - "encoding/xml" - "fmt" - "io" - "log" - "strings" - - "golang.org/x/text/internal/gen" -) - -type registry struct { - XMLName xml.Name `xml:"registry"` - Updated string `xml:"updated"` - Registry []struct { - ID string `xml:"id,attr"` - Record []struct { - Name string `xml:"name"` - Xref []struct { - Type string `xml:"type,attr"` - Data string `xml:"data,attr"` - } `xml:"xref"` - Desc struct { - Data string `xml:",innerxml"` - // Any []struct { - // Data string `xml:",chardata"` - // } `xml:",any"` - // Data string `xml:",chardata"` - } `xml:"description,"` - MIB string `xml:"value"` - Alias []string `xml:"alias"` - MIME string `xml:"preferred_alias"` - } `xml:"record"` - } `xml:"registry"` -} - -func main() { - r := gen.OpenIANAFile("assignments/character-sets/character-sets.xml") - reg := ®istry{} - if err := xml.NewDecoder(r).Decode(®); err != nil && err != io.EOF { - log.Fatalf("Error decoding charset registry: %v", err) - } - if len(reg.Registry) == 0 || reg.Registry[0].ID != "character-sets-1" { - log.Fatalf("Unexpected ID %s", reg.Registry[0].ID) - } - - w := &bytes.Buffer{} - fmt.Fprintf(w, "const (\n") - for _, rec := range reg.Registry[0].Record { - constName := "" - for _, a := range rec.Alias { - if strings.HasPrefix(a, "cs") && strings.IndexByte(a, '-') == -1 { - // Some of the constant definitions have comments in them. Strip those. - constName = strings.Title(strings.SplitN(a[2:], "\n", 2)[0]) - } - } - if constName == "" { - switch rec.MIB { - case "2085": - constName = "HZGB2312" // Not listed as alias for some reason. - default: - log.Fatalf("No cs alias defined for %s.", rec.MIB) - } - } - if rec.MIME != "" { - rec.MIME = fmt.Sprintf(" (MIME: %s)", rec.MIME) - } - fmt.Fprintf(w, "// %s is the MIB identifier with IANA name %s%s.\n//\n", constName, rec.Name, rec.MIME) - if len(rec.Desc.Data) > 0 { - fmt.Fprint(w, "// ") - d := xml.NewDecoder(strings.NewReader(rec.Desc.Data)) - inElem := true - attr := "" - for { - t, err := d.Token() - if err != nil { - if err != io.EOF { - log.Fatal(err) - } - break - } - switch x := t.(type) { - case xml.CharData: - attr = "" // Don't need attribute info. - a := bytes.Split([]byte(x), []byte("\n")) - for i, b := range a { - if b = bytes.TrimSpace(b); len(b) != 0 { - if !inElem && i > 0 { - fmt.Fprint(w, "\n// ") - } - inElem = false - fmt.Fprintf(w, "%s ", string(b)) - } - } - case xml.StartElement: - if x.Name.Local == "xref" { - inElem = true - use := false - for _, a := range x.Attr { - if a.Name.Local == "type" { - use = use || a.Value != "person" - } - if a.Name.Local == "data" && use { - attr = a.Value + " " - } - } - } - case xml.EndElement: - inElem = false - fmt.Fprint(w, attr) - } - } - fmt.Fprint(w, "\n") - } - for _, x := range rec.Xref { - switch x.Type { - case "rfc": - fmt.Fprintf(w, "// Reference: %s\n", strings.ToUpper(x.Data)) - case "uri": - fmt.Fprintf(w, "// Reference: %s\n", x.Data) - } - } - fmt.Fprintf(w, "%s MIB = %s\n", constName, rec.MIB) - fmt.Fprintln(w) - } - fmt.Fprintln(w, ")") - - gen.WriteGoFile("mib.go", "identifier", w.Bytes()) -} diff --git a/vendor/golang.org/x/text/encoding/japanese/maketables.go b/vendor/golang.org/x/text/encoding/japanese/maketables.go deleted file mode 100644 index d6c10deb0..000000000 --- a/vendor/golang.org/x/text/encoding/japanese/maketables.go +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -// TODO: Emoji extensions? -// http://www.unicode.org/faq/emoji_dingbats.html -// http://www.unicode.org/Public/UNIDATA/EmojiSources.txt - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -type entry struct { - jisCode, table int -} - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS.\n") - fmt.Printf(`package japanese // import "golang.org/x/text/encoding/japanese"` + "\n\n") - - reverse := [65536]entry{} - for i := range reverse { - reverse[i].table = -1 - } - - tables := []struct { - url string - name string - }{ - {"http://encoding.spec.whatwg.org/index-jis0208.txt", "0208"}, - {"http://encoding.spec.whatwg.org/index-jis0212.txt", "0212"}, - } - for i, table := range tables { - res, err := http.Get(table.url) - if err != nil { - log.Fatalf("%q: Get: %v", table.url, err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := 0, uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("%q: could not parse %q", table.url, s) - } - if x < 0 || 120*94 <= x { - log.Fatalf("%q: JIS code %d is out of range", table.url, x) - } - mapping[x] = y - if reverse[y].table == -1 { - reverse[y] = entry{jisCode: x, table: i} - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("%q: scanner error: %v", table.url, err) - } - - fmt.Printf("// jis%sDecode is the decoding table from JIS %s code to Unicode.\n// It is defined at %s\n", - table.name, table.name, table.url) - fmt.Printf("var jis%sDecode = [...]uint16{\n", table.name) - for i, m := range mapping { - if m != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, m) - } - } - fmt.Printf("}\n\n") - } - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v.table == -1 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const (\n") - fmt.Printf("\tjis0208 = 1\n") - fmt.Printf("\tjis0212 = 2\n") - fmt.Printf("\tcodeMask = 0x7f\n") - fmt.Printf("\tcodeShift = 7\n") - fmt.Printf("\ttableShift = 14\n") - fmt.Printf(")\n\n") - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to JIS code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("//\n") - fmt.Printf("// The high two bits of the value record whether the JIS code comes from the\n") - fmt.Printf("// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2).\n") - fmt.Printf("// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the\n") - fmt.Printf("// JIS code (94*j1 + j2) within that table.\n") - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x.table == -1 { - continue - } - fmt.Printf("\t%d - %d: jis%s<<14 | 0x%02X<<7 | 0x%02X,\n", - j, v.low, tables[x.table].name, x.jisCode/94, x.jisCode%94) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/korean/maketables.go b/vendor/golang.org/x/text/encoding/korean/maketables.go deleted file mode 100644 index c84034fb6..000000000 --- a/vendor/golang.org/x/text/encoding/korean/maketables.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package korean provides Korean encodings such as EUC-KR.\n") - fmt.Printf(`package korean // import "golang.org/x/text/encoding/korean"` + "\n\n") - - res, err := http.Get("http://encoding.spec.whatwg.org/index-euc-kr.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - reverse := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 178*(0xc7-0x81)+(0xfe-0xc7)*94+(0xff-0xa1) <= x { - log.Fatalf("EUC-KR code %d is out of range", x) - } - mapping[x] = y - if reverse[y] == 0 { - c0, c1 := uint16(0), uint16(0) - if x < 178*(0xc7-0x81) { - c0 = uint16(x/178) + 0x81 - c1 = uint16(x % 178) - switch { - case c1 < 1*26: - c1 += 0x41 - case c1 < 2*26: - c1 += 0x47 - default: - c1 += 0x4d - } - } else { - x -= 178 * (0xc7 - 0x81) - c0 = uint16(x/94) + 0xc7 - c1 = uint16(x%94) + 0xa1 - } - reverse[y] = c0<<8 | c1 - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from EUC-KR code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt\n") - fmt.Printf("var decode = [...]uint16{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to EUC-KR code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go deleted file mode 100644 index 55016c786..000000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package simplifiedchinese provides Simplified Chinese encodings such as GBK.\n") - fmt.Printf(`package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese"` + "\n\n") - - printGB18030() - printGBK() -} - -func printGB18030() { - res, err := http.Get("http://encoding.spec.whatwg.org/index-gb18030.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - fmt.Printf("// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt\n") - fmt.Printf("var gb18030 = [...][2]uint16{\n") - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint32(0), uint32(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0x10000 && y < 0x10000 { - fmt.Printf("\t{0x%04x, 0x%04x},\n", x, y) - } - } - fmt.Printf("}\n\n") -} - -func printGBK() { - res, err := http.Get("http://encoding.spec.whatwg.org/index-gbk.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - reverse := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 126*190 <= x { - log.Fatalf("GBK code %d is out of range", x) - } - mapping[x] = y - if reverse[y] == 0 { - c0, c1 := x/190, x%190 - if c1 >= 0x3f { - c1++ - } - reverse[y] = (0x81+c0)<<8 | (0x40 + c1) - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from GBK code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt\n") - fmt.Printf("var decode = [...]uint16{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to GBK code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go deleted file mode 100644 index cf7fdb31a..000000000 --- a/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package traditionalchinese provides Traditional Chinese encodings such as Big5.\n") - fmt.Printf(`package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese"` + "\n\n") - - res, err := http.Get("http://encoding.spec.whatwg.org/index-big5.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint32{} - reverse := [65536 * 4]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint32(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 126*157 <= x { - log.Fatalf("Big5 code %d is out of range", x) - } - mapping[x] = y - - // The WHATWG spec http://encoding.spec.whatwg.org/#indexes says that - // "The index pointer for code point in index is the first pointer - // corresponding to code point in index", which would normally mean - // that the code below should be guarded by "if reverse[y] == 0", but - // last instead of first seems to match the behavior of - // "iconv -f UTF-8 -t BIG5". For example, U+8005 ่€… occurs twice in - // http://encoding.spec.whatwg.org/index-big5.txt, as index 2148 - // (encoded as "\x8e\xcd") and index 6543 (encoded as "\xaa\xcc") - // and "echo ่€… | iconv -f UTF-8 -t BIG5 | xxd" gives "\xaa\xcc". - c0, c1 := x/157, x%157 - if c1 < 0x3f { - c1 += 0x40 - } else { - c1 += 0x62 - } - reverse[y] = (0x81+c0)<<8 | c1 - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from Big5 code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-big5.txt\n") - fmt.Printf("var decode = [...]uint32{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%08X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to Big5 code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%6d, %6d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/language/gen.go b/vendor/golang.org/x/text/language/gen.go deleted file mode 100644 index 302f1940a..000000000 --- a/vendor/golang.org/x/text/language/gen.go +++ /dev/null @@ -1,1712 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Language tag table generator. -// Data read from the web. - -package main - -import ( - "bufio" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "math" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/tag" - "golang.org/x/text/unicode/cldr" -) - -var ( - test = flag.Bool("test", - false, - "test existing tables; can be used to compare web data with package data.") - outputFile = flag.String("output", - "tables.go", - "output file for generated tables") -) - -var comment = []string{ - ` -lang holds an alphabetically sorted list of ISO-639 language identifiers. -All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag. -For 2-byte language identifiers, the two successive bytes have the following meaning: - - if the first letter of the 2- and 3-letter ISO codes are the same: - the second and third letter of the 3-letter ISO code. - - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. -For 3-byte language identifiers the 4th byte is 0.`, - ` -langNoIndex is a bit vector of all 3-letter language codes that are not used as an index -in lookup tables. The language ids for these language codes are derived directly -from the letters and are not consecutive.`, - ` -altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives -to 2-letter language codes that cannot be derived using the method described above. -Each 3-letter code is followed by its 1-byte langID.`, - ` -altLangIndex is used to convert indexes in altLangISO3 to langIDs.`, - ` -langAliasMap maps langIDs to their suggested replacements.`, - ` -script is an alphabetically sorted list of ISO 15924 codes. The index -of the script in the string, divided by 4, is the internal scriptID.`, - ` -isoRegionOffset needs to be added to the index of regionISO to obtain the regionID -for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for -the UN.M49 codes used for groups.)`, - ` -regionISO holds a list of alphabetically sorted 2-letter ISO region codes. -Each 2-letter codes is followed by two bytes with the following meaning: - - [A-Z}{2}: the first letter of the 2-letter code plus these two - letters form the 3-letter ISO code. - - 0, n: index into altRegionISO3.`, - ` -regionTypes defines the status of a region for various standards.`, - ` -m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are -codes indicating collections of regions.`, - ` -m49Index gives indexes into fromM49 based on the three most significant bits -of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in - fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] -for an entry where the first 7 bits match the 7 lsb of the UN.M49 code. -The region code is stored in the 9 lsb of the indexed value.`, - ` -fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details.`, - ` -altRegionISO3 holds a list of 3-letter region codes that cannot be -mapped to 2-letter codes using the default algorithm. This is a short list.`, - ` -altRegionIDs holds a list of regionIDs the positions of which match those -of the 3-letter ISO codes in altRegionISO3.`, - ` -variantNumSpecialized is the number of specialized variants in variants.`, - ` -suppressScript is an index from langID to the dominant script for that language, -if it exists. If a script is given, it should be suppressed from the language tag.`, - ` -likelyLang is a lookup table, indexed by langID, for the most likely -scripts and regions given incomplete information. If more entries exist for a -given language, region and script are the index and size respectively -of the list in likelyLangList.`, - ` -likelyLangList holds lists info associated with likelyLang.`, - ` -likelyRegion is a lookup table, indexed by regionID, for the most likely -languages and scripts given incomplete information. If more entries exist -for a given regionID, lang and script are the index and size respectively -of the list in likelyRegionList. -TODO: exclude containers and user-definable regions from the list.`, - ` -likelyRegionList holds lists info associated with likelyRegion.`, - ` -likelyScript is a lookup table, indexed by scriptID, for the most likely -languages and regions given a script.`, - ` -matchLang holds pairs of langIDs of base languages that are typically -mutually intelligible. Each pair is associated with a confidence and -whether the intelligibility goes one or both ways.`, - ` -matchScript holds pairs of scriptIDs where readers of one script -can typically also read the other. Each is associated with a confidence.`, - ` -nRegionGroups is the number of region groups.`, - ` -regionInclusion maps region identifiers to sets of regions in regionInclusionBits, -where each set holds all groupings that are directly connected in a region -containment graph.`, - ` -regionInclusionBits is an array of bit vectors where every vector represents -a set of region groupings. These sets are used to compute the distance -between two regions for the purpose of language matching.`, - ` -regionInclusionNext marks, for each entry in regionInclusionBits, the set of -all groups that are reachable from the groups set in the respective entry.`, -} - -// TODO: consider changing some of these structures to tries. This can reduce -// memory, but may increase the need for memory allocations. This could be -// mitigated if we can piggyback on language tags for common cases. - -func failOnError(e error) { - if e != nil { - log.Panic(e) - } -} - -type setType int - -const ( - Indexed setType = 1 + iota // all elements must be of same size - Linear -) - -type stringSet struct { - s []string - sorted, frozen bool - - // We often need to update values after the creation of an index is completed. - // We include a convenience map for keeping track of this. - update map[string]string - typ setType // used for checking. -} - -func (ss *stringSet) clone() stringSet { - c := *ss - c.s = append([]string(nil), c.s...) - return c -} - -func (ss *stringSet) setType(t setType) { - if ss.typ != t && ss.typ != 0 { - log.Panicf("type %d cannot be assigned as it was already %d", t, ss.typ) - } -} - -// parse parses a whitespace-separated string and initializes ss with its -// components. -func (ss *stringSet) parse(s string) { - scan := bufio.NewScanner(strings.NewReader(s)) - scan.Split(bufio.ScanWords) - for scan.Scan() { - ss.add(scan.Text()) - } -} - -func (ss *stringSet) assertChangeable() { - if ss.frozen { - log.Panic("attempt to modify a frozen stringSet") - } -} - -func (ss *stringSet) add(s string) { - ss.assertChangeable() - ss.s = append(ss.s, s) - ss.sorted = ss.frozen -} - -func (ss *stringSet) freeze() { - ss.compact() - ss.frozen = true -} - -func (ss *stringSet) compact() { - if ss.sorted { - return - } - a := ss.s - sort.Strings(a) - k := 0 - for i := 1; i < len(a); i++ { - if a[k] != a[i] { - a[k+1] = a[i] - k++ - } - } - ss.s = a[:k+1] - ss.sorted = ss.frozen -} - -type funcSorter struct { - fn func(a, b string) bool - sort.StringSlice -} - -func (s funcSorter) Less(i, j int) bool { - return s.fn(s.StringSlice[i], s.StringSlice[j]) -} - -func (ss *stringSet) sortFunc(f func(a, b string) bool) { - ss.compact() - sort.Sort(funcSorter{f, sort.StringSlice(ss.s)}) -} - -func (ss *stringSet) remove(s string) { - ss.assertChangeable() - if i, ok := ss.find(s); ok { - copy(ss.s[i:], ss.s[i+1:]) - ss.s = ss.s[:len(ss.s)-1] - } -} - -func (ss *stringSet) replace(ol, nu string) { - ss.s[ss.index(ol)] = nu - ss.sorted = ss.frozen -} - -func (ss *stringSet) index(s string) int { - ss.setType(Indexed) - i, ok := ss.find(s) - if !ok { - if i < len(ss.s) { - log.Panicf("find: item %q is not in list. Closest match is %q.", s, ss.s[i]) - } - log.Panicf("find: item %q is not in list", s) - - } - return i -} - -func (ss *stringSet) find(s string) (int, bool) { - ss.compact() - i := sort.SearchStrings(ss.s, s) - return i, i != len(ss.s) && ss.s[i] == s -} - -func (ss *stringSet) slice() []string { - ss.compact() - return ss.s -} - -func (ss *stringSet) updateLater(v, key string) { - if ss.update == nil { - ss.update = map[string]string{} - } - ss.update[v] = key -} - -// join joins the string and ensures that all entries are of the same length. -func (ss *stringSet) join() string { - ss.setType(Indexed) - n := len(ss.s[0]) - for _, s := range ss.s { - if len(s) != n { - log.Panicf("join: not all entries are of the same length: %q", s) - } - } - ss.s = append(ss.s, strings.Repeat("\xff", n)) - return strings.Join(ss.s, "") -} - -// ianaEntry holds information for an entry in the IANA Language Subtag Repository. -// All types use the same entry. -// See http://tools.ietf.org/html/bcp47#section-5.1 for a description of the various -// fields. -type ianaEntry struct { - typ string - description []string - scope string - added string - preferred string - deprecated string - suppressScript string - macro string - prefix []string -} - -type builder struct { - w *gen.CodeWriter - hw io.Writer // MultiWriter for w and w.Hash - data *cldr.CLDR - supp *cldr.SupplementalData - - // indices - locale stringSet // common locales - lang stringSet // canonical language ids (2 or 3 letter ISO codes) with data - langNoIndex stringSet // 3-letter ISO codes with no associated data - script stringSet // 4-letter ISO codes - region stringSet // 2-letter ISO or 3-digit UN M49 codes - variant stringSet // 4-8-alphanumeric variant code. - - // Region codes that are groups with their corresponding group IDs. - groups map[int]index - - // langInfo - registry map[string]*ianaEntry -} - -type index uint - -func newBuilder(w *gen.CodeWriter) *builder { - r := gen.OpenCLDRCoreZip() - defer r.Close() - d := &cldr.Decoder{} - data, err := d.DecodeZip(r) - failOnError(err) - b := builder{ - w: w, - hw: io.MultiWriter(w, w.Hash), - data: data, - supp: data.Supplemental(), - } - b.parseRegistry() - return &b -} - -func (b *builder) parseRegistry() { - r := gen.OpenIANAFile("assignments/language-subtag-registry") - defer r.Close() - b.registry = make(map[string]*ianaEntry) - - scan := bufio.NewScanner(r) - scan.Split(bufio.ScanWords) - var record *ianaEntry - for more := scan.Scan(); more; { - key := scan.Text() - more = scan.Scan() - value := scan.Text() - switch key { - case "Type:": - record = &ianaEntry{typ: value} - case "Subtag:", "Tag:": - if s := strings.SplitN(value, "..", 2); len(s) > 1 { - for a := s[0]; a <= s[1]; a = inc(a) { - b.addToRegistry(a, record) - } - } else { - b.addToRegistry(value, record) - } - case "Suppress-Script:": - record.suppressScript = value - case "Added:": - record.added = value - case "Deprecated:": - record.deprecated = value - case "Macrolanguage:": - record.macro = value - case "Preferred-Value:": - record.preferred = value - case "Prefix:": - record.prefix = append(record.prefix, value) - case "Scope:": - record.scope = value - case "Description:": - buf := []byte(value) - for more = scan.Scan(); more; more = scan.Scan() { - b := scan.Bytes() - if b[0] == '%' || b[len(b)-1] == ':' { - break - } - buf = append(buf, ' ') - buf = append(buf, b...) - } - record.description = append(record.description, string(buf)) - continue - default: - continue - } - more = scan.Scan() - } - if scan.Err() != nil { - log.Panic(scan.Err()) - } -} - -func (b *builder) addToRegistry(key string, entry *ianaEntry) { - if info, ok := b.registry[key]; ok { - if info.typ != "language" || entry.typ != "extlang" { - log.Fatalf("parseRegistry: tag %q already exists", key) - } - } else { - b.registry[key] = entry - } -} - -var commentIndex = make(map[string]string) - -func init() { - for _, s := range comment { - key := strings.TrimSpace(strings.SplitN(s, " ", 2)[0]) - commentIndex[key] = s - } -} - -func (b *builder) comment(name string) { - if s := commentIndex[name]; len(s) > 0 { - b.w.WriteComment(s) - } else { - fmt.Fprintln(b.w) - } -} - -func (b *builder) pf(f string, x ...interface{}) { - fmt.Fprintf(b.hw, f, x...) - fmt.Fprint(b.hw, "\n") -} - -func (b *builder) p(x ...interface{}) { - fmt.Fprintln(b.hw, x...) -} - -func (b *builder) addSize(s int) { - b.w.Size += s - b.pf("// Size: %d bytes", s) -} - -func (b *builder) writeConst(name string, x interface{}) { - b.comment(name) - b.w.WriteConst(name, x) -} - -// writeConsts computes f(v) for all v in values and writes the results -// as constants named _v to a single constant block. -func (b *builder) writeConsts(f func(string) int, values ...string) { - b.pf("const (") - for _, v := range values { - b.pf("\t_%s = %v", v, f(v)) - } - b.pf(")") -} - -// writeType writes the type of the given value, which must be a struct. -func (b *builder) writeType(value interface{}) { - b.comment(reflect.TypeOf(value).Name()) - b.w.WriteType(value) -} - -func (b *builder) writeSlice(name string, ss interface{}) { - b.writeSliceAddSize(name, 0, ss) -} - -func (b *builder) writeSliceAddSize(name string, extraSize int, ss interface{}) { - b.comment(name) - b.w.Size += extraSize - v := reflect.ValueOf(ss) - t := v.Type().Elem() - b.pf("// Size: %d bytes, %d elements", v.Len()*int(t.Size())+extraSize, v.Len()) - - fmt.Fprintf(b.w, "var %s = ", name) - b.w.WriteArray(ss) - b.p() -} - -type fromTo struct { - from, to uint16 -} - -func (b *builder) writeSortedMap(name string, ss *stringSet, index func(s string) uint16) { - ss.sortFunc(func(a, b string) bool { - return index(a) < index(b) - }) - m := []fromTo{} - for _, s := range ss.s { - m = append(m, fromTo{index(s), index(ss.update[s])}) - } - b.writeSlice(name, m) -} - -const base = 'z' - 'a' + 1 - -func strToInt(s string) uint { - v := uint(0) - for i := 0; i < len(s); i++ { - v *= base - v += uint(s[i] - 'a') - } - return v -} - -// converts the given integer to the original ASCII string passed to strToInt. -// len(s) must match the number of characters obtained. -func intToStr(v uint, s []byte) { - for i := len(s) - 1; i >= 0; i-- { - s[i] = byte(v%base) + 'a' - v /= base - } -} - -func (b *builder) writeBitVector(name string, ss []string) { - vec := make([]uint8, int(math.Ceil(math.Pow(base, float64(len(ss[0])))/8))) - for _, s := range ss { - v := strToInt(s) - vec[v/8] |= 1 << (v % 8) - } - b.writeSlice(name, vec) -} - -// TODO: convert this type into a list or two-stage trie. -func (b *builder) writeMapFunc(name string, m map[string]string, f func(string) uint16) { - b.comment(name) - v := reflect.ValueOf(m) - sz := v.Len() * (2 + int(v.Type().Key().Size())) - for _, k := range m { - sz += len(k) - } - b.addSize(sz) - keys := []string{} - b.pf(`var %s = map[string]uint16{`, name) - for k := range m { - keys = append(keys, k) - } - sort.Strings(keys) - for _, k := range keys { - b.pf("\t%q: %v,", k, f(m[k])) - } - b.p("}") -} - -func (b *builder) writeMap(name string, m interface{}) { - b.comment(name) - v := reflect.ValueOf(m) - sz := v.Len() * (2 + int(v.Type().Key().Size()) + int(v.Type().Elem().Size())) - b.addSize(sz) - f := strings.FieldsFunc(fmt.Sprintf("%#v", m), func(r rune) bool { - return strings.IndexRune("{}, ", r) != -1 - }) - sort.Strings(f[1:]) - b.pf(`var %s = %s{`, name, f[0]) - for _, kv := range f[1:] { - b.pf("\t%s,", kv) - } - b.p("}") -} - -func (b *builder) langIndex(s string) uint16 { - if s == "und" { - return 0 - } - if i, ok := b.lang.find(s); ok { - return uint16(i) - } - return uint16(strToInt(s)) + uint16(len(b.lang.s)) -} - -// inc advances the string to its lexicographical successor. -func inc(s string) string { - const maxTagLength = 4 - var buf [maxTagLength]byte - intToStr(strToInt(strings.ToLower(s))+1, buf[:len(s)]) - for i := 0; i < len(s); i++ { - if s[i] <= 'Z' { - buf[i] -= 'a' - 'A' - } - } - return string(buf[:len(s)]) -} - -func (b *builder) parseIndices() { - meta := b.supp.Metadata - - for k, v := range b.registry { - var ss *stringSet - switch v.typ { - case "language": - if len(k) == 2 || v.suppressScript != "" || v.scope == "special" { - b.lang.add(k) - continue - } else { - ss = &b.langNoIndex - } - case "region": - ss = &b.region - case "script": - ss = &b.script - case "variant": - ss = &b.variant - default: - continue - } - ss.add(k) - } - // Include any language for which there is data. - for _, lang := range b.data.Locales() { - if x := b.data.RawLDML(lang); false || - x.LocaleDisplayNames != nil || - x.Characters != nil || - x.Delimiters != nil || - x.Measurement != nil || - x.Dates != nil || - x.Numbers != nil || - x.Units != nil || - x.ListPatterns != nil || - x.Collations != nil || - x.Segmentations != nil || - x.Rbnf != nil || - x.Annotations != nil || - x.Metadata != nil { - - from := strings.Split(lang, "_") - if lang := from[0]; lang != "root" { - b.lang.add(lang) - } - } - } - // Include locales for plural rules, which uses a different structure. - for _, plurals := range b.data.Supplemental().Plurals { - for _, rules := range plurals.PluralRules { - for _, lang := range strings.Split(rules.Locales, " ") { - if lang = strings.Split(lang, "_")[0]; lang != "root" { - b.lang.add(lang) - } - } - } - } - // Include languages in likely subtags. - for _, m := range b.supp.LikelySubtags.LikelySubtag { - from := strings.Split(m.From, "_") - b.lang.add(from[0]) - } - // Include ISO-639 alpha-3 bibliographic entries. - for _, a := range meta.Alias.LanguageAlias { - if a.Reason == "bibliographic" { - b.langNoIndex.add(a.Type) - } - } - // Include regions in territoryAlias (not all are in the IANA registry!) - for _, reg := range b.supp.Metadata.Alias.TerritoryAlias { - if len(reg.Type) == 2 { - b.region.add(reg.Type) - } - } - - for _, s := range b.lang.s { - if len(s) == 3 { - b.langNoIndex.remove(s) - } - } - b.writeConst("numLanguages", len(b.lang.slice())+len(b.langNoIndex.slice())) - b.writeConst("numScripts", len(b.script.slice())) - b.writeConst("numRegions", len(b.region.slice())) - - // Add dummy codes at the start of each list to represent "unspecified". - b.lang.add("---") - b.script.add("----") - b.region.add("---") - - // common locales - b.locale.parse(meta.DefaultContent.Locales) -} - -// TODO: region inclusion data will probably not be use used in future matchers. - -func (b *builder) computeRegionGroups() { - b.groups = make(map[int]index) - - // Create group indices. - for i := 1; b.region.s[i][0] < 'A'; i++ { // Base M49 indices on regionID. - b.groups[i] = index(len(b.groups)) - } - for _, g := range b.supp.TerritoryContainment.Group { - // Skip UN and EURO zone as they are flattening the containment - // relationship. - if g.Type == "EZ" || g.Type == "UN" { - continue - } - group := b.region.index(g.Type) - if _, ok := b.groups[group]; !ok { - b.groups[group] = index(len(b.groups)) - } - } - if len(b.groups) > 64 { - log.Fatalf("only 64 groups supported, found %d", len(b.groups)) - } - b.writeConst("nRegionGroups", len(b.groups)) -} - -var langConsts = []string{ - "af", "am", "ar", "az", "bg", "bn", "ca", "cs", "da", "de", "el", "en", "es", - "et", "fa", "fi", "fil", "fr", "gu", "he", "hi", "hr", "hu", "hy", "id", "is", - "it", "ja", "ka", "kk", "km", "kn", "ko", "ky", "lo", "lt", "lv", "mk", "ml", - "mn", "mo", "mr", "ms", "mul", "my", "nb", "ne", "nl", "no", "pa", "pl", "pt", - "ro", "ru", "sh", "si", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", - "tl", "tn", "tr", "uk", "ur", "uz", "vi", "zh", "zu", - - // constants for grandfathered tags (if not already defined) - "jbo", "ami", "bnn", "hak", "tlh", "lb", "nv", "pwn", "tao", "tay", "tsu", - "nn", "sfb", "vgt", "sgg", "cmn", "nan", "hsn", -} - -// writeLanguage generates all tables needed for language canonicalization. -func (b *builder) writeLanguage() { - meta := b.supp.Metadata - - b.writeConst("nonCanonicalUnd", b.lang.index("und")) - b.writeConsts(func(s string) int { return int(b.langIndex(s)) }, langConsts...) - b.writeConst("langPrivateStart", b.langIndex("qaa")) - b.writeConst("langPrivateEnd", b.langIndex("qtz")) - - // Get language codes that need to be mapped (overlong 3-letter codes, - // deprecated 2-letter codes, legacy and grandfathered tags.) - langAliasMap := stringSet{} - aliasTypeMap := map[string]langAliasType{} - - // altLangISO3 get the alternative ISO3 names that need to be mapped. - altLangISO3 := stringSet{} - // Add dummy start to avoid the use of index 0. - altLangISO3.add("---") - altLangISO3.updateLater("---", "aa") - - lang := b.lang.clone() - for _, a := range meta.Alias.LanguageAlias { - if a.Replacement == "" { - a.Replacement = "und" - } - // TODO: support mapping to tags - repl := strings.SplitN(a.Replacement, "_", 2)[0] - if a.Reason == "overlong" { - if len(a.Replacement) == 2 && len(a.Type) == 3 { - lang.updateLater(a.Replacement, a.Type) - } - } else if len(a.Type) <= 3 { - switch a.Reason { - case "macrolanguage": - aliasTypeMap[a.Type] = langMacro - case "deprecated": - // handled elsewhere - continue - case "bibliographic", "legacy": - if a.Type == "no" { - continue - } - aliasTypeMap[a.Type] = langLegacy - default: - log.Fatalf("new %s alias: %s", a.Reason, a.Type) - } - langAliasMap.add(a.Type) - langAliasMap.updateLater(a.Type, repl) - } - } - // Manually add the mapping of "nb" (Norwegian) to its macro language. - // This can be removed if CLDR adopts this change. - langAliasMap.add("nb") - langAliasMap.updateLater("nb", "no") - aliasTypeMap["nb"] = langMacro - - for k, v := range b.registry { - // Also add deprecated values for 3-letter ISO codes, which CLDR omits. - if v.typ == "language" && v.deprecated != "" && v.preferred != "" { - langAliasMap.add(k) - langAliasMap.updateLater(k, v.preferred) - aliasTypeMap[k] = langDeprecated - } - } - // Fix CLDR mappings. - lang.updateLater("tl", "tgl") - lang.updateLater("sh", "hbs") - lang.updateLater("mo", "mol") - lang.updateLater("no", "nor") - lang.updateLater("tw", "twi") - lang.updateLater("nb", "nob") - lang.updateLater("ak", "aka") - lang.updateLater("bh", "bih") - - // Ensure that each 2-letter code is matched with a 3-letter code. - for _, v := range lang.s[1:] { - s, ok := lang.update[v] - if !ok { - if s, ok = lang.update[langAliasMap.update[v]]; !ok { - continue - } - lang.update[v] = s - } - if v[0] != s[0] { - altLangISO3.add(s) - altLangISO3.updateLater(s, v) - } - } - - // Complete canonicalized language tags. - lang.freeze() - for i, v := range lang.s { - // We can avoid these manual entries by using the IANA registry directly. - // Seems easier to update the list manually, as changes are rare. - // The panic in this loop will trigger if we miss an entry. - add := "" - if s, ok := lang.update[v]; ok { - if s[0] == v[0] { - add = s[1:] - } else { - add = string([]byte{0, byte(altLangISO3.index(s))}) - } - } else if len(v) == 3 { - add = "\x00" - } else { - log.Panicf("no data for long form of %q", v) - } - lang.s[i] += add - } - b.writeConst("lang", tag.Index(lang.join())) - - b.writeConst("langNoIndexOffset", len(b.lang.s)) - - // space of all valid 3-letter language identifiers. - b.writeBitVector("langNoIndex", b.langNoIndex.slice()) - - altLangIndex := []uint16{} - for i, s := range altLangISO3.slice() { - altLangISO3.s[i] += string([]byte{byte(len(altLangIndex))}) - if i > 0 { - idx := b.lang.index(altLangISO3.update[s]) - altLangIndex = append(altLangIndex, uint16(idx)) - } - } - b.writeConst("altLangISO3", tag.Index(altLangISO3.join())) - b.writeSlice("altLangIndex", altLangIndex) - - b.writeSortedMap("langAliasMap", &langAliasMap, b.langIndex) - types := make([]langAliasType, len(langAliasMap.s)) - for i, s := range langAliasMap.s { - types[i] = aliasTypeMap[s] - } - b.writeSlice("langAliasTypes", types) -} - -var scriptConsts = []string{ - "Latn", "Hani", "Hans", "Hant", "Qaaa", "Qaai", "Qabx", "Zinh", "Zyyy", - "Zzzz", -} - -func (b *builder) writeScript() { - b.writeConsts(b.script.index, scriptConsts...) - b.writeConst("script", tag.Index(b.script.join())) - - supp := make([]uint8, len(b.lang.slice())) - for i, v := range b.lang.slice()[1:] { - if sc := b.registry[v].suppressScript; sc != "" { - supp[i+1] = uint8(b.script.index(sc)) - } - } - b.writeSlice("suppressScript", supp) - - // There is only one deprecated script in CLDR. This value is hard-coded. - // We check here if the code must be updated. - for _, a := range b.supp.Metadata.Alias.ScriptAlias { - if a.Type != "Qaai" { - log.Panicf("unexpected deprecated stript %q", a.Type) - } - } -} - -func parseM49(s string) int16 { - if len(s) == 0 { - return 0 - } - v, err := strconv.ParseUint(s, 10, 10) - failOnError(err) - return int16(v) -} - -var regionConsts = []string{ - "001", "419", "BR", "CA", "ES", "GB", "MD", "PT", "UK", "US", - "ZZ", "XA", "XC", "XK", // Unofficial tag for Kosovo. -} - -func (b *builder) writeRegion() { - b.writeConsts(b.region.index, regionConsts...) - - isoOffset := b.region.index("AA") - m49map := make([]int16, len(b.region.slice())) - fromM49map := make(map[int16]int) - altRegionISO3 := "" - altRegionIDs := []uint16{} - - b.writeConst("isoRegionOffset", isoOffset) - - // 2-letter region lookup and mapping to numeric codes. - regionISO := b.region.clone() - regionISO.s = regionISO.s[isoOffset:] - regionISO.sorted = false - - regionTypes := make([]byte, len(b.region.s)) - - // Is the region valid BCP 47? - for s, e := range b.registry { - if len(s) == 2 && s == strings.ToUpper(s) { - i := b.region.index(s) - for _, d := range e.description { - if strings.Contains(d, "Private use") { - regionTypes[i] = iso3166UserAssigned - } - } - regionTypes[i] |= bcp47Region - } - } - - // Is the region a valid ccTLD? - r := gen.OpenIANAFile("domains/root/db") - defer r.Close() - - buf, err := ioutil.ReadAll(r) - failOnError(err) - re := regexp.MustCompile(`"/domains/root/db/([a-z]{2}).html"`) - for _, m := range re.FindAllSubmatch(buf, -1) { - i := b.region.index(strings.ToUpper(string(m[1]))) - regionTypes[i] |= ccTLD - } - - b.writeSlice("regionTypes", regionTypes) - - iso3Set := make(map[string]int) - update := func(iso2, iso3 string) { - i := regionISO.index(iso2) - if j, ok := iso3Set[iso3]; !ok && iso3[0] == iso2[0] { - regionISO.s[i] += iso3[1:] - iso3Set[iso3] = -1 - } else { - if ok && j >= 0 { - regionISO.s[i] += string([]byte{0, byte(j)}) - } else { - iso3Set[iso3] = len(altRegionISO3) - regionISO.s[i] += string([]byte{0, byte(len(altRegionISO3))}) - altRegionISO3 += iso3 - altRegionIDs = append(altRegionIDs, uint16(isoOffset+i)) - } - } - } - for _, tc := range b.supp.CodeMappings.TerritoryCodes { - i := regionISO.index(tc.Type) + isoOffset - if d := m49map[i]; d != 0 { - log.Panicf("%s found as a duplicate UN.M49 code of %03d", tc.Numeric, d) - } - m49 := parseM49(tc.Numeric) - m49map[i] = m49 - if r := fromM49map[m49]; r == 0 { - fromM49map[m49] = i - } else if r != i { - dep := b.registry[regionISO.s[r-isoOffset]].deprecated - if t := b.registry[tc.Type]; t != nil && dep != "" && (t.deprecated == "" || t.deprecated > dep) { - fromM49map[m49] = i - } - } - } - for _, ta := range b.supp.Metadata.Alias.TerritoryAlias { - if len(ta.Type) == 3 && ta.Type[0] <= '9' && len(ta.Replacement) == 2 { - from := parseM49(ta.Type) - if r := fromM49map[from]; r == 0 { - fromM49map[from] = regionISO.index(ta.Replacement) + isoOffset - } - } - } - for _, tc := range b.supp.CodeMappings.TerritoryCodes { - if len(tc.Alpha3) == 3 { - update(tc.Type, tc.Alpha3) - } - } - // This entries are not included in territoryCodes. Mostly 3-letter variants - // of deleted codes and an entry for QU. - for _, m := range []struct{ iso2, iso3 string }{ - {"CT", "CTE"}, - {"DY", "DHY"}, - {"HV", "HVO"}, - {"JT", "JTN"}, - {"MI", "MID"}, - {"NH", "NHB"}, - {"NQ", "ATN"}, - {"PC", "PCI"}, - {"PU", "PUS"}, - {"PZ", "PCZ"}, - {"RH", "RHO"}, - {"VD", "VDR"}, - {"WK", "WAK"}, - // These three-letter codes are used for others as well. - {"FQ", "ATF"}, - } { - update(m.iso2, m.iso3) - } - for i, s := range regionISO.s { - if len(s) != 4 { - regionISO.s[i] = s + " " - } - } - b.writeConst("regionISO", tag.Index(regionISO.join())) - b.writeConst("altRegionISO3", altRegionISO3) - b.writeSlice("altRegionIDs", altRegionIDs) - - // Create list of deprecated regions. - // TODO: consider inserting SF -> FI. Not included by CLDR, but is the only - // Transitionally-reserved mapping not included. - regionOldMap := stringSet{} - // Include regions in territoryAlias (not all are in the IANA registry!) - for _, reg := range b.supp.Metadata.Alias.TerritoryAlias { - if len(reg.Type) == 2 && reg.Reason == "deprecated" && len(reg.Replacement) == 2 { - regionOldMap.add(reg.Type) - regionOldMap.updateLater(reg.Type, reg.Replacement) - i, _ := regionISO.find(reg.Type) - j, _ := regionISO.find(reg.Replacement) - if k := m49map[i+isoOffset]; k == 0 { - m49map[i+isoOffset] = m49map[j+isoOffset] - } - } - } - b.writeSortedMap("regionOldMap", ®ionOldMap, func(s string) uint16 { - return uint16(b.region.index(s)) - }) - // 3-digit region lookup, groupings. - for i := 1; i < isoOffset; i++ { - m := parseM49(b.region.s[i]) - m49map[i] = m - fromM49map[m] = i - } - b.writeSlice("m49", m49map) - - const ( - searchBits = 7 - regionBits = 9 - ) - if len(m49map) >= 1< %d", len(m49map), 1<>searchBits] = int16(len(fromM49)) - } - b.writeSlice("m49Index", m49Index) - b.writeSlice("fromM49", fromM49) -} - -const ( - // TODO: put these lists in regionTypes as user data? Could be used for - // various optimizations and refinements and could be exposed in the API. - iso3166Except = "AC CP DG EA EU FX IC SU TA UK" - iso3166Trans = "AN BU CS NT TP YU ZR" // SF is not in our set of Regions. - // DY and RH are actually not deleted, but indeterminately reserved. - iso3166DelCLDR = "CT DD DY FQ HV JT MI NH NQ PC PU PZ RH VD WK YD" -) - -const ( - iso3166UserAssigned = 1 << iota - ccTLD - bcp47Region -) - -func find(list []string, s string) int { - for i, t := range list { - if t == s { - return i - } - } - return -1 -} - -// writeVariants generates per-variant information and creates a map from variant -// name to index value. We assign index values such that sorting multiple -// variants by index value will result in the correct order. -// There are two types of variants: specialized and general. Specialized variants -// are only applicable to certain language or language-script pairs. Generalized -// variants apply to any language. Generalized variants always sort after -// specialized variants. We will therefore always assign a higher index value -// to a generalized variant than any other variant. Generalized variants are -// sorted alphabetically among themselves. -// Specialized variants may also sort after other specialized variants. Such -// variants will be ordered after any of the variants they may follow. -// We assume that if a variant x is followed by a variant y, then for any prefix -// p of x, p-x is a prefix of y. This allows us to order tags based on the -// maximum of the length of any of its prefixes. -// TODO: it is possible to define a set of Prefix values on variants such that -// a total order cannot be defined to the point that this algorithm breaks. -// In other words, we cannot guarantee the same order of variants for the -// future using the same algorithm or for non-compliant combinations of -// variants. For this reason, consider using simple alphabetic sorting -// of variants and ignore Prefix restrictions altogether. -func (b *builder) writeVariant() { - generalized := stringSet{} - specialized := stringSet{} - specializedExtend := stringSet{} - // Collate the variants by type and check assumptions. - for _, v := range b.variant.slice() { - e := b.registry[v] - if len(e.prefix) == 0 { - generalized.add(v) - continue - } - c := strings.Split(e.prefix[0], "-") - hasScriptOrRegion := false - if len(c) > 1 { - _, hasScriptOrRegion = b.script.find(c[1]) - if !hasScriptOrRegion { - _, hasScriptOrRegion = b.region.find(c[1]) - - } - } - if len(c) == 1 || len(c) == 2 && hasScriptOrRegion { - // Variant is preceded by a language. - specialized.add(v) - continue - } - // Variant is preceded by another variant. - specializedExtend.add(v) - prefix := c[0] + "-" - if hasScriptOrRegion { - prefix += c[1] - } - for _, p := range e.prefix { - // Verify that the prefix minus the last element is a prefix of the - // predecessor element. - i := strings.LastIndex(p, "-") - pred := b.registry[p[i+1:]] - if find(pred.prefix, p[:i]) < 0 { - log.Fatalf("prefix %q for variant %q not consistent with predecessor spec", p, v) - } - // The sorting used below does not work in the general case. It works - // if we assume that variants that may be followed by others only have - // prefixes of the same length. Verify this. - count := strings.Count(p[:i], "-") - for _, q := range pred.prefix { - if c := strings.Count(q, "-"); c != count { - log.Fatalf("variant %q preceding %q has a prefix %q of size %d; want %d", p[i+1:], v, q, c, count) - } - } - if !strings.HasPrefix(p, prefix) { - log.Fatalf("prefix %q of variant %q should start with %q", p, v, prefix) - } - } - } - - // Sort extended variants. - a := specializedExtend.s - less := func(v, w string) bool { - // Sort by the maximum number of elements. - maxCount := func(s string) (max int) { - for _, p := range b.registry[s].prefix { - if c := strings.Count(p, "-"); c > max { - max = c - } - } - return - } - if cv, cw := maxCount(v), maxCount(w); cv != cw { - return cv < cw - } - // Sort by name as tie breaker. - return v < w - } - sort.Sort(funcSorter{less, sort.StringSlice(a)}) - specializedExtend.frozen = true - - // Create index from variant name to index. - variantIndex := make(map[string]uint8) - add := func(s []string) { - for _, v := range s { - variantIndex[v] = uint8(len(variantIndex)) - } - } - add(specialized.slice()) - add(specializedExtend.s) - numSpecialized := len(variantIndex) - add(generalized.slice()) - if n := len(variantIndex); n > 255 { - log.Fatalf("maximum number of variants exceeded: was %d; want <= 255", n) - } - b.writeMap("variantIndex", variantIndex) - b.writeConst("variantNumSpecialized", numSpecialized) -} - -func (b *builder) writeLanguageInfo() { -} - -// writeLikelyData writes tables that are used both for finding parent relations and for -// language matching. Each entry contains additional bits to indicate the status of the -// data to know when it cannot be used for parent relations. -func (b *builder) writeLikelyData() { - const ( - isList = 1 << iota - scriptInFrom - regionInFrom - ) - type ( // generated types - likelyScriptRegion struct { - region uint16 - script uint8 - flags uint8 - } - likelyLangScript struct { - lang uint16 - script uint8 - flags uint8 - } - likelyLangRegion struct { - lang uint16 - region uint16 - } - // likelyTag is used for getting likely tags for group regions, where - // the likely region might be a region contained in the group. - likelyTag struct { - lang uint16 - region uint16 - script uint8 - } - ) - var ( // generated variables - likelyRegionGroup = make([]likelyTag, len(b.groups)) - likelyLang = make([]likelyScriptRegion, len(b.lang.s)) - likelyRegion = make([]likelyLangScript, len(b.region.s)) - likelyScript = make([]likelyLangRegion, len(b.script.s)) - likelyLangList = []likelyScriptRegion{} - likelyRegionList = []likelyLangScript{} - ) - type fromTo struct { - from, to []string - } - langToOther := map[int][]fromTo{} - regionToOther := map[int][]fromTo{} - for _, m := range b.supp.LikelySubtags.LikelySubtag { - from := strings.Split(m.From, "_") - to := strings.Split(m.To, "_") - if len(to) != 3 { - log.Fatalf("invalid number of subtags in %q: found %d, want 3", m.To, len(to)) - } - if len(from) > 3 { - log.Fatalf("invalid number of subtags: found %d, want 1-3", len(from)) - } - if from[0] != to[0] && from[0] != "und" { - log.Fatalf("unexpected language change in expansion: %s -> %s", from, to) - } - if len(from) == 3 { - if from[2] != to[2] { - log.Fatalf("unexpected region change in expansion: %s -> %s", from, to) - } - if from[0] != "und" { - log.Fatalf("unexpected fully specified from tag: %s -> %s", from, to) - } - } - if len(from) == 1 || from[0] != "und" { - id := 0 - if from[0] != "und" { - id = b.lang.index(from[0]) - } - langToOther[id] = append(langToOther[id], fromTo{from, to}) - } else if len(from) == 2 && len(from[1]) == 4 { - sid := b.script.index(from[1]) - likelyScript[sid].lang = uint16(b.langIndex(to[0])) - likelyScript[sid].region = uint16(b.region.index(to[2])) - } else { - r := b.region.index(from[len(from)-1]) - if id, ok := b.groups[r]; ok { - if from[0] != "und" { - log.Fatalf("region changed unexpectedly: %s -> %s", from, to) - } - likelyRegionGroup[id].lang = uint16(b.langIndex(to[0])) - likelyRegionGroup[id].script = uint8(b.script.index(to[1])) - likelyRegionGroup[id].region = uint16(b.region.index(to[2])) - } else { - regionToOther[r] = append(regionToOther[r], fromTo{from, to}) - } - } - } - b.writeType(likelyLangRegion{}) - b.writeSlice("likelyScript", likelyScript) - - for id := range b.lang.s { - list := langToOther[id] - if len(list) == 1 { - likelyLang[id].region = uint16(b.region.index(list[0].to[2])) - likelyLang[id].script = uint8(b.script.index(list[0].to[1])) - } else if len(list) > 1 { - likelyLang[id].flags = isList - likelyLang[id].region = uint16(len(likelyLangList)) - likelyLang[id].script = uint8(len(list)) - for _, x := range list { - flags := uint8(0) - if len(x.from) > 1 { - if x.from[1] == x.to[2] { - flags = regionInFrom - } else { - flags = scriptInFrom - } - } - likelyLangList = append(likelyLangList, likelyScriptRegion{ - region: uint16(b.region.index(x.to[2])), - script: uint8(b.script.index(x.to[1])), - flags: flags, - }) - } - } - } - // TODO: merge suppressScript data with this table. - b.writeType(likelyScriptRegion{}) - b.writeSlice("likelyLang", likelyLang) - b.writeSlice("likelyLangList", likelyLangList) - - for id := range b.region.s { - list := regionToOther[id] - if len(list) == 1 { - likelyRegion[id].lang = uint16(b.langIndex(list[0].to[0])) - likelyRegion[id].script = uint8(b.script.index(list[0].to[1])) - if len(list[0].from) > 2 { - likelyRegion[id].flags = scriptInFrom - } - } else if len(list) > 1 { - likelyRegion[id].flags = isList - likelyRegion[id].lang = uint16(len(likelyRegionList)) - likelyRegion[id].script = uint8(len(list)) - for i, x := range list { - if len(x.from) == 2 && i != 0 || i > 0 && len(x.from) != 3 { - log.Fatalf("unspecified script must be first in list: %v at %d", x.from, i) - } - x := likelyLangScript{ - lang: uint16(b.langIndex(x.to[0])), - script: uint8(b.script.index(x.to[1])), - } - if len(list[0].from) > 2 { - x.flags = scriptInFrom - } - likelyRegionList = append(likelyRegionList, x) - } - } - } - b.writeType(likelyLangScript{}) - b.writeSlice("likelyRegion", likelyRegion) - b.writeSlice("likelyRegionList", likelyRegionList) - - b.writeType(likelyTag{}) - b.writeSlice("likelyRegionGroup", likelyRegionGroup) -} - -type mutualIntelligibility struct { - want, have uint16 - distance uint8 - oneway bool -} - -type scriptIntelligibility struct { - wantLang, haveLang uint16 - wantScript, haveScript uint8 - distance uint8 - // Always oneway -} - -type regionIntelligibility struct { - lang uint16 // compact language id - script uint8 // 0 means any - group uint8 // 0 means any; if bit 7 is set it means inverse - distance uint8 - // Always twoway. -} - -// writeMatchData writes tables with languages and scripts for which there is -// mutual intelligibility. The data is based on CLDR's languageMatching data. -// Note that we use a different algorithm than the one defined by CLDR and that -// we slightly modify the data. For example, we convert scores to confidence levels. -// We also drop all region-related data as we use a different algorithm to -// determine region equivalence. -func (b *builder) writeMatchData() { - lm := b.supp.LanguageMatching.LanguageMatches - cldr.MakeSlice(&lm).SelectAnyOf("type", "written_new") - - regionHierarchy := map[string][]string{} - for _, g := range b.supp.TerritoryContainment.Group { - regions := strings.Split(g.Contains, " ") - regionHierarchy[g.Type] = append(regionHierarchy[g.Type], regions...) - } - regionToGroups := make([]uint8, len(b.region.s)) - - idToIndex := map[string]uint8{} - for i, mv := range lm[0].MatchVariable { - if i > 6 { - log.Fatalf("Too many groups: %d", i) - } - idToIndex[mv.Id] = uint8(i + 1) - // TODO: also handle '-' - for _, r := range strings.Split(mv.Value, "+") { - todo := []string{r} - for k := 0; k < len(todo); k++ { - r := todo[k] - regionToGroups[b.region.index(r)] |= 1 << uint8(i) - todo = append(todo, regionHierarchy[r]...) - } - } - } - b.writeSlice("regionToGroups", regionToGroups) - - // maps language id to in- and out-of-group region. - paradigmLocales := [][3]uint16{} - locales := strings.Split(lm[0].ParadigmLocales[0].Locales, " ") - for i := 0; i < len(locales); i += 2 { - x := [3]uint16{} - for j := 0; j < 2; j++ { - pc := strings.SplitN(locales[i+j], "-", 2) - x[0] = b.langIndex(pc[0]) - if len(pc) == 2 { - x[1+j] = uint16(b.region.index(pc[1])) - } - } - paradigmLocales = append(paradigmLocales, x) - } - b.writeSlice("paradigmLocales", paradigmLocales) - - b.writeType(mutualIntelligibility{}) - b.writeType(scriptIntelligibility{}) - b.writeType(regionIntelligibility{}) - - matchLang := []mutualIntelligibility{} - matchScript := []scriptIntelligibility{} - matchRegion := []regionIntelligibility{} - // Convert the languageMatch entries in lists keyed by desired language. - for _, m := range lm[0].LanguageMatch { - // Different versions of CLDR use different separators. - desired := strings.Replace(m.Desired, "-", "_", -1) - supported := strings.Replace(m.Supported, "-", "_", -1) - d := strings.Split(desired, "_") - s := strings.Split(supported, "_") - if len(d) != len(s) { - log.Fatalf("not supported: desired=%q; supported=%q", desired, supported) - continue - } - distance, _ := strconv.ParseInt(m.Distance, 10, 8) - switch len(d) { - case 2: - if desired == supported && desired == "*_*" { - continue - } - // language-script pair. - matchScript = append(matchScript, scriptIntelligibility{ - wantLang: uint16(b.langIndex(d[0])), - haveLang: uint16(b.langIndex(s[0])), - wantScript: uint8(b.script.index(d[1])), - haveScript: uint8(b.script.index(s[1])), - distance: uint8(distance), - }) - if m.Oneway != "true" { - matchScript = append(matchScript, scriptIntelligibility{ - wantLang: uint16(b.langIndex(s[0])), - haveLang: uint16(b.langIndex(d[0])), - wantScript: uint8(b.script.index(s[1])), - haveScript: uint8(b.script.index(d[1])), - distance: uint8(distance), - }) - } - case 1: - if desired == supported && desired == "*" { - continue - } - if distance == 1 { - // nb == no is already handled by macro mapping. Check there - // really is only this case. - if d[0] != "no" || s[0] != "nb" { - log.Fatalf("unhandled equivalence %s == %s", s[0], d[0]) - } - continue - } - // TODO: consider dropping oneway field and just doubling the entry. - matchLang = append(matchLang, mutualIntelligibility{ - want: uint16(b.langIndex(d[0])), - have: uint16(b.langIndex(s[0])), - distance: uint8(distance), - oneway: m.Oneway == "true", - }) - case 3: - if desired == supported && desired == "*_*_*" { - continue - } - if desired != supported { - // This is now supported by CLDR, but only one case, which - // should already be covered by paradigm locales. For instance, - // test case "und, en, en-GU, en-IN, en-GB ; en-ZA ; en-GB" in - // testdata/CLDRLocaleMatcherTest.txt tests this. - if supported != "en_*_GB" { - log.Fatalf("not supported: desired=%q; supported=%q", desired, supported) - } - continue - } - ri := regionIntelligibility{ - lang: b.langIndex(d[0]), - distance: uint8(distance), - } - if d[1] != "*" { - ri.script = uint8(b.script.index(d[1])) - } - switch { - case d[2] == "*": - ri.group = 0x80 // not contained in anything - case strings.HasPrefix(d[2], "$!"): - ri.group = 0x80 - d[2] = "$" + d[2][len("$!"):] - fallthrough - case strings.HasPrefix(d[2], "$"): - ri.group |= idToIndex[d[2]] - } - matchRegion = append(matchRegion, ri) - default: - log.Fatalf("not supported: desired=%q; supported=%q", desired, supported) - } - } - sort.SliceStable(matchLang, func(i, j int) bool { - return matchLang[i].distance < matchLang[j].distance - }) - b.writeSlice("matchLang", matchLang) - - sort.SliceStable(matchScript, func(i, j int) bool { - return matchScript[i].distance < matchScript[j].distance - }) - b.writeSlice("matchScript", matchScript) - - sort.SliceStable(matchRegion, func(i, j int) bool { - return matchRegion[i].distance < matchRegion[j].distance - }) - b.writeSlice("matchRegion", matchRegion) -} - -func (b *builder) writeRegionInclusionData() { - var ( - // mm holds for each group the set of groups with a distance of 1. - mm = make(map[int][]index) - - // containment holds for each group the transitive closure of - // containment of other groups. - containment = make(map[index][]index) - ) - for _, g := range b.supp.TerritoryContainment.Group { - // Skip UN and EURO zone as they are flattening the containment - // relationship. - if g.Type == "EZ" || g.Type == "UN" { - continue - } - group := b.region.index(g.Type) - groupIdx := b.groups[group] - for _, mem := range strings.Split(g.Contains, " ") { - r := b.region.index(mem) - mm[r] = append(mm[r], groupIdx) - if g, ok := b.groups[r]; ok { - mm[group] = append(mm[group], g) - containment[groupIdx] = append(containment[groupIdx], g) - } - } - } - - regionContainment := make([]uint64, len(b.groups)) - for _, g := range b.groups { - l := containment[g] - - // Compute the transitive closure of containment. - for i := 0; i < len(l); i++ { - l = append(l, containment[l[i]]...) - } - - // Compute the bitmask. - regionContainment[g] = 1 << g - for _, v := range l { - regionContainment[g] |= 1 << v - } - } - b.writeSlice("regionContainment", regionContainment) - - regionInclusion := make([]uint8, len(b.region.s)) - bvs := make(map[uint64]index) - // Make the first bitvector positions correspond with the groups. - for r, i := range b.groups { - bv := uint64(1 << i) - for _, g := range mm[r] { - bv |= 1 << g - } - bvs[bv] = i - regionInclusion[r] = uint8(bvs[bv]) - } - for r := 1; r < len(b.region.s); r++ { - if _, ok := b.groups[r]; !ok { - bv := uint64(0) - for _, g := range mm[r] { - bv |= 1 << g - } - if bv == 0 { - // Pick the world for unspecified regions. - bv = 1 << b.groups[b.region.index("001")] - } - if _, ok := bvs[bv]; !ok { - bvs[bv] = index(len(bvs)) - } - regionInclusion[r] = uint8(bvs[bv]) - } - } - b.writeSlice("regionInclusion", regionInclusion) - regionInclusionBits := make([]uint64, len(bvs)) - for k, v := range bvs { - regionInclusionBits[v] = uint64(k) - } - // Add bit vectors for increasingly large distances until a fixed point is reached. - regionInclusionNext := []uint8{} - for i := 0; i < len(regionInclusionBits); i++ { - bits := regionInclusionBits[i] - next := bits - for i := uint(0); i < uint(len(b.groups)); i++ { - if bits&(1< b'. Using - // bytes.Replace will do. - out := bytes.Replace(buf.Bytes(), []byte("language."), nil, -1) - if err := ioutil.WriteFile("index.go", out, 0600); err != nil { - log.Fatalf("Could not create file index.go: %v", err) - } - }() - - m := map[language.Tag]bool{} - for _, lang := range data.Locales() { - // We include all locales unconditionally to be consistent with en_US. - // We want en_US, even though it has no data associated with it. - - // TODO: put any of the languages for which no data exists at the end - // of the index. This allows all components based on ICU to use that - // as the cutoff point. - // if x := data.RawLDML(lang); false || - // x.LocaleDisplayNames != nil || - // x.Characters != nil || - // x.Delimiters != nil || - // x.Measurement != nil || - // x.Dates != nil || - // x.Numbers != nil || - // x.Units != nil || - // x.ListPatterns != nil || - // x.Collations != nil || - // x.Segmentations != nil || - // x.Rbnf != nil || - // x.Annotations != nil || - // x.Metadata != nil { - - // TODO: support POSIX natively, albeit non-standard. - tag := language.Make(strings.Replace(lang, "_POSIX", "-u-va-posix", 1)) - m[tag] = true - // } - } - // Include locales for plural rules, which uses a different structure. - for _, plurals := range data.Supplemental().Plurals { - for _, rules := range plurals.PluralRules { - for _, lang := range strings.Split(rules.Locales, " ") { - m[language.Make(lang)] = true - } - } - } - - var core, special []language.Tag - - for t := range m { - if x := t.Extensions(); len(x) != 0 && fmt.Sprint(x) != "[u-va-posix]" { - log.Fatalf("Unexpected extension %v in %v", x, t) - } - if len(t.Variants()) == 0 && len(t.Extensions()) == 0 { - core = append(core, t) - } else { - special = append(special, t) - } - } - - w.WriteComment(` - NumCompactTags is the number of common tags. The maximum tag is - NumCompactTags-1.`) - w.WriteConst("NumCompactTags", len(core)+len(special)) - - sort.Sort(byAlpha(special)) - w.WriteVar("specialTags", special) - - // TODO: order by frequency? - sort.Sort(byAlpha(core)) - - // Size computations are just an estimate. - w.Size += int(reflect.TypeOf(map[uint32]uint16{}).Size()) - w.Size += len(core) * 6 // size of uint32 and uint16 - - fmt.Fprintln(w) - fmt.Fprintln(w, "var coreTags = map[uint32]uint16{") - fmt.Fprintln(w, "0x0: 0, // und") - i := len(special) + 1 // Und and special tags already written. - for _, t := range core { - if t == language.Und { - continue - } - fmt.Fprint(w.Hash, t, i) - b, s, r := t.Raw() - fmt.Fprintf(w, "0x%s%s%s: %d, // %s\n", - getIndex(b, 3), // 3 is enough as it is guaranteed to be a compact number - getIndex(s, 2), - getIndex(r, 3), - i, t) - i++ - } - fmt.Fprintln(w, "}") -} - -// getIndex prints the subtag type and extracts its index of size nibble. -// If the index is less than n nibbles, the result is prefixed with 0s. -func getIndex(x interface{}, n int) string { - s := fmt.Sprintf("%#v", x) // s is of form Type{typeID: 0x00} - s = s[strings.Index(s, "0x")+2 : len(s)-1] - return strings.Repeat("0", n-len(s)) + s -} - -type byAlpha []language.Tag - -func (a byAlpha) Len() int { return len(a) } -func (a byAlpha) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byAlpha) Less(i, j int) bool { return a[i].String() < a[j].String() } diff --git a/vendor/golang.org/x/text/unicode/bidi/gen.go b/vendor/golang.org/x/text/unicode/bidi/gen.go deleted file mode 100644 index 4e1c7ba0b..000000000 --- a/vendor/golang.org/x/text/unicode/bidi/gen.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "flag" - "log" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/triegen" - "golang.org/x/text/internal/ucd" -) - -var outputFile = flag.String("out", "tables.go", "output file") - -func main() { - gen.Init() - gen.Repackage("gen_trieval.go", "trieval.go", "bidi") - gen.Repackage("gen_ranges.go", "ranges_test.go", "bidi") - - genTables() -} - -// bidiClass names and codes taken from class "bc" in -// http://www.unicode.org/Public/8.0.0/ucd/PropertyValueAliases.txt -var bidiClass = map[string]Class{ - "AL": AL, // ArabicLetter - "AN": AN, // ArabicNumber - "B": B, // ParagraphSeparator - "BN": BN, // BoundaryNeutral - "CS": CS, // CommonSeparator - "EN": EN, // EuropeanNumber - "ES": ES, // EuropeanSeparator - "ET": ET, // EuropeanTerminator - "L": L, // LeftToRight - "NSM": NSM, // NonspacingMark - "ON": ON, // OtherNeutral - "R": R, // RightToLeft - "S": S, // SegmentSeparator - "WS": WS, // WhiteSpace - - "FSI": Control, - "PDF": Control, - "PDI": Control, - "LRE": Control, - "LRI": Control, - "LRO": Control, - "RLE": Control, - "RLI": Control, - "RLO": Control, -} - -func genTables() { - if numClass > 0x0F { - log.Fatalf("Too many Class constants (%#x > 0x0F).", numClass) - } - w := gen.NewCodeWriter() - defer w.WriteVersionedGoFile(*outputFile, "bidi") - - gen.WriteUnicodeVersion(w) - - t := triegen.NewTrie("bidi") - - // Build data about bracket mapping. These bits need to be or-ed with - // any other bits. - orMask := map[rune]uint64{} - - xorMap := map[rune]int{} - xorMasks := []rune{0} // First value is no-op. - - ucd.Parse(gen.OpenUCDFile("BidiBrackets.txt"), func(p *ucd.Parser) { - r1 := p.Rune(0) - r2 := p.Rune(1) - xor := r1 ^ r2 - if _, ok := xorMap[xor]; !ok { - xorMap[xor] = len(xorMasks) - xorMasks = append(xorMasks, xor) - } - entry := uint64(xorMap[xor]) << xorMaskShift - switch p.String(2) { - case "o": - entry |= openMask - case "c", "n": - default: - log.Fatalf("Unknown bracket class %q.", p.String(2)) - } - orMask[r1] = entry - }) - - w.WriteComment(` - xorMasks contains masks to be xor-ed with brackets to get the reverse - version.`) - w.WriteVar("xorMasks", xorMasks) - - done := map[rune]bool{} - - insert := func(r rune, c Class) { - if !done[r] { - t.Insert(r, orMask[r]|uint64(c)) - done[r] = true - } - } - - // Insert the derived BiDi properties. - ucd.Parse(gen.OpenUCDFile("extracted/DerivedBidiClass.txt"), func(p *ucd.Parser) { - r := p.Rune(0) - class, ok := bidiClass[p.String(1)] - if !ok { - log.Fatalf("%U: Unknown BiDi class %q", r, p.String(1)) - } - insert(r, class) - }) - visitDefaults(insert) - - // TODO: use sparse blocks. This would reduce table size considerably - // from the looks of it. - - sz, err := t.Gen(w) - if err != nil { - log.Fatal(err) - } - w.Size += sz -} - -// dummy values to make methods in gen_common compile. The real versions -// will be generated by this file to tables.go. -var ( - xorMasks []rune -) diff --git a/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go b/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go deleted file mode 100644 index 51bd68fa7..000000000 --- a/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "unicode" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/ucd" - "golang.org/x/text/unicode/rangetable" -) - -// These tables are hand-extracted from: -// http://www.unicode.org/Public/8.0.0/ucd/extracted/DerivedBidiClass.txt -func visitDefaults(fn func(r rune, c Class)) { - // first write default values for ranges listed above. - visitRunes(fn, AL, []rune{ - 0x0600, 0x07BF, // Arabic - 0x08A0, 0x08FF, // Arabic Extended-A - 0xFB50, 0xFDCF, // Arabic Presentation Forms - 0xFDF0, 0xFDFF, - 0xFE70, 0xFEFF, - 0x0001EE00, 0x0001EEFF, // Arabic Mathematical Alpha Symbols - }) - visitRunes(fn, R, []rune{ - 0x0590, 0x05FF, // Hebrew - 0x07C0, 0x089F, // Nko et al. - 0xFB1D, 0xFB4F, - 0x00010800, 0x00010FFF, // Cypriot Syllabary et. al. - 0x0001E800, 0x0001EDFF, - 0x0001EF00, 0x0001EFFF, - }) - visitRunes(fn, ET, []rune{ // European Terminator - 0x20A0, 0x20Cf, // Currency symbols - }) - rangetable.Visit(unicode.Noncharacter_Code_Point, func(r rune) { - fn(r, BN) // Boundary Neutral - }) - ucd.Parse(gen.OpenUCDFile("DerivedCoreProperties.txt"), func(p *ucd.Parser) { - if p.String(1) == "Default_Ignorable_Code_Point" { - fn(p.Rune(0), BN) // Boundary Neutral - } - }) -} - -func visitRunes(fn func(r rune, c Class), c Class, runes []rune) { - for i := 0; i < len(runes); i += 2 { - lo, hi := runes[i], runes[i+1] - for j := lo; j <= hi; j++ { - fn(j, c) - } - } -} diff --git a/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go b/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go deleted file mode 100644 index 9cb994289..000000000 --- a/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// Class is the Unicode BiDi class. Each rune has a single class. -type Class uint - -const ( - L Class = iota // LeftToRight - R // RightToLeft - EN // EuropeanNumber - ES // EuropeanSeparator - ET // EuropeanTerminator - AN // ArabicNumber - CS // CommonSeparator - B // ParagraphSeparator - S // SegmentSeparator - WS // WhiteSpace - ON // OtherNeutral - BN // BoundaryNeutral - NSM // NonspacingMark - AL // ArabicLetter - Control // Control LRO - PDI - - numClass - - LRO // LeftToRightOverride - RLO // RightToLeftOverride - LRE // LeftToRightEmbedding - RLE // RightToLeftEmbedding - PDF // PopDirectionalFormat - LRI // LeftToRightIsolate - RLI // RightToLeftIsolate - FSI // FirstStrongIsolate - PDI // PopDirectionalIsolate - - unknownClass = ^Class(0) -) - -var controlToClass = map[rune]Class{ - 0x202D: LRO, // LeftToRightOverride, - 0x202E: RLO, // RightToLeftOverride, - 0x202A: LRE, // LeftToRightEmbedding, - 0x202B: RLE, // RightToLeftEmbedding, - 0x202C: PDF, // PopDirectionalFormat, - 0x2066: LRI, // LeftToRightIsolate, - 0x2067: RLI, // RightToLeftIsolate, - 0x2068: FSI, // FirstStrongIsolate, - 0x2069: PDI, // PopDirectionalIsolate, -} - -// A trie entry has the following bits: -// 7..5 XOR mask for brackets -// 4 1: Bracket open, 0: Bracket close -// 3..0 Class type - -const ( - openMask = 0x10 - xorMaskShift = 5 -) diff --git a/vendor/golang.org/x/text/unicode/norm/maketables.go b/vendor/golang.org/x/text/unicode/norm/maketables.go deleted file mode 100644 index 338c395ee..000000000 --- a/vendor/golang.org/x/text/unicode/norm/maketables.go +++ /dev/null @@ -1,976 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Normalization table generator. -// Data read from the web. -// See forminfo.go for a description of the trie values associated with each rune. - -package main - -import ( - "bytes" - "flag" - "fmt" - "io" - "log" - "sort" - "strconv" - "strings" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/triegen" - "golang.org/x/text/internal/ucd" -) - -func main() { - gen.Init() - loadUnicodeData() - compactCCC() - loadCompositionExclusions() - completeCharFields(FCanonical) - completeCharFields(FCompatibility) - computeNonStarterCounts() - verifyComputed() - printChars() - testDerived() - printTestdata() - makeTables() -} - -var ( - tablelist = flag.String("tables", - "all", - "comma-separated list of which tables to generate; "+ - "can be 'decomp', 'recomp', 'info' and 'all'") - test = flag.Bool("test", - false, - "test existing tables against DerivedNormalizationProps and generate test data for regression testing") - verbose = flag.Bool("verbose", - false, - "write data to stdout as it is parsed") -) - -const MaxChar = 0x10FFFF // anything above this shouldn't exist - -// Quick Check properties of runes allow us to quickly -// determine whether a rune may occur in a normal form. -// For a given normal form, a rune may be guaranteed to occur -// verbatim (QC=Yes), may or may not combine with another -// rune (QC=Maybe), or may not occur (QC=No). -type QCResult int - -const ( - QCUnknown QCResult = iota - QCYes - QCNo - QCMaybe -) - -func (r QCResult) String() string { - switch r { - case QCYes: - return "Yes" - case QCNo: - return "No" - case QCMaybe: - return "Maybe" - } - return "***UNKNOWN***" -} - -const ( - FCanonical = iota // NFC or NFD - FCompatibility // NFKC or NFKD - FNumberOfFormTypes -) - -const ( - MComposed = iota // NFC or NFKC - MDecomposed // NFD or NFKD - MNumberOfModes -) - -// This contains only the properties we're interested in. -type Char struct { - name string - codePoint rune // if zero, this index is not a valid code point. - ccc uint8 // canonical combining class - origCCC uint8 - excludeInComp bool // from CompositionExclusions.txt - compatDecomp bool // it has a compatibility expansion - - nTrailingNonStarters uint8 - nLeadingNonStarters uint8 // must be equal to trailing if non-zero - - forms [FNumberOfFormTypes]FormInfo // For FCanonical and FCompatibility - - state State -} - -var chars = make([]Char, MaxChar+1) -var cccMap = make(map[uint8]uint8) - -func (c Char) String() string { - buf := new(bytes.Buffer) - - fmt.Fprintf(buf, "%U [%s]:\n", c.codePoint, c.name) - fmt.Fprintf(buf, " ccc: %v\n", c.ccc) - fmt.Fprintf(buf, " excludeInComp: %v\n", c.excludeInComp) - fmt.Fprintf(buf, " compatDecomp: %v\n", c.compatDecomp) - fmt.Fprintf(buf, " state: %v\n", c.state) - fmt.Fprintf(buf, " NFC:\n") - fmt.Fprint(buf, c.forms[FCanonical]) - fmt.Fprintf(buf, " NFKC:\n") - fmt.Fprint(buf, c.forms[FCompatibility]) - - return buf.String() -} - -// In UnicodeData.txt, some ranges are marked like this: -// 3400;;Lo;0;L;;;;;N;;;;; -// 4DB5;;Lo;0;L;;;;;N;;;;; -// parseCharacter keeps a state variable indicating the weirdness. -type State int - -const ( - SNormal State = iota // known to be zero for the type - SFirst - SLast - SMissing -) - -var lastChar = rune('\u0000') - -func (c Char) isValid() bool { - return c.codePoint != 0 && c.state != SMissing -} - -type FormInfo struct { - quickCheck [MNumberOfModes]QCResult // index: MComposed or MDecomposed - verified [MNumberOfModes]bool // index: MComposed or MDecomposed - - combinesForward bool // May combine with rune on the right - combinesBackward bool // May combine with rune on the left - isOneWay bool // Never appears in result - inDecomp bool // Some decompositions result in this char. - decomp Decomposition - expandedDecomp Decomposition -} - -func (f FormInfo) String() string { - buf := bytes.NewBuffer(make([]byte, 0)) - - fmt.Fprintf(buf, " quickCheck[C]: %v\n", f.quickCheck[MComposed]) - fmt.Fprintf(buf, " quickCheck[D]: %v\n", f.quickCheck[MDecomposed]) - fmt.Fprintf(buf, " cmbForward: %v\n", f.combinesForward) - fmt.Fprintf(buf, " cmbBackward: %v\n", f.combinesBackward) - fmt.Fprintf(buf, " isOneWay: %v\n", f.isOneWay) - fmt.Fprintf(buf, " inDecomp: %v\n", f.inDecomp) - fmt.Fprintf(buf, " decomposition: %X\n", f.decomp) - fmt.Fprintf(buf, " expandedDecomp: %X\n", f.expandedDecomp) - - return buf.String() -} - -type Decomposition []rune - -func parseDecomposition(s string, skipfirst bool) (a []rune, err error) { - decomp := strings.Split(s, " ") - if len(decomp) > 0 && skipfirst { - decomp = decomp[1:] - } - for _, d := range decomp { - point, err := strconv.ParseUint(d, 16, 64) - if err != nil { - return a, err - } - a = append(a, rune(point)) - } - return a, nil -} - -func loadUnicodeData() { - f := gen.OpenUCDFile("UnicodeData.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - r := p.Rune(ucd.CodePoint) - char := &chars[r] - - char.ccc = uint8(p.Uint(ucd.CanonicalCombiningClass)) - decmap := p.String(ucd.DecompMapping) - - exp, err := parseDecomposition(decmap, false) - isCompat := false - if err != nil { - if len(decmap) > 0 { - exp, err = parseDecomposition(decmap, true) - if err != nil { - log.Fatalf(`%U: bad decomp |%v|: "%s"`, r, decmap, err) - } - isCompat = true - } - } - - char.name = p.String(ucd.Name) - char.codePoint = r - char.forms[FCompatibility].decomp = exp - if !isCompat { - char.forms[FCanonical].decomp = exp - } else { - char.compatDecomp = true - } - if len(decmap) > 0 { - char.forms[FCompatibility].decomp = exp - } - } - if err := p.Err(); err != nil { - log.Fatal(err) - } -} - -// compactCCC converts the sparse set of CCC values to a continguous one, -// reducing the number of bits needed from 8 to 6. -func compactCCC() { - m := make(map[uint8]uint8) - for i := range chars { - c := &chars[i] - m[c.ccc] = 0 - } - cccs := []int{} - for v, _ := range m { - cccs = append(cccs, int(v)) - } - sort.Ints(cccs) - for i, c := range cccs { - cccMap[uint8(i)] = uint8(c) - m[uint8(c)] = uint8(i) - } - for i := range chars { - c := &chars[i] - c.origCCC = c.ccc - c.ccc = m[c.ccc] - } - if len(m) >= 1<<6 { - log.Fatalf("too many difference CCC values: %d >= 64", len(m)) - } -} - -// CompositionExclusions.txt has form: -// 0958 # ... -// See http://unicode.org/reports/tr44/ for full explanation -func loadCompositionExclusions() { - f := gen.OpenUCDFile("CompositionExclusions.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - c := &chars[p.Rune(0)] - if c.excludeInComp { - log.Fatalf("%U: Duplicate entry in exclusions.", c.codePoint) - } - c.excludeInComp = true - } - if e := p.Err(); e != nil { - log.Fatal(e) - } -} - -// hasCompatDecomp returns true if any of the recursive -// decompositions contains a compatibility expansion. -// In this case, the character may not occur in NFK*. -func hasCompatDecomp(r rune) bool { - c := &chars[r] - if c.compatDecomp { - return true - } - for _, d := range c.forms[FCompatibility].decomp { - if hasCompatDecomp(d) { - return true - } - } - return false -} - -// Hangul related constants. -const ( - HangulBase = 0xAC00 - HangulEnd = 0xD7A4 // hangulBase + Jamo combinations (19 * 21 * 28) - - JamoLBase = 0x1100 - JamoLEnd = 0x1113 - JamoVBase = 0x1161 - JamoVEnd = 0x1176 - JamoTBase = 0x11A8 - JamoTEnd = 0x11C3 - - JamoLVTCount = 19 * 21 * 28 - JamoTCount = 28 -) - -func isHangul(r rune) bool { - return HangulBase <= r && r < HangulEnd -} - -func isHangulWithoutJamoT(r rune) bool { - if !isHangul(r) { - return false - } - r -= HangulBase - return r < JamoLVTCount && r%JamoTCount == 0 -} - -func ccc(r rune) uint8 { - return chars[r].ccc -} - -// Insert a rune in a buffer, ordered by Canonical Combining Class. -func insertOrdered(b Decomposition, r rune) Decomposition { - n := len(b) - b = append(b, 0) - cc := ccc(r) - if cc > 0 { - // Use bubble sort. - for ; n > 0; n-- { - if ccc(b[n-1]) <= cc { - break - } - b[n] = b[n-1] - } - } - b[n] = r - return b -} - -// Recursively decompose. -func decomposeRecursive(form int, r rune, d Decomposition) Decomposition { - dcomp := chars[r].forms[form].decomp - if len(dcomp) == 0 { - return insertOrdered(d, r) - } - for _, c := range dcomp { - d = decomposeRecursive(form, c, d) - } - return d -} - -func completeCharFields(form int) { - // Phase 0: pre-expand decomposition. - for i := range chars { - f := &chars[i].forms[form] - if len(f.decomp) == 0 { - continue - } - exp := make(Decomposition, 0) - for _, c := range f.decomp { - exp = decomposeRecursive(form, c, exp) - } - f.expandedDecomp = exp - } - - // Phase 1: composition exclusion, mark decomposition. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - // Marks script-specific exclusions and version restricted. - f.isOneWay = c.excludeInComp - - // Singletons - f.isOneWay = f.isOneWay || len(f.decomp) == 1 - - // Non-starter decompositions - if len(f.decomp) > 1 { - chk := c.ccc != 0 || chars[f.decomp[0]].ccc != 0 - f.isOneWay = f.isOneWay || chk - } - - // Runes that decompose into more than two runes. - f.isOneWay = f.isOneWay || len(f.decomp) > 2 - - if form == FCompatibility { - f.isOneWay = f.isOneWay || hasCompatDecomp(c.codePoint) - } - - for _, r := range f.decomp { - chars[r].forms[form].inDecomp = true - } - } - - // Phase 2: forward and backward combining. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - if !f.isOneWay && len(f.decomp) == 2 { - f0 := &chars[f.decomp[0]].forms[form] - f1 := &chars[f.decomp[1]].forms[form] - if !f0.isOneWay { - f0.combinesForward = true - } - if !f1.isOneWay { - f1.combinesBackward = true - } - } - if isHangulWithoutJamoT(rune(i)) { - f.combinesForward = true - } - } - - // Phase 3: quick check values. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - switch { - case len(f.decomp) > 0: - f.quickCheck[MDecomposed] = QCNo - case isHangul(rune(i)): - f.quickCheck[MDecomposed] = QCNo - default: - f.quickCheck[MDecomposed] = QCYes - } - switch { - case f.isOneWay: - f.quickCheck[MComposed] = QCNo - case (i & 0xffff00) == JamoLBase: - f.quickCheck[MComposed] = QCYes - if JamoLBase <= i && i < JamoLEnd { - f.combinesForward = true - } - if JamoVBase <= i && i < JamoVEnd { - f.quickCheck[MComposed] = QCMaybe - f.combinesBackward = true - f.combinesForward = true - } - if JamoTBase <= i && i < JamoTEnd { - f.quickCheck[MComposed] = QCMaybe - f.combinesBackward = true - } - case !f.combinesBackward: - f.quickCheck[MComposed] = QCYes - default: - f.quickCheck[MComposed] = QCMaybe - } - } -} - -func computeNonStarterCounts() { - // Phase 4: leading and trailing non-starter count - for i := range chars { - c := &chars[i] - - runes := []rune{rune(i)} - // We always use FCompatibility so that the CGJ insertion points do not - // change for repeated normalizations with different forms. - if exp := c.forms[FCompatibility].expandedDecomp; len(exp) > 0 { - runes = exp - } - // We consider runes that combine backwards to be non-starters for the - // purpose of Stream-Safe Text Processing. - for _, r := range runes { - if cr := &chars[r]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { - break - } - c.nLeadingNonStarters++ - } - for i := len(runes) - 1; i >= 0; i-- { - if cr := &chars[runes[i]]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { - break - } - c.nTrailingNonStarters++ - } - if c.nTrailingNonStarters > 3 { - log.Fatalf("%U: Decomposition with more than 3 (%d) trailing modifiers (%U)", i, c.nTrailingNonStarters, runes) - } - - if isHangul(rune(i)) { - c.nTrailingNonStarters = 2 - if isHangulWithoutJamoT(rune(i)) { - c.nTrailingNonStarters = 1 - } - } - - if l, t := c.nLeadingNonStarters, c.nTrailingNonStarters; l > 0 && l != t { - log.Fatalf("%U: number of leading and trailing non-starters should be equal (%d vs %d)", i, l, t) - } - if t := c.nTrailingNonStarters; t > 3 { - log.Fatalf("%U: number of trailing non-starters is %d > 3", t) - } - } -} - -func printBytes(w io.Writer, b []byte, name string) { - fmt.Fprintf(w, "// %s: %d bytes\n", name, len(b)) - fmt.Fprintf(w, "var %s = [...]byte {", name) - for i, c := range b { - switch { - case i%64 == 0: - fmt.Fprintf(w, "\n// Bytes %x - %x\n", i, i+63) - case i%8 == 0: - fmt.Fprintf(w, "\n") - } - fmt.Fprintf(w, "0x%.2X, ", c) - } - fmt.Fprint(w, "\n}\n\n") -} - -// See forminfo.go for format. -func makeEntry(f *FormInfo, c *Char) uint16 { - e := uint16(0) - if r := c.codePoint; HangulBase <= r && r < HangulEnd { - e |= 0x40 - } - if f.combinesForward { - e |= 0x20 - } - if f.quickCheck[MDecomposed] == QCNo { - e |= 0x4 - } - switch f.quickCheck[MComposed] { - case QCYes: - case QCNo: - e |= 0x10 - case QCMaybe: - e |= 0x18 - default: - log.Fatalf("Illegal quickcheck value %v.", f.quickCheck[MComposed]) - } - e |= uint16(c.nTrailingNonStarters) - return e -} - -// decompSet keeps track of unique decompositions, grouped by whether -// the decomposition is followed by a trailing and/or leading CCC. -type decompSet [7]map[string]bool - -const ( - normalDecomp = iota - firstMulti - firstCCC - endMulti - firstLeadingCCC - firstCCCZeroExcept - firstStarterWithNLead - lastDecomp -) - -var cname = []string{"firstMulti", "firstCCC", "endMulti", "firstLeadingCCC", "firstCCCZeroExcept", "firstStarterWithNLead", "lastDecomp"} - -func makeDecompSet() decompSet { - m := decompSet{} - for i := range m { - m[i] = make(map[string]bool) - } - return m -} -func (m *decompSet) insert(key int, s string) { - m[key][s] = true -} - -func printCharInfoTables(w io.Writer) int { - mkstr := func(r rune, f *FormInfo) (int, string) { - d := f.expandedDecomp - s := string([]rune(d)) - if max := 1 << 6; len(s) >= max { - const msg = "%U: too many bytes in decomposition: %d >= %d" - log.Fatalf(msg, r, len(s), max) - } - head := uint8(len(s)) - if f.quickCheck[MComposed] != QCYes { - head |= 0x40 - } - if f.combinesForward { - head |= 0x80 - } - s = string([]byte{head}) + s - - lccc := ccc(d[0]) - tccc := ccc(d[len(d)-1]) - cc := ccc(r) - if cc != 0 && lccc == 0 && tccc == 0 { - log.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc) - } - if tccc < lccc && lccc != 0 { - const msg = "%U: lccc (%d) must be <= tcc (%d)" - log.Fatalf(msg, r, lccc, tccc) - } - index := normalDecomp - nTrail := chars[r].nTrailingNonStarters - nLead := chars[r].nLeadingNonStarters - if tccc > 0 || lccc > 0 || nTrail > 0 { - tccc <<= 2 - tccc |= nTrail - s += string([]byte{tccc}) - index = endMulti - for _, r := range d[1:] { - if ccc(r) == 0 { - index = firstCCC - } - } - if lccc > 0 || nLead > 0 { - s += string([]byte{lccc}) - if index == firstCCC { - log.Fatalf("%U: multi-segment decomposition not supported for decompositions with leading CCC != 0", r) - } - index = firstLeadingCCC - } - if cc != lccc { - if cc != 0 { - log.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc) - } - index = firstCCCZeroExcept - } - } else if len(d) > 1 { - index = firstMulti - } - return index, s - } - - decompSet := makeDecompSet() - const nLeadStr = "\x00\x01" // 0-byte length and tccc with nTrail. - decompSet.insert(firstStarterWithNLead, nLeadStr) - - // Store the uniqued decompositions in a byte buffer, - // preceded by their byte length. - for _, c := range chars { - for _, f := range c.forms { - if len(f.expandedDecomp) == 0 { - continue - } - if f.combinesBackward { - log.Fatalf("%U: combinesBackward and decompose", c.codePoint) - } - index, s := mkstr(c.codePoint, &f) - decompSet.insert(index, s) - } - } - - decompositions := bytes.NewBuffer(make([]byte, 0, 10000)) - size := 0 - positionMap := make(map[string]uint16) - decompositions.WriteString("\000") - fmt.Fprintln(w, "const (") - for i, m := range decompSet { - sa := []string{} - for s := range m { - sa = append(sa, s) - } - sort.Strings(sa) - for _, s := range sa { - p := decompositions.Len() - decompositions.WriteString(s) - positionMap[s] = uint16(p) - } - if cname[i] != "" { - fmt.Fprintf(w, "%s = 0x%X\n", cname[i], decompositions.Len()) - } - } - fmt.Fprintln(w, "maxDecomp = 0x8000") - fmt.Fprintln(w, ")") - b := decompositions.Bytes() - printBytes(w, b, "decomps") - size += len(b) - - varnames := []string{"nfc", "nfkc"} - for i := 0; i < FNumberOfFormTypes; i++ { - trie := triegen.NewTrie(varnames[i]) - - for r, c := range chars { - f := c.forms[i] - d := f.expandedDecomp - if len(d) != 0 { - _, key := mkstr(c.codePoint, &f) - trie.Insert(rune(r), uint64(positionMap[key])) - if c.ccc != ccc(d[0]) { - // We assume the lead ccc of a decomposition !=0 in this case. - if ccc(d[0]) == 0 { - log.Fatalf("Expected leading CCC to be non-zero; ccc is %d", c.ccc) - } - } - } else if c.nLeadingNonStarters > 0 && len(f.expandedDecomp) == 0 && c.ccc == 0 && !f.combinesBackward { - // Handle cases where it can't be detected that the nLead should be equal - // to nTrail. - trie.Insert(c.codePoint, uint64(positionMap[nLeadStr])) - } else if v := makeEntry(&f, &c)<<8 | uint16(c.ccc); v != 0 { - trie.Insert(c.codePoint, uint64(0x8000|v)) - } - } - sz, err := trie.Gen(w, triegen.Compact(&normCompacter{name: varnames[i]})) - if err != nil { - log.Fatal(err) - } - size += sz - } - return size -} - -func contains(sa []string, s string) bool { - for _, a := range sa { - if a == s { - return true - } - } - return false -} - -func makeTables() { - w := &bytes.Buffer{} - - size := 0 - if *tablelist == "" { - return - } - list := strings.Split(*tablelist, ",") - if *tablelist == "all" { - list = []string{"recomp", "info"} - } - - // Compute maximum decomposition size. - max := 0 - for _, c := range chars { - if n := len(string(c.forms[FCompatibility].expandedDecomp)); n > max { - max = n - } - } - - fmt.Fprintln(w, "const (") - fmt.Fprintln(w, "\t// Version is the Unicode edition from which the tables are derived.") - fmt.Fprintf(w, "\tVersion = %q\n", gen.UnicodeVersion()) - fmt.Fprintln(w) - fmt.Fprintln(w, "\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform") - fmt.Fprintln(w, "\t// may need to write atomically for any Form. Making a destination buffer at") - fmt.Fprintln(w, "\t// least this size ensures that Transform can always make progress and that") - fmt.Fprintln(w, "\t// the user does not need to grow the buffer on an ErrShortDst.") - fmt.Fprintf(w, "\tMaxTransformChunkSize = %d+maxNonStarters*4\n", len(string(0x034F))+max) - fmt.Fprintln(w, ")\n") - - // Print the CCC remap table. - size += len(cccMap) - fmt.Fprintf(w, "var ccc = [%d]uint8{", len(cccMap)) - for i := 0; i < len(cccMap); i++ { - if i%8 == 0 { - fmt.Fprintln(w) - } - fmt.Fprintf(w, "%3d, ", cccMap[uint8(i)]) - } - fmt.Fprintln(w, "\n}\n") - - if contains(list, "info") { - size += printCharInfoTables(w) - } - - if contains(list, "recomp") { - // Note that we use 32 bit keys, instead of 64 bit. - // This clips the bits of three entries, but we know - // this won't cause a collision. The compiler will catch - // any changes made to UnicodeData.txt that introduces - // a collision. - // Note that the recomposition map for NFC and NFKC - // are identical. - - // Recomposition map - nrentries := 0 - for _, c := range chars { - f := c.forms[FCanonical] - if !f.isOneWay && len(f.decomp) > 0 { - nrentries++ - } - } - sz := nrentries * 8 - size += sz - fmt.Fprintf(w, "// recompMap: %d bytes (entries only)\n", sz) - fmt.Fprintln(w, "var recompMap = map[uint32]rune{") - for i, c := range chars { - f := c.forms[FCanonical] - d := f.decomp - if !f.isOneWay && len(d) > 0 { - key := uint32(uint16(d[0]))<<16 + uint32(uint16(d[1])) - fmt.Fprintf(w, "0x%.8X: 0x%.4X,\n", key, i) - } - } - fmt.Fprintf(w, "}\n\n") - } - - fmt.Fprintf(w, "// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size) - gen.WriteVersionedGoFile("tables.go", "norm", w.Bytes()) -} - -func printChars() { - if *verbose { - for _, c := range chars { - if !c.isValid() || c.state == SMissing { - continue - } - fmt.Println(c) - } - } -} - -// verifyComputed does various consistency tests. -func verifyComputed() { - for i, c := range chars { - for _, f := range c.forms { - isNo := (f.quickCheck[MDecomposed] == QCNo) - if (len(f.decomp) > 0) != isNo && !isHangul(rune(i)) { - log.Fatalf("%U: NF*D QC must be No if rune decomposes", i) - } - - isMaybe := f.quickCheck[MComposed] == QCMaybe - if f.combinesBackward != isMaybe { - log.Fatalf("%U: NF*C QC must be Maybe if combinesBackward", i) - } - if len(f.decomp) > 0 && f.combinesForward && isMaybe { - log.Fatalf("%U: NF*C QC must be Yes or No if combinesForward and decomposes", i) - } - - if len(f.expandedDecomp) != 0 { - continue - } - if a, b := c.nLeadingNonStarters > 0, (c.ccc > 0 || f.combinesBackward); a != b { - // We accept these runes to be treated differently (it only affects - // segment breaking in iteration, most likely on improper use), but - // reconsider if more characters are added. - // U+FF9E HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L; 3099;;;;N;;;;; - // U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L; 309A;;;;N;;;;; - // U+3133 HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; - // U+318E HANGUL LETTER ARAEAE;Lo;0;L; 11A1;;;;N;HANGUL LETTER ALAE AE;;;; - // U+FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; - // U+FFDC HALFWIDTH HANGUL LETTER I;Lo;0;L; 3163;;;;N;;;;; - if i != 0xFF9E && i != 0xFF9F && !(0x3133 <= i && i <= 0x318E) && !(0xFFA3 <= i && i <= 0xFFDC) { - log.Fatalf("%U: nLead was %v; want %v", i, a, b) - } - } - } - nfc := c.forms[FCanonical] - nfkc := c.forms[FCompatibility] - if nfc.combinesBackward != nfkc.combinesBackward { - log.Fatalf("%U: Cannot combine combinesBackward\n", c.codePoint) - } - } -} - -// Use values in DerivedNormalizationProps.txt to compare against the -// values we computed. -// DerivedNormalizationProps.txt has form: -// 00C0..00C5 ; NFD_QC; N # ... -// 0374 ; NFD_QC; N # ... -// See http://unicode.org/reports/tr44/ for full explanation -func testDerived() { - f := gen.OpenUCDFile("DerivedNormalizationProps.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - r := p.Rune(0) - c := &chars[r] - - var ftype, mode int - qt := p.String(1) - switch qt { - case "NFC_QC": - ftype, mode = FCanonical, MComposed - case "NFD_QC": - ftype, mode = FCanonical, MDecomposed - case "NFKC_QC": - ftype, mode = FCompatibility, MComposed - case "NFKD_QC": - ftype, mode = FCompatibility, MDecomposed - default: - continue - } - var qr QCResult - switch p.String(2) { - case "Y": - qr = QCYes - case "N": - qr = QCNo - case "M": - qr = QCMaybe - default: - log.Fatalf(`Unexpected quick check value "%s"`, p.String(2)) - } - if got := c.forms[ftype].quickCheck[mode]; got != qr { - log.Printf("%U: FAILED %s (was %v need %v)\n", r, qt, got, qr) - } - c.forms[ftype].verified[mode] = true - } - if err := p.Err(); err != nil { - log.Fatal(err) - } - // Any unspecified value must be QCYes. Verify this. - for i, c := range chars { - for j, fd := range c.forms { - for k, qr := range fd.quickCheck { - if !fd.verified[k] && qr != QCYes { - m := "%U: FAIL F:%d M:%d (was %v need Yes) %s\n" - log.Printf(m, i, j, k, qr, c.name) - } - } - } - } -} - -var testHeader = `const ( - Yes = iota - No - Maybe -) - -type formData struct { - qc uint8 - combinesForward bool - decomposition string -} - -type runeData struct { - r rune - ccc uint8 - nLead uint8 - nTrail uint8 - f [2]formData // 0: canonical; 1: compatibility -} - -func f(qc uint8, cf bool, dec string) [2]formData { - return [2]formData{{qc, cf, dec}, {qc, cf, dec}} -} - -func g(qc, qck uint8, cf, cfk bool, d, dk string) [2]formData { - return [2]formData{{qc, cf, d}, {qck, cfk, dk}} -} - -var testData = []runeData{ -` - -func printTestdata() { - type lastInfo struct { - ccc uint8 - nLead uint8 - nTrail uint8 - f string - } - - last := lastInfo{} - w := &bytes.Buffer{} - fmt.Fprintf(w, testHeader) - for r, c := range chars { - f := c.forms[FCanonical] - qc, cf, d := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) - f = c.forms[FCompatibility] - qck, cfk, dk := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) - s := "" - if d == dk && qc == qck && cf == cfk { - s = fmt.Sprintf("f(%s, %v, %q)", qc, cf, d) - } else { - s = fmt.Sprintf("g(%s, %s, %v, %v, %q, %q)", qc, qck, cf, cfk, d, dk) - } - current := lastInfo{c.ccc, c.nLeadingNonStarters, c.nTrailingNonStarters, s} - if last != current { - fmt.Fprintf(w, "\t{0x%x, %d, %d, %d, %s},\n", r, c.origCCC, c.nLeadingNonStarters, c.nTrailingNonStarters, s) - last = current - } - } - fmt.Fprintln(w, "}") - gen.WriteVersionedGoFile("data_test.go", "norm", w.Bytes()) -} diff --git a/vendor/golang.org/x/text/unicode/norm/triegen.go b/vendor/golang.org/x/text/unicode/norm/triegen.go deleted file mode 100644 index 45d711900..000000000 --- a/vendor/golang.org/x/text/unicode/norm/triegen.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Trie table generator. -// Used by make*tables tools to generate a go file with trie data structures -// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte -// sequence are used to lookup offsets in the index table to be used for the -// next byte. The last byte is used to index into a table with 16-bit values. - -package main - -import ( - "fmt" - "io" -) - -const maxSparseEntries = 16 - -type normCompacter struct { - sparseBlocks [][]uint64 - sparseOffset []uint16 - sparseCount int - name string -} - -func mostFrequentStride(a []uint64) int { - counts := make(map[int]int) - var v int - for _, x := range a { - if stride := int(x) - v; v != 0 && stride >= 0 { - counts[stride]++ - } - v = int(x) - } - var maxs, maxc int - for stride, cnt := range counts { - if cnt > maxc || (cnt == maxc && stride < maxs) { - maxs, maxc = stride, cnt - } - } - return maxs -} - -func countSparseEntries(a []uint64) int { - stride := mostFrequentStride(a) - var v, count int - for _, tv := range a { - if int(tv)-v != stride { - if tv != 0 { - count++ - } - } - v = int(tv) - } - return count -} - -func (c *normCompacter) Size(v []uint64) (sz int, ok bool) { - if n := countSparseEntries(v); n <= maxSparseEntries { - return (n+1)*4 + 2, true - } - return 0, false -} - -func (c *normCompacter) Store(v []uint64) uint32 { - h := uint32(len(c.sparseOffset)) - c.sparseBlocks = append(c.sparseBlocks, v) - c.sparseOffset = append(c.sparseOffset, uint16(c.sparseCount)) - c.sparseCount += countSparseEntries(v) + 1 - return h -} - -func (c *normCompacter) Handler() string { - return c.name + "Sparse.lookup" -} - -func (c *normCompacter) Print(w io.Writer) (retErr error) { - p := func(f string, x ...interface{}) { - if _, err := fmt.Fprintf(w, f, x...); retErr == nil && err != nil { - retErr = err - } - } - - ls := len(c.sparseBlocks) - p("// %sSparseOffset: %d entries, %d bytes\n", c.name, ls, ls*2) - p("var %sSparseOffset = %#v\n\n", c.name, c.sparseOffset) - - ns := c.sparseCount - p("// %sSparseValues: %d entries, %d bytes\n", c.name, ns, ns*4) - p("var %sSparseValues = [%d]valueRange {", c.name, ns) - for i, b := range c.sparseBlocks { - p("\n// Block %#x, offset %#x", i, c.sparseOffset[i]) - var v int - stride := mostFrequentStride(b) - n := countSparseEntries(b) - p("\n{value:%#04x,lo:%#02x},", stride, uint8(n)) - for i, nv := range b { - if int(nv)-v != stride { - if v != 0 { - p(",hi:%#02x},", 0x80+i-1) - } - if nv != 0 { - p("\n{value:%#04x,lo:%#02x", nv, 0x80+i) - } - } - v = int(nv) - } - if v != 0 { - p(",hi:%#02x},", 0x80+len(b)-1) - } - } - p("\n}\n\n") - return -} diff --git a/vendor/golang.org/x/text/width/gen.go b/vendor/golang.org/x/text/width/gen.go deleted file mode 100644 index 092277e1f..000000000 --- a/vendor/golang.org/x/text/width/gen.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// This program generates the trie for width operations. The generated table -// includes width category information as well as the normalization mappings. -package main - -import ( - "bytes" - "fmt" - "io" - "log" - "math" - "unicode/utf8" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/triegen" -) - -// See gen_common.go for flags. - -func main() { - gen.Init() - genTables() - genTests() - gen.Repackage("gen_trieval.go", "trieval.go", "width") - gen.Repackage("gen_common.go", "common_test.go", "width") -} - -func genTables() { - t := triegen.NewTrie("width") - // fold and inverse mappings. See mapComment for a description of the format - // of each entry. Add dummy value to make an index of 0 mean no mapping. - inverse := [][4]byte{{}} - mapping := map[[4]byte]int{[4]byte{}: 0} - - getWidthData(func(r rune, tag elem, alt rune) { - idx := 0 - if alt != 0 { - var buf [4]byte - buf[0] = byte(utf8.EncodeRune(buf[1:], alt)) - s := string(r) - buf[buf[0]] ^= s[len(s)-1] - var ok bool - if idx, ok = mapping[buf]; !ok { - idx = len(mapping) - if idx > math.MaxUint8 { - log.Fatalf("Index %d does not fit in a byte.", idx) - } - mapping[buf] = idx - inverse = append(inverse, buf) - } - } - t.Insert(r, uint64(tag|elem(idx))) - }) - - w := &bytes.Buffer{} - gen.WriteUnicodeVersion(w) - - sz, err := t.Gen(w) - if err != nil { - log.Fatal(err) - } - - sz += writeMappings(w, inverse) - - fmt.Fprintf(w, "// Total table size %d bytes (%dKiB)\n", sz, sz/1024) - - gen.WriteVersionedGoFile(*outputFile, "width", w.Bytes()) -} - -const inverseDataComment = ` -// inverseData contains 4-byte entries of the following format: -// <0 padding> -// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the -// UTF-8 encoding of the original rune. Mappings often have the following -// pattern: -// ๏ผก -> A (U+FF21 -> U+0041) -// ๏ผข -> B (U+FF22 -> U+0042) -// ... -// By xor-ing the last byte the same entry can be shared by many mappings. This -// reduces the total number of distinct entries by about two thirds. -// The resulting entry for the aforementioned mappings is -// { 0x01, 0xE0, 0x00, 0x00 } -// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get -// E0 ^ A1 = 41. -// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get -// E0 ^ A2 = 42. -// Note that because of the xor-ing, the byte sequence stored in the entry is -// not valid UTF-8.` - -func writeMappings(w io.Writer, data [][4]byte) int { - fmt.Fprintln(w, inverseDataComment) - fmt.Fprintf(w, "var inverseData = [%d][4]byte{\n", len(data)) - for _, x := range data { - fmt.Fprintf(w, "{ 0x%02x, 0x%02x, 0x%02x, 0x%02x },\n", x[0], x[1], x[2], x[3]) - } - fmt.Fprintln(w, "}") - return len(data) * 4 -} - -func genTests() { - w := &bytes.Buffer{} - fmt.Fprintf(w, "\nvar mapRunes = map[rune]struct{r rune; e elem}{\n") - getWidthData(func(r rune, tag elem, alt rune) { - if alt != 0 { - fmt.Fprintf(w, "\t0x%X: {0x%X, 0x%X},\n", r, alt, tag) - } - }) - fmt.Fprintln(w, "}") - gen.WriteGoFile("runes_test.go", "width", w.Bytes()) -} diff --git a/vendor/golang.org/x/text/width/gen_common.go b/vendor/golang.org/x/text/width/gen_common.go deleted file mode 100644 index 601e75268..000000000 --- a/vendor/golang.org/x/text/width/gen_common.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This code is shared between the main code generator and the test code. - -import ( - "flag" - "log" - "strconv" - "strings" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/ucd" -) - -var ( - outputFile = flag.String("out", "tables.go", "output file") -) - -var typeMap = map[string]elem{ - "A": tagAmbiguous, - "N": tagNeutral, - "Na": tagNarrow, - "W": tagWide, - "F": tagFullwidth, - "H": tagHalfwidth, -} - -// getWidthData calls f for every entry for which it is defined. -// -// f may be called multiple times for the same rune. The last call to f is the -// correct value. f is not called for all runes. The default tag type is -// Neutral. -func getWidthData(f func(r rune, tag elem, alt rune)) { - // Set the default values for Unified Ideographs. In line with Annex 11, - // we encode full ranges instead of the defined runes in Unified_Ideograph. - for _, b := range []struct{ lo, hi rune }{ - {0x4E00, 0x9FFF}, // the CJK Unified Ideographs block, - {0x3400, 0x4DBF}, // the CJK Unified Ideographs Externsion A block, - {0xF900, 0xFAFF}, // the CJK Compatibility Ideographs block, - {0x20000, 0x2FFFF}, // the Supplementary Ideographic Plane, - {0x30000, 0x3FFFF}, // the Tertiary Ideographic Plane, - } { - for r := b.lo; r <= b.hi; r++ { - f(r, tagWide, 0) - } - } - - inverse := map[rune]rune{} - maps := map[string]bool{ - "": true, - "": true, - } - - // We cannot reuse package norm's decomposition, as we need an unexpanded - // decomposition. We make use of the opportunity to verify that the - // decomposition type is as expected. - ucd.Parse(gen.OpenUCDFile("UnicodeData.txt"), func(p *ucd.Parser) { - r := p.Rune(0) - s := strings.SplitN(p.String(ucd.DecompMapping), " ", 2) - if !maps[s[0]] { - return - } - x, err := strconv.ParseUint(s[1], 16, 32) - if err != nil { - log.Fatalf("Error parsing rune %q", s[1]) - } - if inverse[r] != 0 || inverse[rune(x)] != 0 { - log.Fatalf("Circular dependency in mapping between %U and %U", r, x) - } - inverse[r] = rune(x) - inverse[rune(x)] = r - }) - - // ; - ucd.Parse(gen.OpenUCDFile("EastAsianWidth.txt"), func(p *ucd.Parser) { - tag, ok := typeMap[p.String(1)] - if !ok { - log.Fatalf("Unknown width type %q", p.String(1)) - } - r := p.Rune(0) - alt, ok := inverse[r] - if tag == tagFullwidth || tag == tagHalfwidth && r != wonSign { - tag |= tagNeedsFold - if !ok { - log.Fatalf("Narrow or wide rune %U has no decomposition", r) - } - } - f(r, tag, alt) - }) -} diff --git a/vendor/golang.org/x/text/width/gen_trieval.go b/vendor/golang.org/x/text/width/gen_trieval.go deleted file mode 100644 index c17334aa6..000000000 --- a/vendor/golang.org/x/text/width/gen_trieval.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// elem is an entry of the width trie. The high byte is used to encode the type -// of the rune. The low byte is used to store the index to a mapping entry in -// the inverseData array. -type elem uint16 - -const ( - tagNeutral elem = iota << typeShift - tagAmbiguous - tagWide - tagNarrow - tagFullwidth - tagHalfwidth -) - -const ( - numTypeBits = 3 - typeShift = 16 - numTypeBits - - // tagNeedsFold is true for all fullwidth and halfwidth runes except for - // the Won sign U+20A9. - tagNeedsFold = 0x1000 - - // The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide - // variant. - wonSign rune = 0x20A9 -) diff --git a/vendor/golang.org/x/tools/go/gcexportdata/main.go b/vendor/golang.org/x/tools/go/gcexportdata/main.go deleted file mode 100644 index 2713dce64..000000000 --- a/vendor/golang.org/x/tools/go/gcexportdata/main.go +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// The gcexportdata command is a diagnostic tool that displays the -// contents of gc export data files. -package main - -import ( - "flag" - "fmt" - "go/token" - "go/types" - "log" - "os" - - "golang.org/x/tools/go/gcexportdata" - "golang.org/x/tools/go/types/typeutil" -) - -var packageFlag = flag.String("package", "", "alternative package to print") - -func main() { - log.SetPrefix("gcexportdata: ") - log.SetFlags(0) - flag.Usage = func() { - fmt.Fprintln(os.Stderr, "usage: gcexportdata [-package path] file.a") - } - flag.Parse() - if flag.NArg() != 1 { - flag.Usage() - os.Exit(2) - } - filename := flag.Args()[0] - - f, err := os.Open(filename) - if err != nil { - log.Fatal(err) - } - - r, err := gcexportdata.NewReader(f) - if err != nil { - log.Fatalf("%s: %s", filename, err) - } - - // Decode the package. - const primary = "" - imports := make(map[string]*types.Package) - fset := token.NewFileSet() - pkg, err := gcexportdata.Read(r, fset, imports, primary) - if err != nil { - log.Fatalf("%s: %s", filename, err) - } - - // Optionally select an indirectly mentioned package. - if *packageFlag != "" { - pkg = imports[*packageFlag] - if pkg == nil { - fmt.Fprintf(os.Stderr, "export data file %s does not mention %s; has:\n", - filename, *packageFlag) - for p := range imports { - if p != primary { - fmt.Fprintf(os.Stderr, "\t%s\n", p) - } - } - os.Exit(1) - } - } - - // Print all package-level declarations, including non-exported ones. - fmt.Printf("package %s\n", pkg.Name()) - for _, imp := range pkg.Imports() { - fmt.Printf("import %q\n", imp.Path()) - } - qual := func(p *types.Package) string { - if pkg == p { - return "" - } - return p.Name() - } - scope := pkg.Scope() - for _, name := range scope.Names() { - obj := scope.Lookup(name) - fmt.Printf("%s: %s\n", - fset.Position(obj.Pos()), - types.ObjectString(obj, qual)) - - // For types, print each method. - if _, ok := obj.(*types.TypeName); ok { - for _, method := range typeutil.IntuitiveMethodSet(obj.Type(), nil) { - fmt.Printf("%s: %s\n", - fset.Position(method.Obj().Pos()), - types.SelectionString(method, qual)) - } - } - } -} diff --git a/vendor/golang.org/x/tools/internal/imports/mkindex.go b/vendor/golang.org/x/tools/internal/imports/mkindex.go deleted file mode 100644 index ef8c0d287..000000000 --- a/vendor/golang.org/x/tools/internal/imports/mkindex.go +++ /dev/null @@ -1,173 +0,0 @@ -// +build ignore - -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Command mkindex creates the file "pkgindex.go" containing an index of the Go -// standard library. The file is intended to be built as part of the imports -// package, so that the package may be used in environments where a GOROOT is -// not available (such as App Engine). -package imports - -import ( - "bytes" - "fmt" - "go/ast" - "go/build" - "go/format" - "go/parser" - "go/token" - "io/ioutil" - "log" - "os" - "path" - "path/filepath" - "strings" -) - -var ( - pkgIndex = make(map[string][]pkg) - exports = make(map[string]map[string]bool) -) - -func main() { - // Don't use GOPATH. - ctx := build.Default - ctx.GOPATH = "" - - // Populate pkgIndex global from GOROOT. - for _, path := range ctx.SrcDirs() { - f, err := os.Open(path) - if err != nil { - log.Print(err) - continue - } - children, err := f.Readdir(-1) - f.Close() - if err != nil { - log.Print(err) - continue - } - for _, child := range children { - if child.IsDir() { - loadPkg(path, child.Name()) - } - } - } - // Populate exports global. - for _, ps := range pkgIndex { - for _, p := range ps { - e := loadExports(p.dir) - if e != nil { - exports[p.dir] = e - } - } - } - - // Construct source file. - var buf bytes.Buffer - fmt.Fprint(&buf, pkgIndexHead) - fmt.Fprintf(&buf, "var pkgIndexMaster = %#v\n", pkgIndex) - fmt.Fprintf(&buf, "var exportsMaster = %#v\n", exports) - src := buf.Bytes() - - // Replace main.pkg type name with pkg. - src = bytes.Replace(src, []byte("main.pkg"), []byte("pkg"), -1) - // Replace actual GOROOT with "/go". - src = bytes.Replace(src, []byte(ctx.GOROOT), []byte("/go"), -1) - // Add some line wrapping. - src = bytes.Replace(src, []byte("}, "), []byte("},\n"), -1) - src = bytes.Replace(src, []byte("true, "), []byte("true,\n"), -1) - - var err error - src, err = format.Source(src) - if err != nil { - log.Fatal(err) - } - - // Write out source file. - err = ioutil.WriteFile("pkgindex.go", src, 0644) - if err != nil { - log.Fatal(err) - } -} - -const pkgIndexHead = `package imports - -func init() { - pkgIndexOnce.Do(func() { - pkgIndex.m = pkgIndexMaster - }) - loadExports = func(dir string) map[string]bool { - return exportsMaster[dir] - } -} -` - -type pkg struct { - importpath string // full pkg import path, e.g. "net/http" - dir string // absolute file path to pkg directory e.g. "/usr/lib/go/src/fmt" -} - -var fset = token.NewFileSet() - -func loadPkg(root, importpath string) { - shortName := path.Base(importpath) - if shortName == "testdata" { - return - } - - dir := filepath.Join(root, importpath) - pkgIndex[shortName] = append(pkgIndex[shortName], pkg{ - importpath: importpath, - dir: dir, - }) - - pkgDir, err := os.Open(dir) - if err != nil { - return - } - children, err := pkgDir.Readdir(-1) - pkgDir.Close() - if err != nil { - return - } - for _, child := range children { - name := child.Name() - if name == "" { - continue - } - if c := name[0]; c == '.' || ('0' <= c && c <= '9') { - continue - } - if child.IsDir() { - loadPkg(root, filepath.Join(importpath, name)) - } - } -} - -func loadExports(dir string) map[string]bool { - exports := make(map[string]bool) - buildPkg, err := build.ImportDir(dir, 0) - if err != nil { - if strings.Contains(err.Error(), "no buildable Go source files in") { - return nil - } - log.Printf("could not import %q: %v", dir, err) - return nil - } - for _, file := range buildPkg.GoFiles { - f, err := parser.ParseFile(fset, filepath.Join(dir, file), nil, 0) - if err != nil { - log.Printf("could not parse %q: %v", file, err) - continue - } - for name := range f.Scope.Objects { - if ast.IsExported(name) { - exports[name] = true - } - } - } - return exports -} diff --git a/vendor/golang.org/x/tools/internal/imports/mkstdlib.go b/vendor/golang.org/x/tools/internal/imports/mkstdlib.go deleted file mode 100644 index f67b5c1ed..000000000 --- a/vendor/golang.org/x/tools/internal/imports/mkstdlib.go +++ /dev/null @@ -1,132 +0,0 @@ -// +build ignore - -// mkstdlib generates the zstdlib.go file, containing the Go standard -// library API symbols. It's baked into the binary to avoid scanning -// GOPATH in the common case. -package imports - -import ( - "bufio" - "bytes" - "fmt" - "go/format" - "io" - "io/ioutil" - "log" - "os" - "os/exec" - "path/filepath" - "regexp" - "runtime" - "sort" - "strings" -) - -func mustOpen(name string) io.Reader { - f, err := os.Open(name) - if err != nil { - log.Fatal(err) - } - return f -} - -func api(base string) string { - return filepath.Join(runtime.GOROOT(), "api", base) -} - -var sym = regexp.MustCompile(`^pkg (\S+).*?, (?:var|func|type|const) ([A-Z]\w*)`) - -var unsafeSyms = map[string]bool{"Alignof": true, "ArbitraryType": true, "Offsetof": true, "Pointer": true, "Sizeof": true} - -func main() { - var buf bytes.Buffer - outf := func(format string, args ...interface{}) { - fmt.Fprintf(&buf, format, args...) - } - outf("// Code generated by mkstdlib.go. DO NOT EDIT.\n\n") - outf("package imports\n") - outf("var stdlib = map[string]map[string]bool{\n") - f := io.MultiReader( - mustOpen(api("go1.txt")), - mustOpen(api("go1.1.txt")), - mustOpen(api("go1.2.txt")), - mustOpen(api("go1.3.txt")), - mustOpen(api("go1.4.txt")), - mustOpen(api("go1.5.txt")), - mustOpen(api("go1.6.txt")), - mustOpen(api("go1.7.txt")), - mustOpen(api("go1.8.txt")), - mustOpen(api("go1.9.txt")), - mustOpen(api("go1.10.txt")), - mustOpen(api("go1.11.txt")), - mustOpen(api("go1.12.txt")), - - // The API of the syscall/js package needs to be computed explicitly, - // because it's not included in the GOROOT/api/go1.*.txt files at this time. - syscallJSAPI(), - ) - sc := bufio.NewScanner(f) - - pkgs := map[string]map[string]bool{ - "unsafe": unsafeSyms, - } - paths := []string{"unsafe"} - - for sc.Scan() { - l := sc.Text() - has := func(v string) bool { return strings.Contains(l, v) } - if has("struct, ") || has("interface, ") || has(", method (") { - continue - } - if m := sym.FindStringSubmatch(l); m != nil { - path, sym := m[1], m[2] - - if _, ok := pkgs[path]; !ok { - pkgs[path] = map[string]bool{} - paths = append(paths, path) - } - pkgs[path][sym] = true - } - } - if err := sc.Err(); err != nil { - log.Fatal(err) - } - sort.Strings(paths) - for _, path := range paths { - outf("\t%q: map[string]bool{\n", path) - pkg := pkgs[path] - var syms []string - for sym := range pkg { - syms = append(syms, sym) - } - sort.Strings(syms) - for _, sym := range syms { - outf("\t\t%q: true,\n", sym) - } - outf("},\n") - } - outf("}\n") - fmtbuf, err := format.Source(buf.Bytes()) - if err != nil { - log.Fatal(err) - } - err = ioutil.WriteFile("zstdlib.go", fmtbuf, 0666) - if err != nil { - log.Fatal(err) - } -} - -// syscallJSAPI returns the API of the syscall/js package. -// It's computed from the contents of $(go env GOROOT)/src/syscall/js. -func syscallJSAPI() io.Reader { - var exeSuffix string - if runtime.GOOS == "windows" { - exeSuffix = ".exe" - } - cmd := exec.Command("go"+exeSuffix, "run", "cmd/api", "-contexts", "js-wasm", "syscall/js") - out, err := cmd.Output() - if err != nil { - log.Fatalln(err) - } - return bytes.NewReader(out) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 440085528..3c7c1b407 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1359,7 +1359,7 @@ k8s.io/utils/net k8s.io/utils/path k8s.io/utils/pointer k8s.io/utils/trace -# openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348 +# openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 openpitrix.io/openpitrix/pkg/config openpitrix.io/openpitrix/pkg/constants openpitrix.io/openpitrix/pkg/db diff --git a/vendor/openpitrix.io/openpitrix/pkg/constants/column.go b/vendor/openpitrix.io/openpitrix/pkg/constants/column.go index 81a70fb51..86c9809ba 100644 --- a/vendor/openpitrix.io/openpitrix/pkg/constants/column.go +++ b/vendor/openpitrix.io/openpitrix/pkg/constants/column.go @@ -262,7 +262,7 @@ var IndexedColumns = map[string][]string{ }, TableCluster: { ColumnClusterId, ColumnAppId, ColumnVersionId, ColumnStatus, - ColumnRuntimeId, ColumnFrontgateId, ColumnOwner, ColumnClusterType, + ColumnRuntimeId, ColumnFrontgateId, ColumnOwner, ColumnClusterType, ColumnZone, }, TableKeyPair: { ColumnKeyPairId, ColumnName, ColumnOwner, diff --git a/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go b/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go index 714ca6804..a7303a1b2 100644 --- a/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go +++ b/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go @@ -288,7 +288,7 @@ type CreateClusterRequest struct { // advanced param AdvancedParam []string `protobuf:"bytes,5,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"` // kubernetes namespace - Namespace *wrappers.StringValue `protobuf:"bytes,6,opt,name=namespace,proto3" json:"namespace,omitempty"` + Zone *wrappers.StringValue `protobuf:"bytes,6,opt,name=zone,proto3" json:"zone,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -354,9 +354,9 @@ func (m *CreateClusterRequest) GetAdvancedParam() []string { return nil } -func (m *CreateClusterRequest) GetNamespace() *wrappers.StringValue { +func (m *CreateClusterRequest) GetZone() *wrappers.StringValue { if m != nil { - return m.Namespace + return m.Zone } return nil } @@ -1004,12 +1004,10 @@ type UpgradeClusterRequest struct { // app version id VersionId *wrappers.StringValue `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"` // advanced param - AdvancedParam []string `protobuf:"bytes,3,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"` - // values - Conf *wrappers.StringValue `protobuf:"bytes,4,opt,name=conf,proto3" json:"conf,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AdvancedParam []string `protobuf:"bytes,3,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *UpgradeClusterRequest) Reset() { *m = UpgradeClusterRequest{} } @@ -1058,13 +1056,6 @@ func (m *UpgradeClusterRequest) GetAdvancedParam() []string { return nil } -func (m *UpgradeClusterRequest) GetConf() *wrappers.StringValue { - if m != nil { - return m.Conf - } - return nil -} - type UpgradeClusterResponse struct { // id of cluster upgraded ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` @@ -4904,310 +4895,309 @@ func init() { func init() { proto.RegisterFile("cluster.proto", fileDescriptor_3cfb3b8ec240c376) } var fileDescriptor_3cfb3b8ec240c376 = []byte{ - // 4844 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0x4d, 0x6c, 0x1c, 0x47, - 0x76, 0x3f, 0x7a, 0x86, 0x1c, 0x92, 0x6f, 0x38, 0x43, 0xaa, 0x48, 0x0e, 0x47, 0x43, 0x4a, 0x1e, - 0xb5, 0xfc, 0xa1, 0xbf, 0x97, 0x26, 0x6d, 0x59, 0x5e, 0xcb, 0x92, 0xf5, 0x5f, 0x8f, 0x28, 0xc5, - 0xcb, 0x58, 0xb2, 0x85, 0xa1, 0x24, 0x6f, 0x1c, 0x67, 0x7b, 0x9b, 0xd3, 0xc5, 0x61, 0x2f, 0x67, - 0xba, 0x7b, 0xbb, 0x6b, 0xa8, 0xa5, 0x91, 0x93, 0x11, 0x20, 0xc9, 0xee, 0x26, 0xc0, 0x32, 0x48, - 0xb0, 0xf9, 0x04, 0x82, 0x20, 0x8b, 0x4d, 0x10, 0x23, 0xbb, 0x06, 0x72, 0x30, 0x72, 0xc8, 0x29, - 0x7b, 0x09, 0x90, 0x1c, 0x72, 0x09, 0x7c, 0xca, 0x61, 0x4f, 0xce, 0x35, 0xb7, 0x5c, 0x82, 0xfa, - 0xe8, 0x8f, 0xea, 0xe9, 0x19, 0xd6, 0x70, 0x28, 0xc9, 0x8b, 0x9c, 0xc8, 0xe9, 0x7e, 0xef, 0xd5, - 0xaf, 0x5e, 0xbd, 0x57, 0xef, 0x55, 0xd5, 0xab, 0x86, 0x52, 0xab, 0xd3, 0x0b, 0x08, 0xf6, 0xd7, - 0x3d, 0xdf, 0x25, 0x2e, 0x02, 0xd7, 0xc3, 0x8e, 0x67, 0x13, 0xdf, 0xfe, 0x6e, 0x6d, 0xa5, 0xed, - 0xba, 0xed, 0x0e, 0xde, 0x60, 0x6f, 0x76, 0x7a, 0xbb, 0x1b, 0xb8, 0xeb, 0x91, 0x43, 0x4e, 0x58, - 0x3b, 0x9f, 0x7e, 0xf9, 0xc8, 0x37, 0x3d, 0x0f, 0xfb, 0x81, 0x78, 0xff, 0x4c, 0xfa, 0x3d, 0xb1, - 0xbb, 0x38, 0x20, 0x66, 0xd7, 0x13, 0x04, 0xab, 0x82, 0xc0, 0xf4, 0xec, 0x0d, 0xd3, 0x71, 0x5c, - 0x62, 0x12, 0xdb, 0x75, 0x42, 0xf6, 0x35, 0xf6, 0xa7, 0xf5, 0x52, 0x1b, 0x3b, 0x2f, 0x05, 0x8f, - 0xcc, 0x76, 0x1b, 0xfb, 0x1b, 0xae, 0xc7, 0x28, 0xfa, 0xa9, 0xf5, 0x3f, 0xc9, 0x41, 0xe5, 0x16, - 0x0e, 0x5a, 0xbe, 0xbd, 0x83, 0xb7, 0x7b, 0x3b, 0x0e, 0x26, 0x41, 0x13, 0x7f, 0xa7, 0x87, 0x03, - 0x82, 0xae, 0x03, 0xf8, 0x3d, 0x87, 0x36, 0x6e, 0xd8, 0x56, 0x55, 0xab, 0x6b, 0x97, 0x8a, 0x97, - 0x57, 0xd7, 0x79, 0xdb, 0xeb, 0x21, 0xb8, 0xf5, 0x6d, 0xe2, 0xdb, 0x4e, 0xfb, 0xa1, 0xd9, 0xe9, - 0xe1, 0xe6, 0x8c, 0xa0, 0xdf, 0xb2, 0xd0, 0x22, 0x4c, 0x76, 0xec, 0xae, 0x4d, 0xaa, 0xb9, 0xba, - 0x76, 0xa9, 0xd4, 0xe4, 0x3f, 0x50, 0x05, 0x0a, 0xee, 0xee, 0x6e, 0x80, 0x49, 0x35, 0xcf, 0x1e, - 0x8b, 0x5f, 0xe8, 0x06, 0x14, 0x03, 0xd6, 0xb8, 0x41, 0x0e, 0x3d, 0x5c, 0x9d, 0x18, 0xd0, 0xd6, - 0x83, 0x2d, 0x87, 0xbc, 0x7a, 0x99, 0xb7, 0x05, 0x9c, 0xe1, 0xfe, 0xa1, 0x87, 0xd1, 0x0a, 0xcc, - 0x08, 0x76, 0xdb, 0xaa, 0x4e, 0xd6, 0xf3, 0x97, 0x66, 0x9a, 0xd3, 0xfc, 0xc1, 0x96, 0x85, 0x10, - 0x4c, 0x7c, 0xe4, 0x3a, 0xb8, 0x5a, 0x60, 0xcf, 0xd9, 0xff, 0xe8, 0x39, 0x28, 0x9b, 0xd6, 0x81, - 0xe9, 0xb4, 0xb0, 0x65, 0x78, 0xa6, 0x6f, 0x76, 0xab, 0x53, 0xec, 0x6d, 0x29, 0x7c, 0x7a, 0x8f, - 0x3e, 0xd4, 0x3f, 0xcb, 0x43, 0x81, 0x2b, 0x05, 0xbd, 0x91, 0x6c, 0x42, 0x45, 0x17, 0x31, 0x80, - 0x97, 0x61, 0xc2, 0x31, 0xbb, 0x98, 0x69, 0xe2, 0x38, 0x2e, 0x46, 0x49, 0x39, 0x18, 0xe4, 0xbc, - 0x0a, 0x07, 0xeb, 0xd0, 0x75, 0x28, 0xb6, 0x7c, 0x6c, 0x12, 0x6c, 0x50, 0xfd, 0x0b, 0x05, 0xd6, - 0xfa, 0x18, 0xef, 0x87, 0x96, 0xd4, 0x04, 0x4e, 0x4e, 0x1f, 0xa0, 0xff, 0x0f, 0x45, 0x8b, 0x99, - 0x00, 0xb3, 0x92, 0xea, 0xa4, 0x42, 0xab, 0x49, 0x06, 0xf4, 0x0c, 0x14, 0x6d, 0x27, 0x20, 0x54, - 0x71, 0x54, 0x3b, 0x5c, 0xd1, 0x10, 0x3e, 0xda, 0xb2, 0xd0, 0xab, 0x50, 0x38, 0xf0, 0x5a, 0xf4, - 0xdd, 0x94, 0x82, 0xec, 0xc9, 0x03, 0xaf, 0xb5, 0x65, 0xa5, 0x6d, 0x62, 0x7a, 0x34, 0x9b, 0xd0, - 0xbb, 0xb0, 0xdc, 0x67, 0xd7, 0x81, 0xe7, 0x3a, 0x01, 0xa6, 0x78, 0x89, 0x4b, 0xcc, 0x8e, 0xd1, - 0x72, 0x7b, 0x0e, 0x61, 0xa3, 0x59, 0x6a, 0x02, 0x7b, 0xb4, 0x49, 0x9f, 0xa0, 0x57, 0x40, 0x48, - 0x32, 0xa8, 0xa9, 0xe6, 0xea, 0xf9, 0x4b, 0xc5, 0xcb, 0x68, 0x3d, 0xf6, 0xef, 0x75, 0x2e, 0xb1, - 0x29, 0x4c, 0x62, 0x1b, 0x13, 0xfd, 0xf3, 0x1c, 0x2c, 0x6e, 0x32, 0x95, 0x6e, 0xf2, 0x59, 0x21, - 0xf4, 0xa2, 0x57, 0xa1, 0x60, 0x7a, 0x9e, 0xaa, 0xd5, 0x4c, 0x9a, 0x9e, 0xb7, 0x65, 0x51, 0xd7, - 0x3b, 0xc0, 0x7e, 0x60, 0xbb, 0x0e, 0x65, 0x54, 0x31, 0x9c, 0x19, 0x41, 0xcf, 0x99, 0x13, 0x7e, - 0x9b, 0x1f, 0xcd, 0x6f, 0x5f, 0x86, 0x89, 0x96, 0xeb, 0xec, 0x0e, 0x74, 0x41, 0xc9, 0xf4, 0x28, - 0x65, 0x86, 0x2f, 0x4d, 0x66, 0xf8, 0x12, 0xba, 0x06, 0x33, 0xd4, 0xb6, 0x03, 0xcf, 0x6c, 0x51, - 0x5f, 0x54, 0x00, 0x15, 0x91, 0xeb, 0xbf, 0xab, 0xc1, 0x52, 0x4a, 0xb9, 0x62, 0x28, 0xaf, 0x03, - 0x88, 0x59, 0x58, 0x79, 0x8e, 0x12, 0xf4, 0xdc, 0x2c, 0xbf, 0xed, 0xee, 0xa8, 0x6a, 0x78, 0xf2, - 0xdb, 0xee, 0xce, 0x96, 0xa5, 0x7f, 0x9a, 0x87, 0xc5, 0xbb, 0xae, 0x65, 0xef, 0x1e, 0xa6, 0x06, - 0xfa, 0x25, 0x98, 0x12, 0xa2, 0x05, 0x8e, 0x85, 0xa4, 0xc5, 0x84, 0xc4, 0x21, 0x0d, 0x6a, 0xc0, - 0x7c, 0x88, 0xdc, 0x71, 0x2d, 0x9c, 0xb0, 0xb4, 0xe5, 0x0c, 0xbe, 0x77, 0x5d, 0x0b, 0x37, 0xcb, - 0xad, 0xf8, 0xc7, 0x36, 0x26, 0x49, 0x11, 0xbe, 0xdb, 0xe1, 0x22, 0xf2, 0x03, 0x45, 0x34, 0xdd, - 0x4e, 0x2c, 0x82, 0xfe, 0x48, 0x89, 0xe8, 0xd8, 0xce, 0x3e, 0x13, 0x31, 0x31, 0x50, 0xc4, 0x1d, - 0xdb, 0xd9, 0x8f, 0x44, 0xd0, 0x1f, 0x54, 0xc4, 0xdb, 0x80, 0x42, 0x11, 0x2d, 0xb7, 0xdb, 0x75, - 0x1d, 0x26, 0x64, 0x92, 0x09, 0x39, 0x9b, 0x21, 0x64, 0x93, 0x11, 0x35, 0xc3, 0x76, 0xf9, 0x4f, - 0x2a, 0xe8, 0xd7, 0xa0, 0x1a, 0x61, 0x71, 0x4d, 0x6b, 0xc7, 0xec, 0x50, 0xf3, 0xf1, 0x99, 0xb8, - 0x02, 0x13, 0xf7, 0x4c, 0x16, 0xa6, 0x04, 0x69, 0xb3, 0xd2, 0xea, 0x7f, 0x48, 0xbd, 0xf3, 0x3e, - 0x2c, 0xa5, 0xc6, 0xec, 0x14, 0xec, 0x47, 0x7f, 0x08, 0x55, 0x49, 0x2a, 0x1b, 0x24, 0x61, 0x0d, - 0xd7, 0x60, 0x36, 0x39, 0xbc, 0x42, 0xf4, 0xc0, 0xa1, 0x2d, 0x26, 0x86, 0x56, 0x6f, 0xc2, 0xd9, - 0x0c, 0xb9, 0x02, 0xf1, 0x6b, 0x30, 0xc5, 0xec, 0x45, 0x11, 0x6e, 0x81, 0x12, 0x6f, 0x59, 0xfa, - 0xbf, 0x69, 0x70, 0x5e, 0x12, 0xda, 0x20, 0xc4, 0xb7, 0x77, 0x7a, 0x04, 0x27, 0xe3, 0xfd, 0xc9, - 0x7d, 0x69, 0xf4, 0x20, 0x97, 0x8a, 0x3a, 0xf9, 0x11, 0xa3, 0x8e, 0xfe, 0x4d, 0x78, 0x66, 0x60, - 0x87, 0x4e, 0x63, 0x74, 0x7f, 0x4f, 0x03, 0xbd, 0x6f, 0x18, 0xfa, 0xb5, 0x76, 0xb2, 0xf1, 0x18, - 0x5d, 0x5f, 0xfa, 0x87, 0x70, 0x71, 0x28, 0x9c, 0xf1, 0xec, 0xe3, 0x5b, 0xb0, 0xd2, 0xb0, 0xac, - 0xfb, 0xe6, 0x4e, 0x07, 0x27, 0xe4, 0x47, 0xbd, 0xcc, 0x9a, 0xad, 0xb4, 0x91, 0x66, 0x2b, 0xfd, - 0x0d, 0x38, 0x7f, 0x0b, 0x77, 0x30, 0xc1, 0x03, 0x1b, 0x59, 0x4e, 0x42, 0xa7, 0x21, 0x24, 0x04, - 0xf7, 0xa9, 0x06, 0x4b, 0x9c, 0x57, 0xb0, 0x45, 0x2c, 0xe7, 0x52, 0x23, 0x4c, 0xb9, 0x12, 0x56, - 0xd9, 0x1f, 0x9b, 0x72, 0x59, 0xb1, 0xe9, 0x65, 0x98, 0xdc, 0x75, 0xfd, 0x56, 0x98, 0x70, 0xf5, - 0xe7, 0x4d, 0x37, 0x5d, 0xb7, 0x23, 0xa2, 0x00, 0x23, 0x44, 0x17, 0x60, 0xb6, 0xed, 0x9b, 0x2d, - 0x6c, 0x78, 0xd8, 0xb7, 0x5d, 0x8b, 0x85, 0xcb, 0x52, 0xb3, 0xc8, 0x9e, 0xdd, 0x63, 0x8f, 0xf4, - 0x77, 0x69, 0x62, 0x2d, 0x63, 0x16, 0x43, 0x74, 0x0c, 0xe8, 0xa5, 0x44, 0x58, 0xa2, 0xaf, 0x44, - 0xe0, 0xf9, 0x42, 0x83, 0xa5, 0x07, 0x5e, 0xdb, 0x37, 0xad, 0x74, 0x8a, 0x31, 0x96, 0xe3, 0x8e, - 0x95, 0x6a, 0xf4, 0xeb, 0x37, 0x9f, 0xad, 0xdf, 0x11, 0x93, 0x0a, 0xfd, 0x7b, 0x1a, 0x54, 0xd2, - 0x9d, 0x7d, 0x6a, 0x21, 0xff, 0x37, 0xa1, 0xd2, 0x74, 0x3b, 0x9d, 0x1d, 0xb3, 0xb5, 0x7f, 0x9a, - 0x9a, 0x57, 0x33, 0x4e, 0xfd, 0xfb, 0x1a, 0x2c, 0xf7, 0x35, 0xff, 0xd4, 0x74, 0xf1, 0x79, 0x0e, - 0x66, 0x59, 0x26, 0x81, 0x03, 0xb7, 0x47, 0x3d, 0xe1, 0x65, 0x98, 0xa0, 0xc9, 0x87, 0x52, 0xe3, - 0x8c, 0x12, 0xad, 0x43, 0xbe, 0xe5, 0xf5, 0x06, 0x36, 0x9a, 0x4c, 0xe8, 0x29, 0x21, 0xa5, 0x6f, - 0x7b, 0xbd, 0x81, 0x01, 0x42, 0xa2, 0x6f, 0x7b, 0x3d, 0x74, 0x05, 0x0a, 0x5d, 0xdc, 0x75, 0xfd, - 0x43, 0xa5, 0x75, 0xa4, 0xa0, 0x45, 0x0d, 0x28, 0x45, 0x8b, 0x98, 0xc0, 0xfe, 0x08, 0x0f, 0x5c, - 0x06, 0x25, 0x99, 0x67, 0x43, 0x96, 0x6d, 0xfb, 0x23, 0x8c, 0xbe, 0x06, 0xb3, 0x01, 0x71, 0x7d, - 0xb3, 0x2d, 0x24, 0x14, 0x14, 0x24, 0x14, 0x05, 0x07, 0x15, 0xa0, 0x7f, 0xa6, 0xc1, 0x62, 0x13, - 0x53, 0xde, 0xd3, 0xb4, 0xb3, 0x1b, 0x50, 0x62, 0xe9, 0xa1, 0x2f, 0x86, 0x4c, 0xa4, 0x99, 0xd5, - 0xe4, 0xc4, 0x9d, 0x1c, 0xd2, 0xe6, 0xac, 0x9f, 0x1c, 0x60, 0xb5, 0xfc, 0x9e, 0xe5, 0xe8, 0x29, - 0xec, 0x4f, 0xcd, 0x48, 0xff, 0x4b, 0x83, 0x4a, 0xc3, 0xb2, 0xb2, 0x62, 0xcc, 0xb8, 0x49, 0x0e, - 0xb3, 0xf5, 0x9c, 0xb2, 0xad, 0x5f, 0x07, 0x60, 0x21, 0x8d, 0xaf, 0x34, 0x55, 0x4c, 0x78, 0x86, - 0xd2, 0xf3, 0x65, 0x68, 0xbf, 0xe6, 0x27, 0x06, 0x4d, 0x10, 0x7d, 0xbd, 0x7d, 0x6a, 0xba, 0xff, - 0x91, 0x06, 0x67, 0xa5, 0xb8, 0x77, 0x7a, 0xea, 0x4f, 0xe4, 0x07, 0xb9, 0x64, 0x7e, 0xa0, 0x18, - 0x86, 0xf4, 0xdf, 0xd7, 0xa0, 0x96, 0x05, 0xed, 0xa9, 0xe9, 0xea, 0x13, 0x0d, 0x96, 0x1f, 0x78, - 0x56, 0xbc, 0xae, 0xbd, 0xed, 0x1c, 0x9c, 0x8a, 0xa6, 0xd6, 0x21, 0x8f, 0x9d, 0x03, 0x25, 0x28, - 0x94, 0x50, 0x55, 0x81, 0x3f, 0xd0, 0xa0, 0xda, 0x8f, 0xf7, 0xa9, 0xa9, 0xef, 0x67, 0x65, 0x28, - 0x49, 0x8b, 0xca, 0x27, 0xed, 0xdd, 0xef, 0xc1, 0x52, 0x80, 0xfd, 0x03, 0xd6, 0x9a, 0xd1, 0xf3, - 0x3c, 0xec, 0x1b, 0x3b, 0x6e, 0xcf, 0xb1, 0x94, 0x1c, 0x1d, 0x71, 0xd6, 0x2d, 0xeb, 0x01, 0x65, - 0xbc, 0x49, 0xf9, 0xd0, 0xdb, 0x30, 0x1f, 0x8d, 0x83, 0xd9, 0x62, 0xfb, 0xb4, 0x4a, 0x49, 0xd3, - 0x5c, 0xc8, 0xd5, 0xe0, 0x4c, 0x34, 0x14, 0xd9, 0x8e, 0x4d, 0x0c, 0xda, 0x86, 0xdd, 0xc2, 0x6a, - 0x7b, 0x7a, 0x94, 0x63, 0x9b, 0x33, 0xd0, 0x70, 0x18, 0x10, 0xd3, 0x8f, 0x25, 0xa8, 0x6c, 0xd9, - 0xcc, 0x32, 0x96, 0x50, 0x04, 0x0f, 0x87, 0x5e, 0x24, 0x41, 0x65, 0xef, 0x8f, 0x86, 0x43, 0x2f, - 0x14, 0xf0, 0x75, 0x38, 0x13, 0xb4, 0xcc, 0x0e, 0x36, 0xdc, 0x5e, 0x8c, 0x63, 0x5a, 0x45, 0x1d, - 0x8c, 0xed, 0xbd, 0x5e, 0x04, 0xe5, 0x57, 0x60, 0x9e, 0x4b, 0xb2, 0x9d, 0x48, 0xd0, 0x8c, 0x82, - 0xa0, 0x32, 0xe3, 0xda, 0x72, 0x42, 0x39, 0xb7, 0x61, 0xce, 0xc7, 0xb2, 0x5e, 0x40, 0x45, 0x8c, - 0x60, 0x4a, 0x88, 0xb1, 0x70, 0x40, 0x7c, 0xf7, 0x30, 0x12, 0x53, 0x54, 0x11, 0x23, 0x98, 0x12, - 0x62, 0x7a, 0x3c, 0x47, 0x8e, 0xc4, 0xcc, 0xaa, 0x88, 0x11, 0x4c, 0xa1, 0x98, 0x4d, 0x28, 0xb7, - 0x7a, 0x01, 0x71, 0xbb, 0x91, 0x94, 0x92, 0x82, 0x94, 0x12, 0xe7, 0x49, 0x08, 0xa1, 0x09, 0x6a, - 0x2f, 0x1e, 0xee, 0xb2, 0x8a, 0x10, 0xce, 0x93, 0x52, 0xaf, 0xeb, 0xc7, 0x1d, 0x9a, 0x53, 0x55, - 0xaf, 0xeb, 0x47, 0x1d, 0xba, 0x0f, 0xcb, 0x16, 0x9b, 0xe6, 0x8d, 0xc0, 0x31, 0xbd, 0x60, 0xcf, - 0x8d, 0x47, 0x6b, 0x5e, 0x41, 0xdc, 0x12, 0x67, 0xde, 0x16, 0xbc, 0x09, 0x73, 0xde, 0xc3, 0x66, - 0x87, 0xec, 0x19, 0xad, 0x3d, 0xdc, 0xda, 0xaf, 0x9e, 0x51, 0x31, 0x67, 0xce, 0xb1, 0x49, 0x19, - 0xd0, 0x57, 0x61, 0xaa, 0xeb, 0x3a, 0x36, 0x71, 0xfd, 0x2a, 0x52, 0xe0, 0x0d, 0x89, 0xd1, 0x2d, - 0x28, 0x7b, 0x66, 0x10, 0x78, 0x7b, 0xbe, 0x19, 0xe0, 0x0e, 0x0e, 0x82, 0xea, 0x82, 0x8a, 0x52, - 0x64, 0x1e, 0xaa, 0x94, 0x03, 0xec, 0x13, 0xbb, 0x65, 0x76, 0x0c, 0x6a, 0xd5, 0xb6, 0xd3, 0x36, - 0x3c, 0xb7, 0x63, 0xb7, 0x0e, 0xab, 0x8b, 0x2a, 0x4a, 0x09, 0x99, 0xb7, 0x39, 0xef, 0x3d, 0xc6, - 0x8a, 0x36, 0x61, 0xce, 0x6c, 0x63, 0x87, 0x18, 0x2c, 0x11, 0xee, 0x74, 0xb0, 0x55, 0x5d, 0x3a, - 0x76, 0x0d, 0x5d, 0x66, 0x2c, 0x5b, 0x21, 0x07, 0x6a, 0x42, 0x45, 0x18, 0x60, 0x17, 0x13, 0xd3, - 0x32, 0x89, 0x69, 0xf0, 0x6d, 0x9e, 0x6a, 0x45, 0x01, 0xd9, 0x22, 0xe7, 0xbd, 0x2b, 0x58, 0xb7, - 0x19, 0x27, 0x7a, 0x1d, 0xa6, 0xed, 0x2e, 0xcd, 0xc4, 0x6d, 0xab, 0xba, 0xac, 0xa2, 0x6d, 0x46, - 0xbd, 0x65, 0xd1, 0x89, 0x4f, 0x18, 0xb2, 0xd0, 0x4e, 0x55, 0x65, 0xe2, 0xe3, 0x2c, 0x42, 0x29, - 0x1f, 0xc2, 0xaa, 0xed, 0xb4, 0x7c, 0xdc, 0xc5, 0x0e, 0x31, 0x3b, 0x46, 0xe8, 0x17, 0x3d, 0xcf, - 0x73, 0x7d, 0x82, 0xad, 0xea, 0xd9, 0x63, 0x35, 0x54, 0x4b, 0xf0, 0xdf, 0xe4, 0x2e, 0x12, 0x72, - 0xa3, 0x37, 0x01, 0xf6, 0x0e, 0x3d, 0x6a, 0x94, 0x81, 0xeb, 0x57, 0x6b, 0x0a, 0xe8, 0x12, 0xf4, - 0xfa, 0x4f, 0x4a, 0x50, 0x4c, 0x64, 0x3f, 0x27, 0xdd, 0xbe, 0x92, 0x03, 0x6d, 0xee, 0x64, 0x7b, - 0x85, 0x79, 0xe5, 0xbd, 0xc2, 0x1b, 0xf2, 0x09, 0x93, 0x4a, 0x48, 0x4c, 0x9e, 0x3f, 0xbd, 0x01, - 0x33, 0x07, 0x6e, 0xa7, 0xc7, 0x0f, 0x44, 0x54, 0x42, 0xe1, 0x34, 0x27, 0xdf, 0xb2, 0xe8, 0x62, - 0xd2, 0xc2, 0xca, 0x01, 0x50, 0xd0, 0xca, 0xa7, 0x85, 0x53, 0x23, 0x9d, 0x16, 0x5e, 0x07, 0xf0, - 0x7c, 0xfb, 0xc0, 0x24, 0xd8, 0xb0, 0x3d, 0xa5, 0x68, 0x37, 0x23, 0xe8, 0xb7, 0x3c, 0x96, 0xf7, - 0xd9, 0x9e, 0x52, 0x68, 0xa3, 0x84, 0x0c, 0x67, 0x98, 0xc0, 0x0c, 0x8c, 0x64, 0xc9, 0xa4, 0x65, - 0x3a, 0x4c, 0x5a, 0xa2, 0x6c, 0xa9, 0xa8, 0x9c, 0x2d, 0x5d, 0x81, 0x42, 0x40, 0x4c, 0xd2, 0x0b, - 0x94, 0xa2, 0x94, 0xa0, 0x45, 0x5b, 0x70, 0x86, 0xf8, 0xa6, 0x13, 0xd8, 0x34, 0xb1, 0x31, 0x84, - 0x00, 0x95, 0x00, 0x35, 0x1f, 0xb3, 0x6d, 0x73, 0x51, 0xaf, 0xc3, 0x74, 0xdb, 0x77, 0x7b, 0xec, - 0x30, 0xae, 0xac, 0xd0, 0xd9, 0x29, 0x46, 0xcd, 0xc7, 0xc4, 0x7d, 0xe4, 0x60, 0xdf, 0xf0, 0x4c, - 0xb2, 0xa7, 0x14, 0x92, 0x66, 0x18, 0xfd, 0x3d, 0x93, 0xec, 0xd1, 0xdc, 0xa3, 0xdd, 0x71, 0x77, - 0xe8, 0xb4, 0x1b, 0xa9, 0x7a, 0x5e, 0xa1, 0xf5, 0x32, 0xe7, 0xda, 0x0e, 0x15, 0x7e, 0x1b, 0xe6, - 0x52, 0xb3, 0xa4, 0x52, 0x08, 0x2a, 0xcb, 0xd3, 0x23, 0x75, 0x78, 0xaf, 0xb7, 0x63, 0xec, 0xe3, - 0x43, 0xa5, 0x28, 0x54, 0xf0, 0x7a, 0x3b, 0xef, 0x60, 0xb6, 0x3d, 0x22, 0xa2, 0x9f, 0x18, 0x02, - 0x95, 0x18, 0x24, 0x02, 0x66, 0xa4, 0xfe, 0x19, 0x3b, 0x10, 0xb3, 0xa1, 0x88, 0x39, 0xc3, 0xe6, - 0xc0, 0x69, 0x3b, 0xe0, 0x53, 0x1f, 0xba, 0x0e, 0x45, 0xb3, 0x47, 0xdc, 0x90, 0xf5, 0xf8, 0x00, - 0x03, 0x94, 0x3c, 0x66, 0x4e, 0x9e, 0x8c, 0x57, 0x46, 0x3a, 0x19, 0xbf, 0x0e, 0x45, 0xde, 0x5d, - 0xce, 0xbc, 0x7c, 0x3c, 0x33, 0x27, 0x67, 0xcc, 0xaf, 0xc1, 0xd4, 0x9e, 0x1b, 0xb0, 0x29, 0x40, - 0x25, 0x86, 0x14, 0x28, 0xf1, 0x96, 0x15, 0xb3, 0x79, 0x22, 0x50, 0xa8, 0xb0, 0x79, 0xc9, 0x03, - 0x27, 0xe6, 0x97, 0xb5, 0x81, 0x07, 0x4e, 0x6c, 0xaf, 0xa7, 0x98, 0x38, 0x08, 0x44, 0x6f, 0x41, - 0x59, 0x3e, 0xc2, 0xab, 0xae, 0x30, 0xee, 0x21, 0xc7, 0x77, 0x25, 0xe9, 0xf8, 0x0e, 0x9d, 0x87, - 0xe2, 0x3e, 0x3e, 0x34, 0x3c, 0xd3, 0x66, 0xf6, 0xbd, 0xca, 0xf7, 0xb4, 0xf7, 0xf1, 0xe1, 0x3d, - 0xd3, 0xa6, 0xc6, 0x7b, 0x19, 0x26, 0x99, 0x47, 0x54, 0xcf, 0xa9, 0x2c, 0xef, 0x18, 0xa9, 0xfe, - 0xcf, 0x85, 0x28, 0x54, 0x35, 0xc5, 0x5e, 0xca, 0x93, 0x5c, 0xdc, 0x89, 0x6d, 0xca, 0xfc, 0x88, - 0xdb, 0x94, 0x13, 0xa3, 0x6f, 0x53, 0x4e, 0x8e, 0xb3, 0x4d, 0x59, 0x18, 0x7b, 0x9b, 0x72, 0x6a, - 0xc4, 0x6d, 0x4a, 0x1a, 0x8d, 0xbb, 0x6e, 0xcf, 0x21, 0x86, 0xe7, 0xda, 0x0e, 0x51, 0x8a, 0x51, - 0xc0, 0x18, 0xee, 0x51, 0x7a, 0xda, 0x05, 0xce, 0x2e, 0xaa, 0x92, 0x94, 0xc2, 0xd5, 0x2c, 0x63, - 0x79, 0x8f, 0x73, 0x50, 0x04, 0xbb, 0x76, 0x07, 0x1b, 0xc1, 0x61, 0x40, 0x70, 0x57, 0x69, 0x0d, - 0x06, 0x94, 0x61, 0x9b, 0xd1, 0x87, 0xdb, 0x23, 0x45, 0xd5, 0xed, 0x91, 0xab, 0x30, 0xed, 0x63, - 0xaf, 0x63, 0xb7, 0xcc, 0xc1, 0xb1, 0x4b, 0x8a, 0x92, 0x21, 0x35, 0x5d, 0x16, 0xf9, 0xd8, 0xb4, - 0x0e, 0x8d, 0x88, 0xbf, 0xa4, 0xc0, 0x5f, 0x62, 0x3c, 0xcd, 0x50, 0xc8, 0x0d, 0x28, 0x9a, 0x9e, - 0x6d, 0x88, 0x63, 0x17, 0xa5, 0x85, 0x15, 0x98, 0x9e, 0xfd, 0x90, 0xd3, 0xeb, 0xff, 0x93, 0x83, - 0x85, 0x8c, 0xc3, 0xf2, 0x27, 0xed, 0x4f, 0x0f, 0xa1, 0x2a, 0x1d, 0xeb, 0x77, 0xec, 0x80, 0x60, - 0x87, 0x37, 0xae, 0x92, 0x09, 0x56, 0x92, 0xdc, 0x77, 0x04, 0xf3, 0x96, 0x45, 0x13, 0x04, 0x49, - 0x2e, 0x4d, 0x93, 0x95, 0xbc, 0x70, 0x3e, 0xc9, 0x76, 0xcf, 0xf5, 0x09, 0x5d, 0x88, 0xa4, 0x44, - 0xd1, 0x7c, 0x5e, 0x35, 0x69, 0x5c, 0x94, 0xe5, 0x51, 0xd6, 0x2d, 0x4b, 0xff, 0xc7, 0x5c, 0x34, - 0x8b, 0xdd, 0xb1, 0x9d, 0xfd, 0x27, 0x7d, 0xca, 0x7e, 0x07, 0x16, 0xf0, 0x77, 0x09, 0xf6, 0x1d, - 0xb3, 0x63, 0x24, 0xda, 0x55, 0x51, 0xf8, 0x99, 0x90, 0x71, 0x33, 0x79, 0x58, 0x98, 0x48, 0x84, - 0x26, 0x46, 0x4b, 0x84, 0xa2, 0x18, 0x30, 0xa9, 0x1e, 0x03, 0x3e, 0x2f, 0xc3, 0x94, 0x68, 0xfe, - 0x97, 0xac, 0x3e, 0x21, 0x51, 0xf8, 0x35, 0x71, 0xd2, 0xc2, 0xaf, 0xc9, 0xd1, 0x4e, 0x63, 0xa5, - 0x55, 0x47, 0x61, 0xa4, 0x55, 0xc7, 0x89, 0x2a, 0xf4, 0xbe, 0x06, 0xb3, 0xbb, 0xbe, 0xeb, 0x90, - 0x36, 0x5b, 0xac, 0x58, 0x4a, 0x81, 0xa0, 0x18, 0x71, 0x70, 0x01, 0xe1, 0x88, 0xb2, 0x1a, 0xbf, - 0x19, 0x95, 0x48, 0x24, 0x38, 0x58, 0xe1, 0xe7, 0x35, 0x98, 0xc1, 0x8e, 0xc5, 0xc2, 0x50, 0xa0, - 0x14, 0x05, 0x62, 0xf2, 0xc4, 0x72, 0xa4, 0x38, 0xee, 0x72, 0x64, 0xf6, 0x44, 0xcb, 0x91, 0x3b, - 0xb0, 0x18, 0xed, 0x77, 0xf8, 0xae, 0x4b, 0x0c, 0xb3, 0xd5, 0xc2, 0x41, 0x18, 0x21, 0x86, 0xe5, - 0xb7, 0x28, 0xe4, 0x6b, 0xba, 0x2e, 0x69, 0x30, 0xae, 0x94, 0x6b, 0x96, 0x47, 0x73, 0xcd, 0x1b, - 0x50, 0x14, 0x6b, 0x94, 0x5e, 0xcf, 0xb6, 0x94, 0x56, 0x38, 0xc0, 0x19, 0x1e, 0xf4, 0x6c, 0x8b, - 0x46, 0xb9, 0x68, 0x23, 0x92, 0x6b, 0x44, 0x65, 0x9f, 0xad, 0x14, 0xee, 0x43, 0x72, 0x75, 0xdc, - 0x80, 0xd9, 0x50, 0x08, 0x4b, 0xb6, 0xcf, 0x1c, 0x9b, 0x6c, 0x17, 0x05, 0xbd, 0x48, 0xd5, 0x93, - 0x55, 0x8f, 0x68, 0xb4, 0xaa, 0xc7, 0xd4, 0x22, 0x61, 0x61, 0x9c, 0x45, 0xc2, 0xe2, 0x48, 0x8b, - 0x84, 0xdb, 0x30, 0x67, 0x5a, 0x16, 0x33, 0x0b, 0xb3, 0x63, 0xd8, 0xce, 0xae, 0x2b, 0xd6, 0x37, - 0xc7, 0xac, 0xea, 0x62, 0xa6, 0x2d, 0x67, 0xd7, 0x0d, 0x33, 0x9a, 0x8a, 0x6a, 0x46, 0xf3, 0x32, - 0x4c, 0x5a, 0x78, 0xa7, 0xd7, 0x1e, 0xb8, 0xa4, 0x49, 0x54, 0xbc, 0x30, 0xc2, 0xa8, 0x26, 0xb9, - 0xaa, 0x5c, 0x93, 0x9c, 0x55, 0x33, 0x74, 0x76, 0xfc, 0x0a, 0xc7, 0xda, 0xf8, 0x15, 0x8e, 0x2b, - 0xa7, 0x51, 0xe1, 0xb8, 0x7a, 0xba, 0x15, 0x8e, 0xe7, 0xc6, 0xaa, 0x70, 0x8c, 0x83, 0xeb, 0x79, - 0xf5, 0xe0, 0xfa, 0x5b, 0x85, 0xb8, 0x46, 0x7a, 0xc4, 0xc2, 0xaa, 0xa5, 0x28, 0xb8, 0x89, 0x1a, - 0x25, 0x1e, 0xbe, 0xce, 0x49, 0xe1, 0x8b, 0x9f, 0x21, 0x26, 0x02, 0x54, 0x25, 0x9a, 0x72, 0xf9, - 0x41, 0x76, 0x38, 0xa9, 0x9e, 0x93, 0x7c, 0x97, 0x97, 0x17, 0x24, 0xbc, 0xf3, 0x42, 0x2a, 0xce, - 0xf0, 0x02, 0x73, 0x29, 0x92, 0x0c, 0x48, 0x73, 0xa6, 0x4e, 0x96, 0xe6, 0x44, 0x97, 0x17, 0xa6, - 0xb3, 0x2f, 0x2f, 0xcc, 0xf4, 0x5d, 0x5e, 0xc0, 0xa6, 0xdf, 0xda, 0x33, 0x1e, 0xb9, 0xbe, 0xa5, - 0xb6, 0x18, 0xe1, 0x0c, 0xef, 0xbb, 0xbe, 0x85, 0x5e, 0x87, 0xe9, 0xc0, 0xf5, 0x09, 0xdb, 0x91, - 0x51, 0x89, 0x44, 0x53, 0x94, 0xfa, 0x1d, 0x7c, 0x88, 0xae, 0xc0, 0x94, 0x8f, 0xa9, 0x72, 0xc3, - 0x63, 0x9f, 0x61, 0x5e, 0x1c, 0x92, 0xd2, 0xbe, 0x71, 0x43, 0x29, 0xf1, 0x81, 0x63, 0x3f, 0xfa, - 0x22, 0xb1, 0x4a, 0xfc, 0x90, 0x22, 0xf1, 0x75, 0x28, 0x3e, 0xb2, 0xc9, 0x9e, 0x61, 0x61, 0x62, - 0xda, 0x1d, 0x11, 0x41, 0x86, 0xee, 0xd1, 0x50, 0xf2, 0x5b, 0x8c, 0x9a, 0xb5, 0xce, 0xe6, 0x53, - 0xcb, 0xb0, 0x4c, 0x82, 0x95, 0xb6, 0xc7, 0xc4, 0x84, 0x6d, 0xdd, 0x32, 0x09, 0x46, 0x2f, 0xc0, - 0x9c, 0x65, 0x07, 0x5e, 0xc7, 0x3c, 0x34, 0x5a, 0x6e, 0xa7, 0xd7, 0x75, 0x82, 0xea, 0x19, 0xd6, - 0xbd, 0xb2, 0x78, 0xbc, 0xc9, 0x9f, 0x46, 0x97, 0x41, 0x50, 0x7c, 0x19, 0x44, 0xff, 0x0e, 0x54, - 0xfb, 0xbd, 0x40, 0xf5, 0xaa, 0xc0, 0x15, 0x08, 0xd5, 0x90, 0xa8, 0xe0, 0xce, 0xac, 0xfc, 0x0e, - 0xfd, 0x69, 0x1b, 0x13, 0xfd, 0x17, 0x79, 0xa8, 0x85, 0x6d, 0x36, 0x3c, 0x2f, 0xed, 0x7c, 0x4b, - 0x89, 0x3b, 0x03, 0x09, 0xef, 0x8a, 0xdd, 0x27, 0x27, 0xb9, 0x4f, 0x64, 0xae, 0xf9, 0x6c, 0x73, - 0x9d, 0x18, 0x66, 0xae, 0x93, 0x63, 0x98, 0x6b, 0xe1, 0x84, 0xe6, 0x3a, 0x75, 0x02, 0x73, 0x9d, - 0x4e, 0x9a, 0x6b, 0xca, 0xda, 0x66, 0xc6, 0xb2, 0x36, 0x38, 0x05, 0x6b, 0x2b, 0x66, 0x59, 0x9b, - 0x4e, 0x60, 0x25, 0x73, 0x94, 0x1f, 0xaf, 0x71, 0xfd, 0x38, 0x1f, 0x37, 0xfb, 0xe4, 0x6a, 0x70, - 0x62, 0xe3, 0xcc, 0x67, 0x1b, 0xe7, 0x44, 0xb6, 0x71, 0x4e, 0x0e, 0x33, 0xce, 0xc2, 0x18, 0xc6, - 0x39, 0x75, 0x42, 0xe3, 0x9c, 0x3e, 0x81, 0x71, 0xce, 0x24, 0x8d, 0x33, 0xc3, 0x3c, 0x20, 0xd3, - 0x3c, 0x3e, 0xd6, 0x60, 0x35, 0x7b, 0xa0, 0x54, 0x0d, 0x64, 0xfc, 0x4b, 0x24, 0xfa, 0xaf, 0xc3, - 0xc2, 0x36, 0x71, 0xbd, 0xc7, 0x52, 0x58, 0xad, 0xdf, 0x81, 0x45, 0x59, 0xf8, 0x58, 0x15, 0xd0, - 0x1f, 0x52, 0x69, 0xa6, 0x4f, 0x1e, 0x0f, 0xd6, 0xbb, 0xb0, 0x94, 0x92, 0x3e, 0x16, 0xd8, 0x6f, - 0x42, 0xa5, 0x89, 0x5b, 0xee, 0x01, 0xf6, 0x1f, 0x0f, 0xdc, 0xf7, 0x60, 0xb9, 0x4f, 0xfe, 0x58, - 0x80, 0x7f, 0xa6, 0xc1, 0xe2, 0x26, 0x36, 0x83, 0x5f, 0xa6, 0x1a, 0xfb, 0xbb, 0xb0, 0x94, 0x82, - 0x3c, 0x96, 0x0a, 0xce, 0xc1, 0xca, 0xdb, 0x38, 0x34, 0x00, 0xba, 0x2c, 0xb5, 0x03, 0x62, 0xb7, - 0x42, 0x45, 0xe8, 0x5f, 0x4c, 0xc0, 0x6a, 0xf6, 0x7b, 0xd1, 0x6a, 0x00, 0x4b, 0x1d, 0x33, 0x20, - 0x06, 0x79, 0xe4, 0x1a, 0x8f, 0x30, 0xde, 0x37, 0x44, 0xd4, 0x10, 0x57, 0x25, 0xde, 0x4a, 0xfa, - 0xe4, 0x30, 0x41, 0xeb, 0x77, 0xcc, 0x80, 0xdc, 0x7f, 0xe4, 0xbe, 0x8f, 0xf1, 0x3e, 0xbf, 0xf7, - 0x66, 0xdd, 0x76, 0x88, 0x7f, 0xd8, 0x44, 0x9d, 0xbe, 0x17, 0x68, 0x17, 0xe6, 0x89, 0xeb, 0x19, - 0x04, 0x3b, 0x86, 0x48, 0x99, 0x03, 0x31, 0x07, 0xbc, 0xa9, 0xdc, 0xde, 0x7d, 0xd7, 0xbb, 0x8f, - 0x9d, 0xa6, 0x60, 0xe7, 0x6d, 0x95, 0x89, 0xf4, 0x10, 0x5d, 0x8c, 0x2e, 0x3c, 0x27, 0xaa, 0x59, - 0x4b, 0xcd, 0xd9, 0x68, 0x95, 0x43, 0x27, 0xa4, 0x8b, 0x50, 0x0a, 0x33, 0x79, 0x4e, 0xc4, 0x07, - 0x6d, 0x56, 0x3c, 0xe4, 0x44, 0x1f, 0xc0, 0x6c, 0x88, 0xd8, 0xf4, 0xbc, 0x40, 0xdc, 0x15, 0xbb, - 0x3a, 0x22, 0xda, 0x86, 0xe7, 0x09, 0xa4, 0x40, 0xa2, 0x07, 0xb5, 0xdb, 0xb0, 0x3c, 0x40, 0x79, - 0x68, 0x1e, 0xf2, 0x34, 0x2e, 0xd0, 0x59, 0x74, 0xa6, 0x49, 0xff, 0xa5, 0xf3, 0xf7, 0x01, 0xb5, - 0xb8, 0xf0, 0x92, 0x32, 0xfb, 0x71, 0x2d, 0x77, 0x55, 0xab, 0x35, 0x60, 0x21, 0x43, 0x27, 0x23, - 0x89, 0xb8, 0x01, 0x73, 0x29, 0xa0, 0xa3, 0xb0, 0xeb, 0xff, 0x9d, 0x87, 0xa9, 0x77, 0xf8, 0xf9, - 0x19, 0x7a, 0x53, 0x3e, 0x5d, 0x53, 0x0a, 0xd9, 0xf1, 0xd9, 0xdb, 0x93, 0xdf, 0xfa, 0x4c, 0x9c, - 0x31, 0x4f, 0x8c, 0x70, 0xc6, 0x2c, 0x6f, 0x61, 0x4d, 0x8e, 0xb6, 0x85, 0x95, 0xda, 0xc2, 0x29, - 0x8c, 0xb3, 0x85, 0x33, 0x35, 0xd2, 0x16, 0x4e, 0x22, 0x25, 0x9a, 0x96, 0x52, 0xa2, 0xcb, 0x71, - 0x7a, 0xa0, 0xbc, 0x26, 0xff, 0x27, 0x2d, 0xbc, 0x47, 0x2c, 0x06, 0x3f, 0x9c, 0x85, 0xc3, 0x51, - 0xd4, 0x4e, 0x3a, 0x8a, 0xb9, 0x31, 0x46, 0x31, 0xaf, 0x3e, 0x8a, 0xfa, 0x83, 0xf0, 0xae, 0x6e, - 0xd4, 0x01, 0x31, 0x3b, 0x8e, 0x65, 0xc5, 0xfa, 0xdf, 0xe5, 0xe3, 0xcd, 0x0a, 0x21, 0x39, 0x8a, - 0x50, 0xff, 0x47, 0xfc, 0x63, 0x31, 0x3e, 0x40, 0x49, 0xa4, 0x9b, 0x63, 0xa6, 0xcc, 0x51, 0x7e, - 0x3e, 0x95, 0x9d, 0x9f, 0x4f, 0x4b, 0xf9, 0x79, 0x46, 0x6e, 0x3b, 0x93, 0x99, 0xdb, 0xfa, 0xf1, - 0xa2, 0x3a, 0x1e, 0x2d, 0xd5, 0xb4, 0xf6, 0x35, 0x98, 0x8d, 0xc6, 0x73, 0xc0, 0xc2, 0x27, 0x34, - 0x2e, 0x10, 0xe3, 0x48, 0x53, 0xd9, 0xd7, 0xc3, 0x5b, 0x82, 0x69, 0xfb, 0x38, 0x9f, 0xb6, 0x0f, - 0xb9, 0x3a, 0x41, 0xbf, 0x1a, 0x5e, 0xd5, 0xeb, 0x83, 0x7a, 0x1c, 0xe7, 0x3d, 0x58, 0x6a, 0x10, - 0x62, 0xb6, 0xf6, 0x46, 0x6c, 0x72, 0xe0, 0x3a, 0x4a, 0xdf, 0x80, 0x4a, 0x5a, 0xa2, 0xc0, 0x12, - 0x27, 0x2d, 0x5a, 0x32, 0x69, 0xb9, 0x47, 0x7b, 0x7d, 0xda, 0x10, 0xd2, 0x12, 0x87, 0x43, 0xf8, - 0x58, 0x83, 0x22, 0x5d, 0x4f, 0x84, 0xf1, 0xea, 0x84, 0x45, 0x85, 0x29, 0x37, 0xce, 0x8d, 0x36, - 0x41, 0x3c, 0x60, 0x77, 0x7e, 0x12, 0x30, 0x12, 0x0b, 0xde, 0x12, 0x83, 0x13, 0x0a, 0xcf, 0xba, - 0xb9, 0x9a, 0xe0, 0x6b, 0x16, 0x9d, 0xf8, 0x87, 0x7e, 0x96, 0x5d, 0xae, 0x91, 0xc5, 0x72, 0x6d, - 0xe8, 0xdf, 0x08, 0x6f, 0xba, 0x9c, 0x7a, 0xa3, 0xab, 0xe1, 0x45, 0x95, 0xac, 0x76, 0x2f, 0xff, - 0xf9, 0x57, 0xa0, 0x2c, 0xb2, 0xa3, 0xbb, 0xa6, 0x63, 0xb6, 0xb1, 0x8f, 0x3e, 0x80, 0xb9, 0x14, - 0x4a, 0xa4, 0x27, 0x5b, 0xca, 0xd6, 0x4c, 0xed, 0xe2, 0x50, 0x1a, 0x31, 0xe8, 0x2d, 0x40, 0xfd, - 0x60, 0xd0, 0x73, 0x49, 0xd6, 0x81, 0x6a, 0xa8, 0x3d, 0x7f, 0x1c, 0x99, 0x68, 0xe4, 0xfb, 0x1a, - 0x94, 0xa4, 0xb0, 0x81, 0xea, 0xd2, 0x0a, 0x36, 0x23, 0x24, 0xd6, 0x2e, 0x0c, 0xa1, 0x10, 0x43, - 0xf4, 0xda, 0x51, 0xe3, 0x0c, 0x9a, 0xe3, 0xef, 0xea, 0xfb, 0xf8, 0xb0, 0x4e, 0x87, 0xe2, 0xe3, - 0x7f, 0xff, 0xc5, 0x1f, 0xe4, 0x56, 0xf4, 0xca, 0xc6, 0xc1, 0x2b, 0x1b, 0x22, 0x7b, 0x0d, 0x36, - 0xc2, 0x71, 0x0a, 0xae, 0x69, 0x2f, 0xa2, 0x2f, 0x34, 0x98, 0x4f, 0x4f, 0x5f, 0xe8, 0xa2, 0xdc, - 0x95, 0xcc, 0x50, 0x54, 0x7b, 0x76, 0x38, 0x91, 0x80, 0xf5, 0x3d, 0xed, 0xa8, 0x61, 0xa3, 0xf6, - 0xdb, 0x98, 0x44, 0xa0, 0x82, 0xb5, 0xba, 0xa8, 0x10, 0xae, 0xef, 0xda, 0x1d, 0x82, 0xfd, 0xfa, - 0x23, 0x9b, 0xec, 0xd5, 0xc9, 0x1e, 0x0e, 0x70, 0x7d, 0xd7, 0xc6, 0x1d, 0x2b, 0xb8, 0x94, 0xf0, - 0x8e, 0xb5, 0x3a, 0x8d, 0x44, 0x6b, 0x75, 0x16, 0x03, 0xfe, 0xdf, 0x5a, 0xdd, 0xc2, 0xbb, 0x66, - 0xaf, 0x43, 0xea, 0x3e, 0x26, 0x3d, 0xdf, 0xa9, 0x9b, 0x9d, 0x4e, 0x2c, 0x99, 0xf5, 0xb7, 0x8a, - 0x06, 0xf4, 0x17, 0xfd, 0xa1, 0x06, 0x65, 0x79, 0xfa, 0x43, 0x17, 0xfa, 0x47, 0x2d, 0xdd, 0x51, - 0x7d, 0x18, 0x89, 0xe8, 0xe6, 0x9b, 0x47, 0x8d, 0x2a, 0xaa, 0xdc, 0x34, 0x49, 0x6b, 0xaf, 0xce, - 0x8b, 0xea, 0x53, 0xa0, 0x56, 0x5e, 0x1c, 0x32, 0x08, 0x7f, 0xa5, 0x41, 0x59, 0x9e, 0x0a, 0x65, - 0x5c, 0x99, 0x13, 0xaf, 0x8c, 0x2b, 0x7b, 0x26, 0xd5, 0x7f, 0xf5, 0xa8, 0x51, 0x47, 0xe7, 0x39, - 0x2e, 0x93, 0x91, 0xc4, 0xb8, 0xea, 0xc4, 0xad, 0x53, 0x57, 0x64, 0xf8, 0x2e, 0xe8, 0xab, 0x99, - 0xf8, 0x36, 0x38, 0x17, 0x45, 0xf9, 0xd7, 0x4c, 0x7b, 0x83, 0x51, 0x66, 0xce, 0xcd, 0x69, 0xed, - 0x65, 0xa2, 0xbc, 0x73, 0xd4, 0xd0, 0x51, 0x3d, 0xd4, 0x5e, 0x0a, 0xe5, 0xae, 0xef, 0x76, 0x15, - 0x70, 0x72, 0x3e, 0x8a, 0xf3, 0x77, 0x34, 0x98, 0x4b, 0x7d, 0x10, 0x07, 0xe9, 0x59, 0xc6, 0x2a, - 0x7f, 0x05, 0xaa, 0x76, 0x71, 0x28, 0x8d, 0x80, 0xba, 0x76, 0xd4, 0x28, 0xa1, 0x22, 0x35, 0x67, - 0x5e, 0x51, 0xc0, 0x47, 0xb7, 0x82, 0x16, 0x25, 0x54, 0xe2, 0x1d, 0xfa, 0xed, 0xc8, 0xd7, 0xc3, - 0xd2, 0x8e, 0x0c, 0x5f, 0x97, 0x6f, 0xc0, 0x66, 0xf9, 0x7a, 0xea, 0x9e, 0xa9, 0xfe, 0xca, 0x51, - 0x63, 0x1e, 0x95, 0x85, 0xaf, 0x8b, 0x46, 0xb9, 0xe9, 0xeb, 0x0b, 0x12, 0x0e, 0x9e, 0xf8, 0x53, - 0xa5, 0xfc, 0x48, 0x03, 0xc4, 0x19, 0x6e, 0xe1, 0x9d, 0x5e, 0xfb, 0x54, 0xe1, 0xdc, 0x38, 0x6a, - 0x54, 0x90, 0xc8, 0xe5, 0xeb, 0xec, 0x0c, 0x55, 0x02, 0x75, 0x5e, 0x3f, 0x4b, 0x41, 0xb1, 0x17, - 0x46, 0x06, 0xb4, 0xfb, 0x50, 0x92, 0x3e, 0xf7, 0x20, 0x83, 0xca, 0xfa, 0x02, 0x8d, 0x0c, 0x2a, - 0xfb, 0x7b, 0x27, 0xdf, 0x82, 0x33, 0x7d, 0x1f, 0x91, 0x40, 0xcf, 0x0e, 0xe4, 0x4b, 0x7c, 0xd1, - 0xa4, 0xf6, 0xdc, 0x31, 0x54, 0xa2, 0x85, 0x9f, 0x6a, 0xb0, 0x3c, 0xe0, 0xbb, 0x1c, 0xe8, 0xc5, - 0x81, 0x22, 0xfa, 0xbe, 0xab, 0x51, 0xfb, 0x8a, 0x12, 0x6d, 0x3c, 0xd1, 0xac, 0x20, 0xf1, 0xd1, - 0x94, 0x50, 0xcb, 0xd4, 0xb3, 0x05, 0x5d, 0xa6, 0x15, 0x74, 0x19, 0x35, 0x55, 0xf5, 0xbf, 0x6a, - 0xb0, 0x32, 0xe4, 0xd3, 0x1a, 0x68, 0x7d, 0x68, 0xcf, 0xfb, 0xa1, 0x6f, 0x28, 0xd3, 0x0b, 0xf8, - 0xef, 0x1e, 0x35, 0x5e, 0x40, 0xcf, 0x09, 0xf8, 0xd4, 0xa9, 0x13, 0xd8, 0xeb, 0xb6, 0x43, 0x83, - 0x40, 0x96, 0xed, 0xa4, 0xba, 0xc2, 0xb6, 0x80, 0xd9, 0xcc, 0xf9, 0x3e, 0x2c, 0x66, 0x7d, 0xcc, - 0x03, 0xbd, 0x90, 0x0a, 0xf7, 0x83, 0xbe, 0xc4, 0x51, 0xab, 0xf4, 0x25, 0x5d, 0xb7, 0xbb, 0x1e, - 0x39, 0x44, 0xbf, 0x41, 0xd7, 0x60, 0x99, 0xdf, 0xf0, 0x90, 0xc7, 0x76, 0xf8, 0x87, 0x3e, 0x06, - 0x8a, 0xff, 0x61, 0x14, 0x89, 0xc2, 0x0d, 0xbd, 0xac, 0x48, 0x94, 0xda, 0x9f, 0xcc, 0x8a, 0x44, - 0xe9, 0xfd, 0x40, 0xfd, 0xea, 0x51, 0x63, 0x19, 0x2d, 0x49, 0x91, 0x28, 0xd4, 0x5e, 0xa6, 0x71, - 0x70, 0x1a, 0xaa, 0xcb, 0x1f, 0x68, 0x50, 0x96, 0xbf, 0x44, 0x21, 0x63, 0xca, 0xfc, 0x24, 0x87, - 0x8c, 0x29, 0xfb, 0x43, 0x16, 0xfa, 0xab, 0x2c, 0x37, 0x11, 0x2f, 0xa5, 0xf1, 0x3d, 0xab, 0xcb, - 0x13, 0xa7, 0xa8, 0x73, 0xa1, 0x70, 0x7e, 0xa8, 0xc1, 0x5c, 0xea, 0x6b, 0x10, 0xf2, 0x34, 0x9e, - 0xfd, 0xa5, 0x0a, 0x79, 0x1a, 0x1f, 0xf0, 0x39, 0x09, 0x9a, 0x2d, 0x21, 0x34, 0x1f, 0xbe, 0x95, - 0x20, 0xd5, 0xf4, 0x25, 0x09, 0x92, 0x2f, 0x88, 0x28, 0x26, 0x3a, 0x9f, 0x4b, 0x57, 0xff, 0xe5, - 0xb9, 0x2a, 0xeb, 0x8b, 0x06, 0xf2, 0x5c, 0x95, 0xf9, 0xdd, 0x00, 0x31, 0x9f, 0xf3, 0x77, 0x43, - 0xe7, 0x73, 0x9f, 0x91, 0x50, 0x24, 0x7f, 0xa6, 0xb1, 0x3c, 0x58, 0x32, 0xcc, 0x74, 0x1e, 0x9c, - 0x65, 0x90, 0x17, 0x87, 0xd2, 0x08, 0x3c, 0x6f, 0x1d, 0x35, 0x56, 0x51, 0x4d, 0x64, 0x0d, 0x96, - 0xc5, 0x1c, 0x95, 0xa5, 0x0b, 0x49, 0x6c, 0xe9, 0xb4, 0xd2, 0xb4, 0xac, 0xd8, 0x2f, 0x3f, 0xd1, - 0xc2, 0x54, 0x5a, 0x42, 0xf8, 0xdc, 0x40, 0x03, 0x96, 0x40, 0x3e, 0x7f, 0x1c, 0x99, 0xc0, 0xf9, - 0xf5, 0xa3, 0xc6, 0x05, 0xf4, 0x8c, 0x64, 0xeb, 0x1c, 0x2a, 0xcb, 0x19, 0x86, 0xcd, 0x23, 0xe2, - 0xd6, 0x64, 0x84, 0xf7, 0x4f, 0x35, 0x98, 0x4f, 0xdf, 0xf7, 0x96, 0xd3, 0xe0, 0x01, 0xb7, 0xd7, - 0xe5, 0x34, 0x78, 0xd0, 0x95, 0x71, 0x3a, 0x6d, 0x2f, 0xa3, 0x25, 0xfe, 0xba, 0x8e, 0x9d, 0x83, - 0xba, 0xbb, 0x2b, 0xe1, 0x5b, 0xbd, 0xbc, 0x9c, 0xf2, 0x03, 0x4a, 0x69, 0x60, 0xe7, 0x80, 0xa2, - 0xfb, 0xe3, 0x5c, 0x9c, 0xa4, 0x47, 0xf3, 0x45, 0x66, 0xba, 0x92, 0x9e, 0x31, 0x9e, 0x1d, 0x4e, - 0x24, 0xd0, 0x7d, 0xa6, 0x1d, 0x35, 0xfe, 0x52, 0x43, 0x7f, 0xa1, 0xd1, 0xbc, 0x26, 0xc4, 0xb0, - 0x56, 0x6f, 0x99, 0xce, 0xe0, 0x0c, 0x3d, 0x3e, 0x74, 0x58, 0xab, 0xf3, 0x23, 0xfc, 0xb5, 0x7a, - 0x5c, 0x11, 0xb3, 0x56, 0xe7, 0xdb, 0x86, 0x6b, 0xf5, 0xb8, 0xdc, 0x65, 0xad, 0x9e, 0xac, 0x6d, - 0x11, 0x09, 0xfd, 0x5a, 0x3d, 0x59, 0x8d, 0x91, 0x9d, 0xde, 0x4b, 0xf3, 0x57, 0x19, 0xcd, 0x26, - 0x35, 0x85, 0x7e, 0x9a, 0x83, 0xa5, 0xb0, 0x63, 0xc9, 0xd4, 0xe6, 0x54, 0x15, 0xf4, 0x2f, 0xda, - 0x51, 0xe3, 0x13, 0x0d, 0xfd, 0x2d, 0x53, 0x90, 0x94, 0xe1, 0x7c, 0x89, 0xd4, 0x24, 0xe3, 0x62, - 0xca, 0x5a, 0x44, 0xa8, 0x3f, 0xf5, 0x42, 0x7f, 0x9f, 0x83, 0x85, 0x8c, 0xd3, 0x7a, 0xf4, 0x7c, - 0x96, 0x2e, 0xfa, 0x8b, 0x36, 0x6a, 0x2f, 0x1c, 0x4b, 0x27, 0xd4, 0xf6, 0x73, 0xed, 0xa8, 0xf1, - 0x37, 0x1a, 0xfa, 0x31, 0x53, 0x9b, 0xe9, 0x79, 0x5f, 0x42, 0xa5, 0x25, 0x51, 0x31, 0x95, 0x2d, - 0xa0, 0x33, 0xf2, 0xb4, 0xe6, 0x79, 0x01, 0xfa, 0x79, 0x2e, 0xde, 0xe4, 0x63, 0x46, 0xf6, 0x58, - 0xd5, 0xf6, 0x1f, 0xda, 0x51, 0xe3, 0x1f, 0x34, 0xf4, 0x69, 0xc2, 0xda, 0xbe, 0x9c, 0xca, 0xeb, - 0xc7, 0xc6, 0x83, 0x3a, 0x5a, 0xce, 0x48, 0xf8, 0x99, 0x22, 0xff, 0x53, 0x83, 0xc5, 0xac, 0x42, - 0x00, 0xf4, 0xc2, 0x10, 0x3f, 0x94, 0x62, 0xc3, 0xa5, 0xe3, 0x09, 0x85, 0x1a, 0x7b, 0x47, 0x8d, - 0x6f, 0xa0, 0x87, 0x54, 0x87, 0x3c, 0x28, 0xd8, 0x4e, 0x08, 0x73, 0x04, 0x0d, 0x8a, 0xdd, 0xbd, - 0x58, 0x6d, 0x7c, 0x1b, 0x22, 0xe9, 0x5d, 0x51, 0x0f, 0x59, 0x33, 0x34, 0x47, 0x98, 0x4d, 0x96, - 0x02, 0x20, 0xa9, 0xd2, 0x31, 0xa3, 0x02, 0xa1, 0x56, 0x1f, 0x4c, 0x20, 0xba, 0x72, 0xe5, 0xa8, - 0xb1, 0x84, 0x16, 0x78, 0xa0, 0x0b, 0x88, 0x9b, 0xd2, 0x77, 0x45, 0x97, 0x4d, 0x96, 0x52, 0x88, - 0x84, 0xae, 0x24, 0x1d, 0xf4, 0xa3, 0x54, 0x4b, 0xfd, 0x15, 0x06, 0x72, 0xb6, 0x92, 0x59, 0x25, - 0xa0, 0x7f, 0x95, 0x2d, 0xf7, 0x42, 0x30, 0xa6, 0x4f, 0x64, 0x34, 0xcb, 0x3a, 0x4a, 0xa1, 0x31, - 0x7d, 0x42, 0xe1, 0xfc, 0x11, 0x4d, 0xe8, 0xe4, 0x83, 0xfc, 0x54, 0x42, 0x97, 0x59, 0x45, 0x90, - 0x4a, 0xe8, 0xb2, 0x2b, 0x01, 0xf4, 0x6b, 0x89, 0x0d, 0x18, 0x9f, 0xd3, 0xa4, 0x8c, 0x32, 0x95, - 0x69, 0x0a, 0xa2, 0x50, 0x4f, 0xd2, 0xe1, 0x7a, 0x6a, 0x59, 0x9c, 0x51, 0x2a, 0x90, 0x5a, 0x16, - 0x67, 0x9d, 0xcc, 0x4b, 0x7a, 0x6a, 0x51, 0x8a, 0xe1, 0x7a, 0x62, 0x24, 0x14, 0xce, 0x4f, 0x34, - 0x58, 0xcc, 0x3a, 0x15, 0x96, 0x7d, 0x64, 0xc8, 0xf1, 0xbd, 0xec, 0x23, 0xc3, 0x0e, 0x98, 0xe9, - 0xd2, 0x7d, 0x05, 0x9d, 0x65, 0xdb, 0x19, 0xd1, 0xcb, 0x74, 0x6e, 0x22, 0xdc, 0x39, 0x39, 0xa0, - 0x82, 0xf2, 0xe6, 0xc4, 0x07, 0x39, 0x6f, 0x67, 0xa7, 0xc0, 0x16, 0x37, 0xaf, 0xfe, 0x6f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x5e, 0x7b, 0x1e, 0x4e, 0x27, 0x5c, 0x00, 0x00, + // 4827 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0x5d, 0x6c, 0x1c, 0xd7, + 0x75, 0xc6, 0xec, 0x92, 0x4b, 0xf2, 0x2c, 0x77, 0x49, 0x5d, 0x92, 0xcb, 0xd5, 0x92, 0x92, 0x57, + 0x23, 0xff, 0xa8, 0x0e, 0x4d, 0xda, 0xb2, 0x1c, 0xcb, 0x92, 0xd5, 0x78, 0x45, 0xa9, 0x0e, 0x6b, + 0xc9, 0x16, 0x96, 0x92, 0x9c, 0xba, 0x6e, 0x26, 0xc3, 0x9d, 0xcb, 0xe5, 0x84, 0xbb, 0x33, 0x93, + 0x99, 0xbb, 0x54, 0x68, 0xf4, 0xc9, 0x28, 0xd0, 0x36, 0x49, 0x0b, 0x84, 0x45, 0x8b, 0xf4, 0x17, + 0x28, 0x8a, 0x06, 0x69, 0x51, 0xa3, 0x89, 0x81, 0x02, 0x35, 0xfa, 0xd0, 0xa7, 0xe6, 0xa5, 0x40, + 0x5b, 0xa0, 0x2f, 0x45, 0x9e, 0xfa, 0x90, 0xa7, 0xf4, 0xb5, 0x6f, 0x7d, 0x29, 0xee, 0xcf, 0xfc, + 0xdc, 0xd9, 0xd9, 0xe5, 0x5d, 0x2e, 0x25, 0x39, 0xc8, 0x13, 0xb9, 0x33, 0xe7, 0x9c, 0xfb, 0xcd, + 0xb9, 0xe7, 0xef, 0xde, 0x7b, 0x66, 0xa0, 0xd4, 0xea, 0xf4, 0x02, 0x82, 0xfd, 0x75, 0xcf, 0x77, + 0x89, 0x8b, 0xc0, 0xf5, 0xb0, 0xe3, 0xd9, 0xc4, 0xb7, 0xbf, 0x59, 0x5b, 0x69, 0xbb, 0x6e, 0xbb, + 0x83, 0x37, 0xd8, 0x9d, 0x9d, 0xde, 0xee, 0x06, 0xee, 0x7a, 0xe4, 0x90, 0x13, 0xd6, 0xce, 0xa7, + 0x6f, 0x3e, 0xf2, 0x4d, 0xcf, 0xc3, 0x7e, 0x20, 0xee, 0x3f, 0x93, 0xbe, 0x4f, 0xec, 0x2e, 0x0e, + 0x88, 0xd9, 0xf5, 0x04, 0xc1, 0xaa, 0x20, 0x30, 0x3d, 0x7b, 0xc3, 0x74, 0x1c, 0x97, 0x98, 0xc4, + 0x76, 0x9d, 0x90, 0x7d, 0x8d, 0xfd, 0x69, 0xbd, 0xd4, 0xc6, 0xce, 0x4b, 0xc1, 0x23, 0xb3, 0xdd, + 0xc6, 0xfe, 0x86, 0xeb, 0x31, 0x8a, 0x7e, 0x6a, 0xfd, 0x4f, 0x72, 0x50, 0xb9, 0x85, 0x83, 0x96, + 0x6f, 0xef, 0xe0, 0xed, 0xde, 0x8e, 0x83, 0x49, 0xd0, 0xc4, 0xdf, 0xe8, 0xe1, 0x80, 0xa0, 0xeb, + 0x00, 0x7e, 0xcf, 0xa1, 0x83, 0x1b, 0xb6, 0x55, 0xd5, 0xea, 0xda, 0xa5, 0xe2, 0xe5, 0xd5, 0x75, + 0x3e, 0xf6, 0x7a, 0x08, 0x6e, 0x7d, 0x9b, 0xf8, 0xb6, 0xd3, 0x7e, 0x68, 0x76, 0x7a, 0xb8, 0x39, + 0x23, 0xe8, 0xb7, 0x2c, 0xb4, 0x08, 0x93, 0x1d, 0xbb, 0x6b, 0x93, 0x6a, 0xae, 0xae, 0x5d, 0x2a, + 0x35, 0xf9, 0x0f, 0x54, 0x81, 0x82, 0xbb, 0xbb, 0x1b, 0x60, 0x52, 0xcd, 0xb3, 0xcb, 0xe2, 0x17, + 0xba, 0x01, 0xc5, 0x80, 0x0d, 0x6e, 0x90, 0x43, 0x0f, 0x57, 0x27, 0x06, 0x8c, 0xf5, 0x60, 0xcb, + 0x21, 0xaf, 0x5e, 0xe6, 0x63, 0x01, 0x67, 0xb8, 0x7f, 0xe8, 0x61, 0xb4, 0x02, 0x33, 0x82, 0xdd, + 0xb6, 0xaa, 0x93, 0xf5, 0xfc, 0xa5, 0x99, 0xe6, 0x34, 0xbf, 0xb0, 0x65, 0x21, 0x04, 0x13, 0x1f, + 0xb9, 0x0e, 0xae, 0x16, 0xd8, 0x75, 0xf6, 0x3f, 0x7a, 0x0e, 0xca, 0xa6, 0x75, 0x60, 0x3a, 0x2d, + 0x6c, 0x19, 0x9e, 0xe9, 0x9b, 0xdd, 0xea, 0x14, 0xbb, 0x5b, 0x0a, 0xaf, 0xde, 0xa3, 0x17, 0xf5, + 0xcf, 0xf2, 0x50, 0xe0, 0x4a, 0x41, 0x6f, 0x24, 0x87, 0x50, 0xd1, 0x45, 0x0c, 0xe0, 0x65, 0x98, + 0x70, 0xcc, 0x2e, 0x66, 0x9a, 0x38, 0x8e, 0x8b, 0x51, 0x52, 0x0e, 0x06, 0x39, 0xaf, 0xc2, 0xc1, + 0x1e, 0xe8, 0x3a, 0x14, 0x5b, 0x3e, 0x36, 0x09, 0x36, 0xa8, 0xfe, 0x85, 0x02, 0x6b, 0x7d, 0x8c, + 0xf7, 0x43, 0x4b, 0x6a, 0x02, 0x27, 0xa7, 0x17, 0xd0, 0x2f, 0x43, 0xd1, 0x62, 0x26, 0xc0, 0xac, + 0xa4, 0x3a, 0xa9, 0x30, 0x6a, 0x92, 0x01, 0x3d, 0x03, 0x45, 0xdb, 0x09, 0x08, 0x55, 0x1c, 0xd5, + 0x0e, 0x57, 0x34, 0x84, 0x97, 0xb6, 0x2c, 0xf4, 0x2a, 0x14, 0x0e, 0xbc, 0x16, 0xbd, 0x37, 0xa5, + 0x20, 0x7b, 0xf2, 0xc0, 0x6b, 0x6d, 0x59, 0x69, 0x9b, 0x98, 0x1e, 0xcd, 0x26, 0xf4, 0x2e, 0x2c, + 0xf7, 0xd9, 0x75, 0xe0, 0xb9, 0x4e, 0x80, 0x29, 0x5e, 0xe2, 0x12, 0xb3, 0x63, 0xb4, 0xdc, 0x9e, + 0x43, 0xd8, 0x6c, 0x96, 0x9a, 0xc0, 0x2e, 0x6d, 0xd2, 0x2b, 0xe8, 0x15, 0x10, 0x92, 0x0c, 0x6a, + 0xaa, 0xb9, 0x7a, 0xfe, 0x52, 0xf1, 0x32, 0x5a, 0x8f, 0xfd, 0x7b, 0x9d, 0x4b, 0x6c, 0x0a, 0x93, + 0xd8, 0xc6, 0x44, 0xff, 0x8f, 0x1c, 0x2c, 0x6e, 0x32, 0x95, 0x6e, 0xf2, 0xa8, 0x10, 0x7a, 0xd1, + 0xab, 0x50, 0x30, 0x3d, 0x4f, 0xd5, 0x6a, 0x26, 0x4d, 0xcf, 0xdb, 0xb2, 0xa8, 0xeb, 0x1d, 0x60, + 0x3f, 0xb0, 0x5d, 0x87, 0x32, 0xaa, 0x18, 0xce, 0x8c, 0xa0, 0xe7, 0xcc, 0x09, 0xbf, 0xcd, 0x8f, + 0xe6, 0xb7, 0x2f, 0xc3, 0x44, 0xcb, 0x75, 0x76, 0x07, 0xba, 0xa0, 0x64, 0x7a, 0x94, 0x32, 0xc3, + 0x97, 0x26, 0x33, 0x7c, 0x29, 0xb2, 0xe9, 0x82, 0xaa, 0x4d, 0xeb, 0xbf, 0xab, 0xc1, 0x52, 0x4a, + 0xa5, 0x62, 0x02, 0xaf, 0x03, 0x88, 0xd8, 0xab, 0x1c, 0x99, 0x04, 0x3d, 0x37, 0xc6, 0xaf, 0xbb, + 0x3b, 0xaa, 0x7a, 0x9d, 0xfc, 0xba, 0xbb, 0xb3, 0x65, 0xe9, 0x9f, 0xe6, 0x61, 0xf1, 0xae, 0x6b, + 0xd9, 0xbb, 0x87, 0xa9, 0xe9, 0x7d, 0x09, 0xa6, 0x84, 0x68, 0x81, 0x63, 0x21, 0x69, 0x27, 0x21, + 0x71, 0x48, 0x83, 0x1a, 0x30, 0x1f, 0x22, 0x77, 0x5c, 0x0b, 0x27, 0xec, 0x6b, 0x39, 0x83, 0xef, + 0x5d, 0xd7, 0xc2, 0xcd, 0x72, 0x2b, 0xfe, 0xb1, 0x8d, 0x49, 0x52, 0x84, 0xef, 0x76, 0xb8, 0x88, + 0xfc, 0x40, 0x11, 0x4d, 0xb7, 0x13, 0x8b, 0xa0, 0x3f, 0x52, 0x22, 0x3a, 0xb6, 0xb3, 0xcf, 0x44, + 0x4c, 0x0c, 0x14, 0x71, 0xc7, 0x76, 0xf6, 0x23, 0x11, 0xf4, 0x07, 0x15, 0xf1, 0x36, 0xa0, 0x50, + 0x44, 0xcb, 0xed, 0x76, 0x5d, 0x87, 0x09, 0x99, 0x64, 0x42, 0xce, 0x66, 0x08, 0xd9, 0x64, 0x44, + 0xcd, 0x70, 0x5c, 0xfe, 0x93, 0x0a, 0xfa, 0x35, 0xa8, 0x46, 0x58, 0x5c, 0xd3, 0xda, 0x31, 0x3b, + 0xd4, 0x68, 0x7c, 0x26, 0xae, 0xc0, 0xc4, 0x3d, 0x93, 0x85, 0x29, 0x41, 0xda, 0xac, 0xb4, 0xfa, + 0x2f, 0x52, 0x9f, 0xbc, 0x0f, 0x4b, 0xa9, 0x39, 0x3b, 0x05, 0xfb, 0xd1, 0x1f, 0x42, 0x55, 0x92, + 0xca, 0x26, 0x49, 0x58, 0xc3, 0x35, 0x98, 0x4d, 0x4e, 0xaf, 0x10, 0x3d, 0x70, 0x6a, 0x8b, 0x89, + 0xa9, 0xd5, 0x9b, 0x70, 0x36, 0x43, 0xae, 0x40, 0xfc, 0x1a, 0x4c, 0x31, 0x7b, 0x51, 0x84, 0x5b, + 0xa0, 0xc4, 0x5b, 0x96, 0xfe, 0xef, 0x1a, 0x9c, 0x97, 0x84, 0x36, 0x08, 0xf1, 0xed, 0x9d, 0x1e, + 0xc1, 0xc9, 0x2c, 0x7f, 0x72, 0x5f, 0x1a, 0x3d, 0xb5, 0xa5, 0x72, 0x4d, 0x7e, 0xc4, 0x5c, 0xa3, + 0x7f, 0x15, 0x9e, 0x19, 0xf8, 0x40, 0xa7, 0x31, 0xbb, 0xbf, 0xa7, 0x81, 0xde, 0x37, 0x0d, 0xfd, + 0x5a, 0x3b, 0xd9, 0x7c, 0x8c, 0xae, 0x2f, 0xfd, 0x43, 0xb8, 0x38, 0x14, 0xce, 0x78, 0xf6, 0xf1, + 0x35, 0x58, 0x69, 0x58, 0xd6, 0x7d, 0x73, 0xa7, 0x83, 0x13, 0xf2, 0xa3, 0xa7, 0xcc, 0x8a, 0x56, + 0xda, 0x48, 0xd1, 0x4a, 0x7f, 0x03, 0xce, 0xdf, 0xc2, 0x1d, 0x4c, 0xf0, 0xc0, 0x41, 0x96, 0x93, + 0xd0, 0x69, 0xe2, 0x08, 0xc1, 0x7d, 0xaa, 0xc1, 0x12, 0xe7, 0x15, 0x6c, 0x11, 0xcb, 0xb9, 0xd4, + 0x0c, 0x53, 0xae, 0x84, 0x55, 0xf6, 0x67, 0xa4, 0x5c, 0x76, 0x46, 0x9a, 0xdc, 0x75, 0xfd, 0x56, + 0x58, 0x66, 0xf5, 0x57, 0x4b, 0x37, 0x5d, 0xb7, 0x23, 0xb2, 0x00, 0x23, 0x44, 0x17, 0x60, 0xb6, + 0xed, 0x9b, 0x2d, 0x6c, 0x78, 0xd8, 0xb7, 0x5d, 0x8b, 0x25, 0xc9, 0x52, 0xb3, 0xc8, 0xae, 0xdd, + 0x63, 0x97, 0xf4, 0x77, 0x69, 0x39, 0x2d, 0x63, 0x16, 0x53, 0x74, 0x0c, 0xe8, 0xa5, 0x44, 0x5a, + 0xa2, 0xb7, 0x44, 0xe2, 0xf9, 0x47, 0x0d, 0x96, 0x1e, 0x78, 0x6d, 0xdf, 0xb4, 0xd2, 0x85, 0xc5, + 0x58, 0x8e, 0x3b, 0x56, 0x81, 0xd1, 0xaf, 0xdf, 0x7c, 0x56, 0xf5, 0xfc, 0x2d, 0x0d, 0x2a, 0x69, + 0xe8, 0x4f, 0x2d, 0x81, 0xff, 0x26, 0x54, 0x9a, 0x6e, 0xa7, 0xb3, 0x63, 0xb6, 0xf6, 0x4f, 0x53, + 0x8f, 0x6a, 0xa6, 0xa6, 0x7f, 0x5b, 0x83, 0xe5, 0xbe, 0xe1, 0x9f, 0x9a, 0x2e, 0x7e, 0x92, 0x83, + 0x59, 0x56, 0x17, 0xe0, 0xc0, 0xed, 0x51, 0xbb, 0x7e, 0x19, 0x26, 0x68, 0x29, 0xa1, 0x34, 0x38, + 0xa3, 0x44, 0xeb, 0x90, 0x6f, 0x79, 0xbd, 0x81, 0x83, 0x26, 0x8b, 0x72, 0x4a, 0x48, 0xe9, 0xdb, + 0x5e, 0x6f, 0x60, 0xb8, 0x97, 0xe8, 0xdb, 0x5e, 0x0f, 0x5d, 0x81, 0x42, 0x17, 0x77, 0x5d, 0xff, + 0x50, 0x69, 0x2d, 0x28, 0x68, 0x51, 0x03, 0x4a, 0xd1, 0x42, 0x24, 0xb0, 0x3f, 0xc2, 0x03, 0x97, + 0x32, 0x49, 0xe6, 0xd9, 0x90, 0x65, 0xdb, 0xfe, 0x08, 0xa3, 0x2f, 0xc1, 0x6c, 0x40, 0x5c, 0xdf, + 0x6c, 0x0b, 0x09, 0x05, 0x05, 0x09, 0x45, 0xc1, 0x41, 0x05, 0xe8, 0x9f, 0x69, 0xb0, 0xd8, 0xc4, + 0x94, 0xf7, 0x34, 0xed, 0xec, 0x06, 0x94, 0x58, 0xb1, 0xe7, 0x8b, 0x29, 0x13, 0x45, 0x63, 0x35, + 0x19, 0x86, 0x93, 0x53, 0xda, 0x9c, 0xf5, 0x93, 0x13, 0xac, 0x56, 0xa3, 0xb3, 0x8a, 0x3b, 0x85, + 0xfd, 0xa9, 0x19, 0xe9, 0xff, 0x68, 0x50, 0x69, 0x58, 0x56, 0x56, 0xc6, 0x18, 0xb7, 0x64, 0x61, + 0xb6, 0x9e, 0x53, 0xb6, 0xf5, 0xeb, 0x00, 0x2c, 0x41, 0xf1, 0xd5, 0xa2, 0x8a, 0x09, 0xcf, 0x50, + 0x7a, 0xbe, 0x94, 0xec, 0xd7, 0xfc, 0xc4, 0xa0, 0x00, 0xd1, 0xf7, 0xb4, 0x4f, 0x4d, 0xf7, 0xdf, + 0xd3, 0xe0, 0xac, 0x94, 0xc5, 0x4e, 0x4f, 0xfd, 0x89, 0x6c, 0x9f, 0x4b, 0x66, 0x7b, 0xd5, 0xa4, + 0xf2, 0xfb, 0x1a, 0xd4, 0xb2, 0xa0, 0x3d, 0x35, 0x5d, 0x7d, 0xa2, 0xc1, 0xf2, 0x03, 0xcf, 0x8a, + 0x57, 0xa9, 0xb7, 0x9d, 0x83, 0x53, 0xd1, 0xd4, 0x3a, 0xe4, 0xb1, 0x73, 0xa0, 0x04, 0x85, 0x12, + 0xaa, 0x2a, 0xf0, 0x3b, 0x1a, 0x54, 0xfb, 0xf1, 0x3e, 0x35, 0xf5, 0xfd, 0xa8, 0x0c, 0x25, 0x69, + 0x89, 0xf8, 0xa4, 0xbd, 0xfb, 0x3d, 0x58, 0x0a, 0xb0, 0x7f, 0xc0, 0x46, 0x33, 0x7a, 0x9e, 0x87, + 0x7d, 0x63, 0xc7, 0xed, 0x39, 0x96, 0x92, 0xa3, 0x23, 0xce, 0xba, 0x65, 0x3d, 0xa0, 0x8c, 0x37, + 0x29, 0x1f, 0x7a, 0x1b, 0xe6, 0xa3, 0x79, 0x30, 0x5b, 0x6c, 0xaf, 0x55, 0x69, 0x37, 0x65, 0x2e, + 0xe4, 0x6a, 0x70, 0x26, 0x9a, 0x8a, 0x6c, 0xc7, 0x26, 0x06, 0x1d, 0xc3, 0x6e, 0x61, 0xb5, 0x7d, + 0x39, 0xca, 0xb1, 0xcd, 0x19, 0x68, 0x3a, 0x0c, 0x88, 0xe9, 0xc7, 0x12, 0x54, 0xf6, 0x5e, 0x66, + 0x19, 0x4b, 0x28, 0x82, 0xa7, 0x43, 0x2f, 0x92, 0xa0, 0xb2, 0x7f, 0x47, 0xd3, 0xa1, 0x17, 0x0a, + 0xf8, 0x32, 0x9c, 0x09, 0x5a, 0x66, 0x07, 0x1b, 0x6e, 0x2f, 0xc6, 0x31, 0xad, 0xa2, 0x0e, 0xc6, + 0xf6, 0x5e, 0x2f, 0x82, 0xf2, 0x2b, 0x30, 0xcf, 0x25, 0xd9, 0x4e, 0x24, 0x68, 0x46, 0x41, 0x50, + 0x99, 0x71, 0x6d, 0x39, 0xa1, 0x9c, 0xdb, 0x30, 0xe7, 0x63, 0x59, 0x2f, 0xa0, 0x22, 0x46, 0x30, + 0x25, 0xc4, 0x58, 0x38, 0x20, 0xbe, 0x7b, 0x18, 0x89, 0x29, 0xaa, 0x88, 0x11, 0x4c, 0x09, 0x31, + 0x3d, 0x5e, 0x23, 0x47, 0x62, 0x66, 0x55, 0xc4, 0x08, 0xa6, 0x50, 0xcc, 0x26, 0x94, 0x5b, 0xbd, + 0x80, 0xb8, 0xdd, 0x48, 0x4a, 0x49, 0x41, 0x4a, 0x89, 0xf3, 0x24, 0x84, 0xd0, 0x02, 0xb5, 0x17, + 0x4f, 0x77, 0x59, 0x45, 0x08, 0xe7, 0x49, 0xa9, 0xd7, 0xf5, 0xe3, 0x07, 0x9a, 0x53, 0x55, 0xaf, + 0xeb, 0x47, 0x0f, 0x74, 0x1f, 0x96, 0x2d, 0x16, 0xe6, 0x8d, 0xc0, 0x31, 0xbd, 0x60, 0xcf, 0x8d, + 0x67, 0x6b, 0x5e, 0x41, 0xdc, 0x12, 0x67, 0xde, 0x16, 0xbc, 0x09, 0x73, 0xde, 0xc3, 0x66, 0x87, + 0xec, 0x19, 0xad, 0x3d, 0xdc, 0xda, 0xaf, 0x9e, 0x51, 0x31, 0x67, 0xce, 0xb1, 0x49, 0x19, 0xd0, + 0x17, 0x61, 0xaa, 0xeb, 0x3a, 0x36, 0x71, 0xfd, 0x2a, 0x52, 0xe0, 0x0d, 0x89, 0xd1, 0x2d, 0x28, + 0x7b, 0x66, 0x10, 0x78, 0x7b, 0xbe, 0x19, 0xe0, 0x0e, 0x0e, 0x82, 0xea, 0x82, 0x8a, 0x52, 0x64, + 0x1e, 0xaa, 0x94, 0x03, 0xec, 0x13, 0xbb, 0x65, 0x76, 0x0c, 0x6a, 0xd5, 0xb6, 0xd3, 0x36, 0x3c, + 0xb7, 0x63, 0xb7, 0x0e, 0xab, 0x8b, 0x2a, 0x4a, 0x09, 0x99, 0xb7, 0x39, 0xef, 0x3d, 0xc6, 0x8a, + 0x36, 0x61, 0xce, 0x6c, 0x63, 0x87, 0x18, 0xac, 0x10, 0xee, 0x74, 0xb0, 0x55, 0x5d, 0x3a, 0x76, + 0x45, 0x5c, 0x66, 0x2c, 0x5b, 0x21, 0x07, 0x6a, 0x42, 0x45, 0x18, 0x60, 0x17, 0x13, 0xd3, 0x32, + 0x89, 0x69, 0xf0, 0x4d, 0x9b, 0x6a, 0x45, 0x01, 0xd9, 0x22, 0xe7, 0xbd, 0x2b, 0x58, 0xb7, 0x19, + 0x27, 0x7a, 0x1d, 0xa6, 0xed, 0x2e, 0xad, 0xc4, 0x6d, 0xab, 0xba, 0xac, 0xa2, 0x6d, 0x46, 0xbd, + 0x65, 0xd1, 0xc0, 0x27, 0x0c, 0x59, 0x68, 0xa7, 0xaa, 0x12, 0xf8, 0x38, 0x8b, 0x50, 0xca, 0x87, + 0xb0, 0x6a, 0x3b, 0x2d, 0x1f, 0x77, 0xb1, 0x43, 0xcc, 0x8e, 0x11, 0xfa, 0x45, 0xcf, 0xf3, 0x5c, + 0x9f, 0x60, 0xab, 0x7a, 0xf6, 0x58, 0x0d, 0xd5, 0x12, 0xfc, 0x37, 0xb9, 0x8b, 0x84, 0xdc, 0xe8, + 0x4d, 0x80, 0xbd, 0x43, 0x8f, 0x1a, 0x65, 0xe0, 0xfa, 0xd5, 0x9a, 0x02, 0xba, 0x04, 0xbd, 0xfe, + 0x83, 0x12, 0x14, 0x13, 0xd5, 0xcf, 0x49, 0x37, 0xa3, 0xe4, 0x44, 0x9b, 0x3b, 0xd9, 0xce, 0x5f, + 0x5e, 0x79, 0xe7, 0xef, 0x86, 0x7c, 0x4a, 0xa4, 0x92, 0x12, 0x93, 0x67, 0x48, 0x6f, 0xc0, 0xcc, + 0x81, 0xdb, 0xe9, 0xf1, 0x43, 0x0d, 0x95, 0x54, 0x38, 0xcd, 0xc9, 0xb7, 0x2c, 0xba, 0x98, 0xb4, + 0xb0, 0x72, 0x02, 0x14, 0xb4, 0xf2, 0x89, 0xdf, 0xd4, 0x48, 0x27, 0x7e, 0xd7, 0x01, 0x3c, 0xdf, + 0x3e, 0x30, 0x09, 0x36, 0x6c, 0x4f, 0x29, 0xdb, 0xcd, 0x08, 0xfa, 0x2d, 0x8f, 0xd5, 0x7d, 0xb6, + 0xa7, 0x94, 0xda, 0x28, 0x21, 0xc3, 0x19, 0x16, 0x30, 0x03, 0x33, 0x59, 0xb2, 0x68, 0x99, 0x0e, + 0x8b, 0x96, 0xa8, 0x5a, 0x2a, 0x2a, 0x57, 0x4b, 0x57, 0xa0, 0x10, 0x10, 0x93, 0xf4, 0x02, 0xa5, + 0x2c, 0x25, 0x68, 0xd1, 0x16, 0x9c, 0x21, 0xbe, 0xe9, 0x04, 0x36, 0x2d, 0x6c, 0x0c, 0x21, 0x40, + 0x25, 0x41, 0xcd, 0xc7, 0x6c, 0xdb, 0x5c, 0xd4, 0xeb, 0x30, 0xdd, 0xf6, 0xdd, 0x1e, 0x3b, 0x50, + 0x2b, 0x2b, 0x3c, 0xec, 0x14, 0xa3, 0xe6, 0x73, 0xe2, 0x3e, 0x72, 0xb0, 0x6f, 0x78, 0x26, 0xd9, + 0x53, 0x4a, 0x49, 0x33, 0x8c, 0xfe, 0x9e, 0x49, 0xf6, 0x68, 0xed, 0xd1, 0xee, 0xb8, 0x3b, 0x34, + 0xec, 0x46, 0xaa, 0x9e, 0x57, 0x18, 0xbd, 0xcc, 0xb9, 0xb6, 0x43, 0x85, 0xdf, 0x86, 0xb9, 0x54, + 0x94, 0x54, 0x4a, 0x41, 0x65, 0x39, 0x3c, 0x52, 0x87, 0xf7, 0x7a, 0x3b, 0xc6, 0x3e, 0x3e, 0x54, + 0xca, 0x42, 0x05, 0xaf, 0xb7, 0xf3, 0x0e, 0x66, 0xdb, 0x23, 0x22, 0xfb, 0x89, 0x29, 0x50, 0xc9, + 0x41, 0x22, 0x61, 0x46, 0xea, 0x9f, 0xb1, 0x03, 0x11, 0x0d, 0x45, 0xce, 0x19, 0x16, 0x03, 0xa7, + 0xed, 0x80, 0x87, 0x3e, 0x74, 0x1d, 0x8a, 0x66, 0x8f, 0xb8, 0x21, 0xeb, 0xf1, 0x09, 0x06, 0x28, + 0x79, 0xcc, 0x9c, 0x3c, 0xdd, 0xae, 0x8c, 0x74, 0xba, 0x7d, 0x1d, 0x8a, 0xfc, 0x71, 0x39, 0xf3, + 0xf2, 0xf1, 0xcc, 0x9c, 0x9c, 0x31, 0xbf, 0x06, 0x53, 0x7b, 0x6e, 0xc0, 0x42, 0x80, 0x4a, 0x0e, + 0x29, 0x50, 0xe2, 0x2d, 0x2b, 0x66, 0xf3, 0x44, 0xa2, 0x50, 0x61, 0xf3, 0x92, 0xc7, 0x47, 0xcc, + 0x2f, 0x6b, 0x03, 0x8f, 0x8f, 0xd8, 0x5e, 0x4f, 0x31, 0x71, 0xac, 0x87, 0xde, 0x82, 0xb2, 0x7c, + 0x20, 0x57, 0x5d, 0x61, 0xdc, 0x43, 0x0e, 0xe3, 0x4a, 0xd2, 0x61, 0x1c, 0x3a, 0x0f, 0xc5, 0x7d, + 0x7c, 0x68, 0x78, 0xa6, 0xcd, 0xec, 0x7b, 0x95, 0xef, 0x50, 0xef, 0xe3, 0xc3, 0x7b, 0xa6, 0x4d, + 0x8d, 0xf7, 0x32, 0x4c, 0x32, 0x8f, 0xa8, 0x9e, 0x53, 0x59, 0xde, 0x31, 0x52, 0xfd, 0x5f, 0x0a, + 0x51, 0xaa, 0x6a, 0x8a, 0xbd, 0x94, 0x27, 0xb9, 0xb8, 0x13, 0xdb, 0x94, 0xf9, 0x11, 0xb7, 0x29, + 0x27, 0x46, 0xdf, 0xa6, 0x9c, 0x1c, 0x67, 0x9b, 0xb2, 0x30, 0xf6, 0x36, 0xe5, 0xd4, 0x88, 0xdb, + 0x94, 0x34, 0x1b, 0x77, 0xdd, 0x9e, 0x43, 0x0c, 0xcf, 0xb5, 0x1d, 0xa2, 0x94, 0xa3, 0x80, 0x31, + 0xdc, 0xa3, 0xf4, 0xf4, 0x11, 0x38, 0xbb, 0xe8, 0x2c, 0x52, 0x4a, 0x57, 0xb3, 0x8c, 0xe5, 0x3d, + 0xce, 0x41, 0x11, 0xec, 0xda, 0x1d, 0x6c, 0x04, 0x87, 0x01, 0xc1, 0x5d, 0xa5, 0x35, 0x18, 0x50, + 0x86, 0x6d, 0x46, 0x1f, 0x6e, 0x8f, 0x14, 0x55, 0xb7, 0x47, 0xae, 0xc2, 0xb4, 0x8f, 0xbd, 0x8e, + 0xdd, 0x32, 0x07, 0xe7, 0x2e, 0x29, 0x4b, 0x86, 0xd4, 0x74, 0x59, 0xe4, 0x63, 0xd3, 0x3a, 0x34, + 0x22, 0xfe, 0x92, 0x02, 0x7f, 0x89, 0xf1, 0x34, 0x43, 0x21, 0x37, 0xa0, 0x68, 0x7a, 0xb6, 0x21, + 0x0e, 0x51, 0x94, 0x16, 0x56, 0x60, 0x7a, 0xf6, 0x43, 0x4e, 0xaf, 0xff, 0x5f, 0x0e, 0x16, 0x32, + 0x8e, 0xbe, 0x9f, 0xb4, 0x3f, 0x3d, 0x84, 0xaa, 0x74, 0x48, 0xdf, 0xb1, 0x03, 0x82, 0x1d, 0x3e, + 0xb8, 0x4a, 0x25, 0x58, 0x49, 0x72, 0xdf, 0x11, 0xcc, 0x5b, 0x16, 0x2d, 0x10, 0x24, 0xb9, 0xb4, + 0x4c, 0x56, 0xf2, 0xc2, 0xf9, 0x24, 0xdb, 0x3d, 0xd7, 0x27, 0x74, 0x21, 0x92, 0x12, 0x45, 0xeb, + 0x79, 0xd5, 0xa2, 0x71, 0x51, 0x96, 0x47, 0x59, 0xb7, 0x2c, 0xfd, 0x9f, 0x72, 0x51, 0x14, 0xbb, + 0x63, 0x3b, 0xfb, 0x4f, 0xfa, 0xcc, 0xfc, 0x0e, 0x2c, 0xe0, 0x6f, 0x12, 0xec, 0x3b, 0x66, 0xc7, + 0x48, 0x8c, 0xab, 0xa2, 0xf0, 0x33, 0x21, 0xe3, 0x66, 0xf2, 0xe8, 0x2f, 0x51, 0x08, 0x4d, 0x8c, + 0x56, 0x08, 0x45, 0x39, 0x60, 0x52, 0x3d, 0x07, 0xfc, 0xa4, 0x0c, 0x53, 0x62, 0xf8, 0x9f, 0xb3, + 0x6e, 0x83, 0x44, 0xf3, 0xd6, 0xc4, 0x49, 0x9b, 0xb7, 0x26, 0x47, 0x3b, 0x5b, 0x95, 0x56, 0x1d, + 0x85, 0x91, 0x56, 0x1d, 0x27, 0xea, 0xb2, 0xfb, 0x12, 0xcc, 0xee, 0xfa, 0xae, 0x43, 0xda, 0x6c, + 0xb1, 0x62, 0x29, 0x25, 0x82, 0x62, 0xc4, 0xc1, 0x05, 0x84, 0x33, 0xca, 0xfa, 0xf4, 0x66, 0x54, + 0x32, 0x91, 0xe0, 0x60, 0xcd, 0x9b, 0xd7, 0x60, 0x06, 0x3b, 0x16, 0x4b, 0x43, 0x81, 0x52, 0x16, + 0x88, 0xc9, 0x13, 0xcb, 0x91, 0xe2, 0xb8, 0xcb, 0x91, 0xd9, 0x13, 0x2d, 0x47, 0xee, 0xc0, 0x62, + 0xb4, 0xdf, 0xe1, 0xbb, 0x2e, 0x31, 0xcc, 0x56, 0x0b, 0x07, 0x61, 0x86, 0x18, 0x56, 0xdf, 0xa2, + 0x90, 0xaf, 0xe9, 0xba, 0xa4, 0xc1, 0xb8, 0x52, 0xae, 0x59, 0x1e, 0xcd, 0x35, 0x6f, 0x40, 0x51, + 0xac, 0x51, 0x7a, 0x3d, 0xdb, 0x52, 0x5a, 0xe1, 0x00, 0x67, 0x78, 0xd0, 0xb3, 0x2d, 0x9a, 0xe5, + 0xa2, 0x8d, 0x48, 0xae, 0x11, 0x95, 0x7d, 0xb6, 0x52, 0xb8, 0x0f, 0xc9, 0xd5, 0x71, 0x03, 0x66, + 0x43, 0x21, 0xac, 0xd8, 0x3e, 0x73, 0x6c, 0xb1, 0x5d, 0x14, 0xf4, 0xa2, 0x54, 0x4f, 0x76, 0x2e, + 0xa2, 0xd1, 0x3a, 0x17, 0x53, 0x8b, 0x84, 0x85, 0x71, 0x16, 0x09, 0x8b, 0x23, 0x2d, 0x12, 0x6e, + 0xc3, 0x9c, 0x69, 0x59, 0xcc, 0x2c, 0xcc, 0x8e, 0x61, 0x3b, 0xbb, 0xae, 0x58, 0xdf, 0x1c, 0xb3, + 0xaa, 0x8b, 0x99, 0xb6, 0x9c, 0x5d, 0x37, 0xac, 0x68, 0x2a, 0xaa, 0x15, 0xcd, 0xcb, 0x30, 0x69, + 0xe1, 0x9d, 0x5e, 0x7b, 0xe0, 0x92, 0x26, 0xd1, 0xbf, 0xc2, 0x08, 0xa3, 0x1e, 0xcc, 0xaa, 0x72, + 0x5f, 0x71, 0x56, 0x07, 0xd0, 0xd9, 0xf1, 0xfb, 0x15, 0x6b, 0xe3, 0xf7, 0x2b, 0xae, 0x9c, 0x46, + 0xbf, 0xe2, 0xea, 0xe9, 0xf6, 0x2b, 0x9e, 0x1b, 0xab, 0x5f, 0x31, 0x4e, 0xae, 0xe7, 0xd5, 0x93, + 0xeb, 0x6f, 0x15, 0xe2, 0x3e, 0xe7, 0x11, 0xdb, 0xa4, 0x96, 0xa2, 0xe4, 0x26, 0x3a, 0x8e, 0x78, + 0xfa, 0x3a, 0x27, 0xa5, 0x2f, 0x7e, 0x86, 0x98, 0x48, 0x50, 0x95, 0x28, 0xe4, 0xf2, 0x83, 0xec, + 0x30, 0xa8, 0x9e, 0x93, 0x7c, 0x97, 0xb7, 0x17, 0x24, 0xbc, 0xf3, 0x42, 0x2a, 0xcf, 0xf0, 0x26, + 0x71, 0x29, 0x93, 0x0c, 0x28, 0x73, 0xa6, 0x4e, 0x56, 0xe6, 0x44, 0x2f, 0x20, 0x4c, 0x67, 0xbf, + 0x80, 0x30, 0xd3, 0xf7, 0x02, 0x02, 0x36, 0xfd, 0xd6, 0x9e, 0xf1, 0xc8, 0xf5, 0x2d, 0xb5, 0xc5, + 0x08, 0x67, 0x78, 0xdf, 0xf5, 0x2d, 0xf4, 0x3a, 0x4c, 0x07, 0xae, 0x4f, 0xd8, 0x8e, 0x8c, 0x4a, + 0x26, 0x9a, 0xa2, 0xd4, 0xef, 0xe0, 0x43, 0x74, 0x05, 0xa6, 0x7c, 0x4c, 0x95, 0x1b, 0x1e, 0xfb, + 0x0c, 0xf3, 0xe2, 0x90, 0x94, 0x3e, 0x1b, 0x37, 0x94, 0x12, 0x9f, 0x38, 0xf6, 0xa3, 0x2f, 0x13, + 0xab, 0xe4, 0x0f, 0x29, 0x13, 0x5f, 0x87, 0xe2, 0x23, 0x9b, 0xec, 0x19, 0x16, 0x26, 0xa6, 0xdd, + 0x11, 0x19, 0x64, 0xe8, 0x1e, 0x0d, 0x25, 0xbf, 0xc5, 0xa8, 0xd9, 0xe8, 0x2c, 0x9e, 0x5a, 0x86, + 0x65, 0x12, 0xac, 0xb4, 0x3d, 0x26, 0x02, 0xb6, 0x75, 0xcb, 0x24, 0x18, 0xbd, 0x00, 0x73, 0x96, + 0x1d, 0x78, 0x1d, 0xf3, 0xd0, 0x68, 0xb9, 0x9d, 0x5e, 0xd7, 0x09, 0xaa, 0x67, 0xd8, 0xe3, 0x95, + 0xc5, 0xe5, 0x4d, 0x7e, 0x35, 0x7a, 0xa1, 0x03, 0xc5, 0x2f, 0x74, 0xe8, 0xdf, 0x80, 0x6a, 0xbf, + 0x17, 0xa8, 0xb6, 0xfb, 0x5f, 0x81, 0x50, 0x0d, 0x89, 0x7e, 0xec, 0xcc, 0x3e, 0xee, 0xd0, 0x9f, + 0xb6, 0x31, 0xd1, 0x7f, 0x9a, 0x87, 0x5a, 0x38, 0x66, 0xc3, 0xf3, 0xd2, 0xce, 0xb7, 0x94, 0xe8, + 0xfb, 0x4f, 0x78, 0x57, 0xec, 0x3e, 0x39, 0xc9, 0x7d, 0x22, 0x73, 0xcd, 0x67, 0x9b, 0xeb, 0xc4, + 0x30, 0x73, 0x9d, 0x1c, 0xc3, 0x5c, 0x0b, 0x27, 0x34, 0xd7, 0xa9, 0x13, 0x98, 0xeb, 0x74, 0xd2, + 0x5c, 0x53, 0xd6, 0x36, 0x33, 0x96, 0xb5, 0xc1, 0x29, 0x58, 0x5b, 0x31, 0xcb, 0xda, 0x74, 0x02, + 0x2b, 0x99, 0xb3, 0xfc, 0x78, 0x8d, 0xeb, 0xfb, 0xf9, 0x78, 0xd8, 0x27, 0xd7, 0x83, 0x13, 0x1b, + 0x67, 0x3e, 0xdb, 0x38, 0x27, 0xb2, 0x8d, 0x73, 0x72, 0x98, 0x71, 0x16, 0xc6, 0x30, 0xce, 0xa9, + 0x13, 0x1a, 0xe7, 0xf4, 0x09, 0x8c, 0x73, 0x26, 0x69, 0x9c, 0x19, 0xe6, 0x01, 0x99, 0xe6, 0xf1, + 0xb1, 0x06, 0xab, 0xd9, 0x13, 0xa5, 0x6a, 0x20, 0xe3, 0xbf, 0x12, 0xa2, 0xff, 0x3a, 0x2c, 0x6c, + 0x13, 0xd7, 0x7b, 0x2c, 0x6d, 0xd2, 0xfa, 0x1d, 0x58, 0x94, 0x85, 0x8f, 0xd5, 0xcf, 0xfc, 0x21, + 0x95, 0x66, 0xfa, 0xe4, 0xf1, 0x60, 0xbd, 0x0b, 0x4b, 0x29, 0xe9, 0x63, 0x81, 0xfd, 0x2a, 0x54, + 0x9a, 0xb8, 0xe5, 0x1e, 0x60, 0xff, 0xf1, 0xc0, 0x7d, 0x0f, 0x96, 0xfb, 0xe4, 0x8f, 0x05, 0xf8, + 0x47, 0x1a, 0x2c, 0x6e, 0x62, 0x33, 0xf8, 0x79, 0xea, 0x98, 0xbf, 0x0b, 0x4b, 0x29, 0xc8, 0x63, + 0xa9, 0xe0, 0x1c, 0xac, 0xbc, 0x8d, 0x43, 0x03, 0xa0, 0xcb, 0x52, 0x3b, 0x20, 0x76, 0x2b, 0x54, + 0x84, 0xfe, 0xb3, 0x09, 0x58, 0xcd, 0xbe, 0x2f, 0x46, 0x0d, 0x60, 0xa9, 0x63, 0x06, 0xc4, 0x20, + 0x8f, 0x5c, 0xe3, 0x11, 0xc6, 0xfb, 0x86, 0xc8, 0x1a, 0xe2, 0xc5, 0x87, 0xb7, 0x92, 0x3e, 0x39, + 0x4c, 0xd0, 0xfa, 0x1d, 0x33, 0x20, 0xf7, 0x1f, 0xb9, 0xef, 0x63, 0xbc, 0xcf, 0xdf, 0x62, 0xb3, + 0x6e, 0x3b, 0xc4, 0x3f, 0x6c, 0xa2, 0x4e, 0xdf, 0x0d, 0xb4, 0x0b, 0xf3, 0xc4, 0xf5, 0x0c, 0x82, + 0x1d, 0x43, 0x94, 0xcc, 0x81, 0x88, 0x01, 0x6f, 0x2a, 0x8f, 0x77, 0xdf, 0xf5, 0xee, 0x63, 0xa7, + 0x29, 0xd8, 0xf9, 0x58, 0x65, 0x22, 0x5d, 0x44, 0x17, 0xa3, 0x97, 0x96, 0x13, 0xdd, 0xac, 0xa5, + 0xe6, 0x6c, 0xb4, 0xca, 0xa1, 0x01, 0xe9, 0x22, 0x94, 0xc2, 0x4a, 0x9e, 0x13, 0xf1, 0x49, 0x9b, + 0x15, 0x17, 0x39, 0xd1, 0x07, 0x30, 0x1b, 0x22, 0x36, 0x3d, 0x2f, 0x10, 0x6f, 0x7e, 0x5d, 0x1d, + 0x11, 0x6d, 0xc3, 0xf3, 0x04, 0x52, 0x20, 0xd1, 0x85, 0xda, 0x6d, 0x58, 0x1e, 0xa0, 0x3c, 0x34, + 0x0f, 0x79, 0x9a, 0x17, 0x68, 0x14, 0x9d, 0x69, 0xd2, 0x7f, 0x69, 0xfc, 0x3e, 0xa0, 0x16, 0x17, + 0xbe, 0x68, 0xcc, 0x7e, 0x5c, 0xcb, 0x5d, 0xd5, 0x6a, 0x0d, 0x58, 0xc8, 0xd0, 0xc9, 0x48, 0x22, + 0x6e, 0xc0, 0x5c, 0x0a, 0xe8, 0x28, 0xec, 0xfa, 0xff, 0xe6, 0x61, 0xea, 0x1d, 0x7e, 0x7e, 0x86, + 0xde, 0x94, 0x4f, 0xd7, 0x94, 0x52, 0x76, 0x7c, 0xf6, 0xf6, 0xe4, 0xb7, 0x3e, 0x13, 0x67, 0xcc, + 0x13, 0x23, 0x9c, 0x31, 0xcb, 0x5b, 0x58, 0x93, 0xa3, 0x6d, 0x61, 0xa5, 0xb6, 0x70, 0x0a, 0xe3, + 0x6c, 0xe1, 0x4c, 0x8d, 0xb4, 0x85, 0x93, 0x28, 0x89, 0xa6, 0xa5, 0x92, 0xe8, 0x72, 0x5c, 0x1e, + 0x28, 0xaf, 0xc9, 0xff, 0x59, 0x0b, 0xdf, 0x05, 0x16, 0x93, 0x1f, 0x46, 0xe1, 0x70, 0x16, 0xb5, + 0x93, 0xce, 0x62, 0x6e, 0x8c, 0x59, 0xcc, 0xab, 0xcf, 0xa2, 0xfe, 0x20, 0x7c, 0xf3, 0x36, 0x7a, + 0x00, 0x11, 0x1d, 0xc7, 0xb2, 0x62, 0xfd, 0xef, 0xf2, 0xf1, 0x66, 0x85, 0x90, 0x1c, 0x65, 0xa8, + 0x5f, 0x10, 0xff, 0x58, 0x8c, 0x0f, 0x50, 0x12, 0xe5, 0xe6, 0x98, 0x25, 0x73, 0x54, 0x9f, 0x4f, + 0x65, 0xd7, 0xe7, 0xd3, 0x52, 0x7d, 0x9e, 0x51, 0xdb, 0xce, 0x64, 0xd6, 0xb6, 0x7e, 0xbc, 0xa8, + 0x8e, 0x67, 0x4b, 0xb5, 0xac, 0x7d, 0x0d, 0x66, 0xa3, 0xf9, 0x1c, 0xb0, 0xf0, 0x09, 0x8d, 0x0b, + 0xc4, 0x3c, 0xd2, 0x52, 0xf6, 0xf5, 0xf0, 0x9d, 0xbf, 0xb4, 0x7d, 0x9c, 0x4f, 0xdb, 0x87, 0xdc, + 0x9d, 0xa0, 0x5f, 0x0d, 0x5f, 0xbc, 0xeb, 0x83, 0x7a, 0x1c, 0xe7, 0x3d, 0x58, 0x6a, 0x10, 0x62, + 0xb6, 0xf6, 0x46, 0x1c, 0x72, 0xe0, 0x3a, 0x4a, 0xdf, 0x80, 0x4a, 0x5a, 0xa2, 0xc0, 0x12, 0x17, + 0x2d, 0x5a, 0xb2, 0x68, 0xb9, 0x47, 0x9f, 0xfa, 0xb4, 0x21, 0xa4, 0x25, 0x0e, 0x87, 0xf0, 0xb1, + 0x06, 0x45, 0xba, 0x9e, 0x08, 0xf3, 0xd5, 0x09, 0x9b, 0x0a, 0x53, 0x6e, 0x9c, 0x1b, 0x2d, 0x40, + 0x3c, 0x60, 0xef, 0xfc, 0x24, 0x60, 0x24, 0x16, 0xbc, 0x25, 0x06, 0x27, 0x14, 0x9e, 0xf5, 0x1e, + 0x6a, 0x82, 0xaf, 0x59, 0x74, 0xe2, 0x1f, 0xfa, 0x59, 0xf6, 0x72, 0x8d, 0x2c, 0x96, 0x6b, 0x43, + 0xff, 0x4a, 0xf8, 0xa6, 0xcb, 0xa9, 0x0f, 0xba, 0x1a, 0xbe, 0xa8, 0x92, 0x35, 0xee, 0xe5, 0x3f, + 0xff, 0x02, 0x94, 0x45, 0x75, 0x74, 0xd7, 0x74, 0xcc, 0x36, 0xf6, 0xd1, 0x07, 0x30, 0x97, 0x42, + 0x89, 0xf4, 0xe4, 0x48, 0xd9, 0x9a, 0xa9, 0x5d, 0x1c, 0x4a, 0x23, 0x26, 0xbd, 0x05, 0xa8, 0x1f, + 0x0c, 0x7a, 0x2e, 0xc9, 0x3a, 0x50, 0x0d, 0xb5, 0xe7, 0x8f, 0x23, 0x13, 0x83, 0x7c, 0x5b, 0x83, + 0x92, 0x94, 0x36, 0x50, 0x5d, 0x5a, 0xc1, 0x66, 0xa4, 0xc4, 0xda, 0x85, 0x21, 0x14, 0x62, 0x8a, + 0x5e, 0x3b, 0x6a, 0x9c, 0x41, 0x73, 0xfc, 0x5e, 0x7d, 0x1f, 0x1f, 0xd6, 0xe9, 0x54, 0x7c, 0xfc, + 0x9f, 0x3f, 0xfd, 0x83, 0xdc, 0x8a, 0x5e, 0xd9, 0x38, 0x78, 0x65, 0x43, 0x54, 0xaf, 0xc1, 0x46, + 0x38, 0x4f, 0xc1, 0x35, 0xed, 0x45, 0xf4, 0x33, 0x0d, 0xe6, 0xd3, 0xe1, 0x0b, 0x5d, 0x94, 0x1f, + 0x25, 0x33, 0x15, 0xd5, 0x9e, 0x1d, 0x4e, 0x24, 0x60, 0x7d, 0x4b, 0x3b, 0x6a, 0xd8, 0xa8, 0xfd, + 0x36, 0x26, 0x11, 0xa8, 0x60, 0xad, 0x2e, 0x3a, 0x84, 0xeb, 0xbb, 0x76, 0x87, 0x60, 0xbf, 0xfe, + 0xc8, 0x26, 0x7b, 0x75, 0xb2, 0x87, 0x03, 0x5c, 0xdf, 0xb5, 0x71, 0xc7, 0x0a, 0x2e, 0x25, 0xbc, + 0x63, 0xad, 0x4e, 0x33, 0xd1, 0x5a, 0x9d, 0xe5, 0x80, 0x5f, 0x5a, 0xab, 0x5b, 0x78, 0xd7, 0xec, + 0x75, 0x48, 0xdd, 0xc7, 0xa4, 0xe7, 0x3b, 0x75, 0xb3, 0xd3, 0x89, 0x25, 0xb3, 0xe7, 0xad, 0xa2, + 0x01, 0xcf, 0x8b, 0xfe, 0x50, 0x83, 0xb2, 0x1c, 0xfe, 0xd0, 0x85, 0xfe, 0x59, 0x4b, 0x3f, 0xa8, + 0x3e, 0x8c, 0x44, 0x3c, 0xe6, 0x9b, 0x47, 0x8d, 0x2a, 0xaa, 0xdc, 0x34, 0x49, 0x6b, 0xaf, 0xce, + 0x9b, 0xea, 0x53, 0xa0, 0x56, 0x5e, 0x1c, 0x32, 0x09, 0x7f, 0xa5, 0x41, 0x59, 0x0e, 0x85, 0x32, + 0xae, 0xcc, 0xc0, 0x2b, 0xe3, 0xca, 0x8e, 0xa4, 0xfa, 0xaf, 0x1e, 0x35, 0xea, 0xe8, 0x3c, 0xc7, + 0x65, 0x32, 0x92, 0x18, 0x57, 0x9d, 0xb8, 0x75, 0xea, 0x8a, 0x0c, 0xdf, 0x05, 0x7d, 0x35, 0x13, + 0xdf, 0x06, 0xe7, 0xa2, 0x28, 0xff, 0x9a, 0x69, 0x6f, 0x30, 0xca, 0xcc, 0xd8, 0x9c, 0xd6, 0x5e, + 0x26, 0xca, 0x3b, 0x47, 0x0d, 0x1d, 0xd5, 0x43, 0xed, 0xa5, 0x50, 0xee, 0xfa, 0x6e, 0x57, 0x01, + 0x27, 0xe7, 0xa3, 0x38, 0x7f, 0x47, 0x83, 0xb9, 0xd4, 0x47, 0x6d, 0x90, 0x9e, 0x65, 0xac, 0xf2, + 0x97, 0x9c, 0x6a, 0x17, 0x87, 0xd2, 0x08, 0xa8, 0x6b, 0x47, 0x8d, 0x12, 0x2a, 0x52, 0x73, 0xe6, + 0x1d, 0x05, 0x7c, 0x76, 0x2b, 0x68, 0x51, 0x42, 0x25, 0xee, 0xa1, 0xdf, 0x8e, 0x7c, 0x3d, 0x6c, + 0xed, 0xc8, 0xf0, 0x75, 0xf9, 0x0d, 0xd8, 0x2c, 0x5f, 0x4f, 0xbd, 0x67, 0xaa, 0xbf, 0x72, 0xd4, + 0x98, 0x47, 0x65, 0xe1, 0xeb, 0x62, 0x50, 0x6e, 0xfa, 0xfa, 0x82, 0x84, 0x83, 0x17, 0xfe, 0x54, + 0x29, 0xdf, 0xd3, 0x00, 0x71, 0x86, 0x5b, 0x78, 0xa7, 0xd7, 0x3e, 0x55, 0x38, 0x37, 0x8e, 0x1a, + 0x15, 0x24, 0x6a, 0xf9, 0x3a, 0x3b, 0x43, 0x95, 0x40, 0x9d, 0xd7, 0xcf, 0x52, 0x50, 0xec, 0x86, + 0x91, 0x01, 0xed, 0x3e, 0x94, 0xa4, 0x8f, 0x37, 0xc8, 0xa0, 0xb2, 0xbe, 0x27, 0x23, 0x83, 0xca, + 0xfe, 0x7a, 0xc9, 0xd7, 0xe0, 0x4c, 0xdf, 0x27, 0x21, 0xd0, 0xb3, 0x03, 0xf9, 0x12, 0xdf, 0x27, + 0xa9, 0x3d, 0x77, 0x0c, 0x95, 0x18, 0xe1, 0x87, 0x1a, 0x2c, 0x0f, 0xf8, 0xca, 0x06, 0x7a, 0x71, + 0xa0, 0x88, 0xbe, 0xaf, 0x64, 0xd4, 0xbe, 0xa0, 0x44, 0x1b, 0x07, 0x9a, 0x15, 0x24, 0x3e, 0x81, + 0x12, 0x6a, 0x99, 0x7a, 0xb6, 0xa0, 0xcb, 0xb4, 0x82, 0x2e, 0xa3, 0xa6, 0xaa, 0xfe, 0x37, 0x0d, + 0x56, 0x86, 0x7c, 0x28, 0x03, 0xad, 0x0f, 0x7d, 0xf2, 0x7e, 0xe8, 0x1b, 0xca, 0xf4, 0x02, 0xfe, + 0xbb, 0x47, 0x8d, 0x17, 0xd0, 0x73, 0x02, 0x3e, 0x75, 0xea, 0x04, 0xf6, 0xba, 0xed, 0xd0, 0x24, + 0x90, 0x65, 0x3b, 0xa9, 0x47, 0x61, 0x5b, 0xc0, 0x2c, 0x72, 0xbe, 0x0f, 0x8b, 0x59, 0x9f, 0xe6, + 0x40, 0x2f, 0xa4, 0xd2, 0xfd, 0xa0, 0xef, 0x6a, 0xd4, 0x2a, 0x7d, 0x45, 0xd7, 0xed, 0xae, 0x47, + 0x0e, 0xd1, 0x6f, 0xd0, 0x35, 0x58, 0xe6, 0x17, 0x39, 0xe4, 0xb9, 0x1d, 0xfe, 0xd9, 0x8e, 0x81, + 0xe2, 0xbf, 0x1b, 0x65, 0xa2, 0x70, 0x43, 0x2f, 0x2b, 0x13, 0xa5, 0xf6, 0x27, 0xb3, 0x32, 0x51, + 0x7a, 0x3f, 0x50, 0xbf, 0x7a, 0xd4, 0x58, 0x46, 0x4b, 0x52, 0x26, 0x0a, 0xb5, 0x97, 0x69, 0x1c, + 0x9c, 0x86, 0xea, 0xf2, 0x3b, 0x1a, 0x94, 0xe5, 0x2f, 0x51, 0xc8, 0x98, 0x32, 0x3f, 0xb0, 0x21, + 0x63, 0xca, 0xfe, 0x90, 0x85, 0xfe, 0x2a, 0xab, 0x4d, 0xc4, 0x4d, 0x69, 0x7e, 0xcf, 0xea, 0x72, + 0xe0, 0x14, 0x7d, 0x2e, 0x14, 0xce, 0x77, 0x35, 0x98, 0x4b, 0x7d, 0x0d, 0x42, 0x0e, 0xe3, 0xd9, + 0x5f, 0xaa, 0x90, 0xc3, 0xf8, 0x80, 0xcf, 0x49, 0xd0, 0x6a, 0x09, 0xa1, 0xf9, 0xf0, 0xae, 0x04, + 0xa9, 0xa6, 0x2f, 0x49, 0x90, 0x7c, 0x41, 0x44, 0x31, 0xd1, 0x78, 0x2e, 0xbd, 0xfa, 0x2f, 0xc7, + 0xaa, 0xac, 0x2f, 0x1a, 0xc8, 0xb1, 0x2a, 0xf3, 0xbb, 0x01, 0x22, 0x9e, 0xf3, 0x7b, 0x43, 0xe3, + 0xb9, 0xcf, 0x48, 0x28, 0x92, 0x3f, 0xd3, 0x58, 0x1d, 0x2c, 0x19, 0x66, 0xba, 0x0e, 0xce, 0x32, + 0xc8, 0x8b, 0x43, 0x69, 0x04, 0x9e, 0xb7, 0x8e, 0x1a, 0xab, 0xa8, 0x26, 0xaa, 0x06, 0xcb, 0x62, + 0x8e, 0xca, 0xca, 0x85, 0x24, 0xb6, 0x74, 0x59, 0x69, 0x5a, 0x56, 0xec, 0x97, 0x9f, 0x68, 0x61, + 0x29, 0x2d, 0x21, 0x7c, 0x6e, 0xa0, 0x01, 0x4b, 0x20, 0x9f, 0x3f, 0x8e, 0x4c, 0xe0, 0xfc, 0xf2, + 0x51, 0xe3, 0x02, 0x7a, 0x46, 0xb2, 0x75, 0x0e, 0x95, 0xd5, 0x0c, 0xc3, 0xe2, 0x88, 0x78, 0x6b, + 0x32, 0xc2, 0xfb, 0xa7, 0x1a, 0xcc, 0xa7, 0xdf, 0xf7, 0x96, 0xcb, 0xe0, 0x01, 0x6f, 0xaf, 0xcb, + 0x65, 0xf0, 0xa0, 0x57, 0xc6, 0x69, 0xd8, 0x5e, 0x46, 0x4b, 0xfc, 0x76, 0x1d, 0x3b, 0x07, 0x75, + 0x77, 0x57, 0xc2, 0xb7, 0x7a, 0x79, 0x39, 0xe5, 0x07, 0x94, 0xd2, 0xc0, 0xce, 0x01, 0x45, 0xf7, + 0xc7, 0xb9, 0xb8, 0x48, 0x8f, 0xe2, 0x45, 0x66, 0xb9, 0x92, 0x8e, 0x18, 0xcf, 0x0e, 0x27, 0x12, + 0xe8, 0x3e, 0xd3, 0x8e, 0x1a, 0x7f, 0xa9, 0xa1, 0xbf, 0xd0, 0x68, 0x5d, 0x13, 0x62, 0x58, 0xab, + 0xb7, 0x4c, 0x67, 0x70, 0x85, 0x1e, 0x1f, 0x3a, 0xac, 0xd5, 0xf9, 0x11, 0xfe, 0x5a, 0x3d, 0xee, + 0x88, 0x59, 0xab, 0xf3, 0x6d, 0xc3, 0xb5, 0x7a, 0xdc, 0xee, 0xb2, 0x56, 0x4f, 0xf6, 0xb6, 0x88, + 0x82, 0x7e, 0xad, 0x9e, 0xec, 0xc6, 0xc8, 0x2e, 0xef, 0xa5, 0xf8, 0x55, 0x46, 0xb3, 0x49, 0x4d, + 0xa1, 0x1f, 0xe6, 0x60, 0x29, 0x7c, 0xb0, 0x64, 0x69, 0x73, 0xaa, 0x0a, 0xfa, 0x57, 0xed, 0xa8, + 0xf1, 0x89, 0x86, 0xfe, 0x96, 0x29, 0x48, 0xaa, 0x70, 0x3e, 0x47, 0x6a, 0x92, 0x71, 0x31, 0x65, + 0x2d, 0x22, 0xd4, 0x5f, 0x7a, 0xa1, 0xbf, 0xcf, 0xc1, 0x42, 0xc6, 0x69, 0x3d, 0x7a, 0x3e, 0x4b, + 0x17, 0xfd, 0x4d, 0x1b, 0xb5, 0x17, 0x8e, 0xa5, 0x13, 0x6a, 0xfb, 0xb1, 0x76, 0xd4, 0xf8, 0x1b, + 0x0d, 0x7d, 0x9f, 0xa9, 0xcd, 0xf4, 0xbc, 0xcf, 0xa1, 0xd2, 0x92, 0xa8, 0x98, 0xca, 0x16, 0xd0, + 0x19, 0x39, 0xac, 0x79, 0x5e, 0x80, 0x7e, 0x9c, 0x8b, 0x37, 0xf9, 0x98, 0x91, 0x3d, 0x56, 0xb5, + 0xfd, 0x97, 0x76, 0xd4, 0xf8, 0x07, 0x0d, 0x7d, 0x9a, 0xb0, 0xb6, 0xcf, 0xa7, 0xf2, 0xfa, 0xb1, + 0xf1, 0xa4, 0x8e, 0x96, 0x33, 0x0a, 0x7e, 0xa6, 0xc8, 0xff, 0xd6, 0x60, 0x31, 0xab, 0x11, 0x00, + 0xbd, 0x30, 0xc4, 0x0f, 0xa5, 0xdc, 0x70, 0xe9, 0x78, 0x42, 0xa1, 0xc6, 0xde, 0x51, 0xe3, 0x2b, + 0xe8, 0x21, 0xd5, 0x21, 0x4f, 0x0a, 0xb6, 0x13, 0xc2, 0x1c, 0x41, 0x83, 0x62, 0x77, 0x2f, 0x56, + 0x1b, 0xdf, 0x86, 0x48, 0x7a, 0x57, 0xf4, 0x84, 0x6c, 0x18, 0x5a, 0x23, 0xcc, 0x26, 0x5b, 0x01, + 0x90, 0xd4, 0xe9, 0x98, 0xd1, 0x81, 0x50, 0xab, 0x0f, 0x26, 0x10, 0x8f, 0x72, 0xe5, 0xa8, 0xb1, + 0x84, 0x16, 0x78, 0xa2, 0x0b, 0x88, 0x9b, 0xd2, 0x77, 0x45, 0x97, 0x4d, 0x96, 0x52, 0x88, 0x82, + 0xae, 0x24, 0x1d, 0xf4, 0xa3, 0xd4, 0x48, 0xfd, 0x1d, 0x06, 0x72, 0xb5, 0x92, 0xd9, 0x25, 0xa0, + 0x7f, 0x91, 0x2d, 0xf7, 0x42, 0x30, 0xa6, 0x4f, 0x64, 0x34, 0xcb, 0x3a, 0x4a, 0xa1, 0x31, 0x7d, + 0x42, 0xe1, 0xfc, 0x11, 0x2d, 0xe8, 0xe4, 0x83, 0xfc, 0x54, 0x41, 0x97, 0xd9, 0x45, 0x90, 0x2a, + 0xe8, 0xb2, 0x3b, 0x01, 0xf4, 0x6b, 0x89, 0x0d, 0x18, 0x9f, 0xd3, 0xa4, 0x8c, 0x32, 0x55, 0x69, + 0x0a, 0xa2, 0x50, 0x4f, 0xd2, 0xe1, 0x7a, 0x6a, 0x59, 0x9c, 0xd1, 0x2a, 0x90, 0x5a, 0x16, 0x67, + 0x9d, 0xcc, 0x4b, 0x7a, 0x6a, 0x51, 0x8a, 0xe1, 0x7a, 0x62, 0x24, 0x14, 0xce, 0x0f, 0x34, 0x58, + 0xcc, 0x3a, 0x15, 0x96, 0x7d, 0x64, 0xc8, 0xf1, 0xbd, 0xec, 0x23, 0xc3, 0x0e, 0x98, 0xe9, 0xd2, + 0x7d, 0x05, 0x9d, 0x65, 0xdb, 0x19, 0xd1, 0xcd, 0x74, 0x6d, 0x22, 0xdc, 0x39, 0x39, 0xa1, 0x82, + 0xf2, 0xe6, 0xc4, 0x07, 0x39, 0x6f, 0x67, 0xa7, 0xc0, 0x16, 0x37, 0xaf, 0xfe, 0x7f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x66, 0xed, 0xd7, 0x45, 0xeb, 0x5b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.go b/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.go index 97bccfbb9..a81ee7a2d 100644 --- a/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.go +++ b/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.go @@ -130,8 +130,6 @@ type ListReleasesRequest struct { ReleaseName *wrappers.StringValue `protobuf:"bytes,2,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` Namespace *wrappers.StringValue `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` Status *wrappers.StringValue `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` - Limit uint32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"` - Offset uint32 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -190,23 +188,8 @@ func (m *ListReleasesRequest) GetStatus() *wrappers.StringValue { return nil } -func (m *ListReleasesRequest) GetLimit() uint32 { - if m != nil { - return m.Limit - } - return 0 -} - -func (m *ListReleasesRequest) GetOffset() uint32 { - if m != nil { - return m.Offset - } - return 0 -} - type ListReleaseResponse struct { - TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` - ReleaseSet []*Release `protobuf:"bytes,2,rep,name=release_set,json=releaseSet,proto3" json:"release_set,omitempty"` + ReleaseSet []*Release `protobuf:"bytes,1,rep,name=release_set,json=releaseSet,proto3" json:"release_set,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -237,13 +220,6 @@ func (m *ListReleaseResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ListReleaseResponse proto.InternalMessageInfo -func (m *ListReleaseResponse) GetTotalCount() uint32 { - if m != nil { - return m.TotalCount - } - return 0 -} - func (m *ListReleaseResponse) GetReleaseSet() []*Release { if m != nil { return m.ReleaseSet @@ -251,100 +227,6 @@ func (m *ListReleaseResponse) GetReleaseSet() []*Release { return nil } -type DescribeReleaseRequest struct { - ReleaseName *wrappers.StringValue `protobuf:"bytes,1,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` - Status *wrappers.StringValue `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - RuntimeId *wrappers.StringValue `protobuf:"bytes,3,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DescribeReleaseRequest) Reset() { *m = DescribeReleaseRequest{} } -func (m *DescribeReleaseRequest) String() string { return proto.CompactTextString(m) } -func (*DescribeReleaseRequest) ProtoMessage() {} -func (*DescribeReleaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{3} -} - -func (m *DescribeReleaseRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DescribeReleaseRequest.Unmarshal(m, b) -} -func (m *DescribeReleaseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DescribeReleaseRequest.Marshal(b, m, deterministic) -} -func (m *DescribeReleaseRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DescribeReleaseRequest.Merge(m, src) -} -func (m *DescribeReleaseRequest) XXX_Size() int { - return xxx_messageInfo_DescribeReleaseRequest.Size(m) -} -func (m *DescribeReleaseRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DescribeReleaseRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_DescribeReleaseRequest proto.InternalMessageInfo - -func (m *DescribeReleaseRequest) GetReleaseName() *wrappers.StringValue { - if m != nil { - return m.ReleaseName - } - return nil -} - -func (m *DescribeReleaseRequest) GetStatus() *wrappers.StringValue { - if m != nil { - return m.Status - } - return nil -} - -func (m *DescribeReleaseRequest) GetRuntimeId() *wrappers.StringValue { - if m != nil { - return m.RuntimeId - } - return nil -} - -type DescribeReleaseResponse struct { - Workload map[string]string `protobuf:"bytes,1,rep,name=workload,proto3" json:"workload,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DescribeReleaseResponse) Reset() { *m = DescribeReleaseResponse{} } -func (m *DescribeReleaseResponse) String() string { return proto.CompactTextString(m) } -func (*DescribeReleaseResponse) ProtoMessage() {} -func (*DescribeReleaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{4} -} - -func (m *DescribeReleaseResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DescribeReleaseResponse.Unmarshal(m, b) -} -func (m *DescribeReleaseResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DescribeReleaseResponse.Marshal(b, m, deterministic) -} -func (m *DescribeReleaseResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DescribeReleaseResponse.Merge(m, src) -} -func (m *DescribeReleaseResponse) XXX_Size() int { - return xxx_messageInfo_DescribeReleaseResponse.Size(m) -} -func (m *DescribeReleaseResponse) XXX_DiscardUnknown() { - xxx_messageInfo_DescribeReleaseResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_DescribeReleaseResponse proto.InternalMessageInfo - -func (m *DescribeReleaseResponse) GetWorkload() map[string]string { - if m != nil { - return m.Workload - } - return nil -} - type CreateReleaseRequest struct { // required, id of app to run in cluster AppId *wrappers.StringValue `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` @@ -355,9 +237,7 @@ type CreateReleaseRequest struct { // release name ReleaseName *wrappers.StringValue `protobuf:"bytes,4,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` // namespace - Namespace *wrappers.StringValue `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` - // custom value - Values *wrappers.StringValue `protobuf:"bytes,6,opt,name=values,proto3" json:"values,omitempty"` + Namespace *wrappers.StringValue `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -367,7 +247,7 @@ func (m *CreateReleaseRequest) Reset() { *m = CreateReleaseRequest{} } func (m *CreateReleaseRequest) String() string { return proto.CompactTextString(m) } func (*CreateReleaseRequest) ProtoMessage() {} func (*CreateReleaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{5} + return fileDescriptor_141ba45979af1a8e, []int{3} } func (m *CreateReleaseRequest) XXX_Unmarshal(b []byte) error { @@ -423,13 +303,6 @@ func (m *CreateReleaseRequest) GetNamespace() *wrappers.StringValue { return nil } -func (m *CreateReleaseRequest) GetValues() *wrappers.StringValue { - if m != nil { - return m.Values - } - return nil -} - type CreateReleaseResponse struct { ReleaseName *wrappers.StringValue `protobuf:"bytes,1,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -441,7 +314,7 @@ func (m *CreateReleaseResponse) Reset() { *m = CreateReleaseResponse{} } func (m *CreateReleaseResponse) String() string { return proto.CompactTextString(m) } func (*CreateReleaseResponse) ProtoMessage() {} func (*CreateReleaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{6} + return fileDescriptor_141ba45979af1a8e, []int{4} } func (m *CreateReleaseResponse) XXX_Unmarshal(b []byte) error { @@ -482,7 +355,7 @@ func (m *UpgradeReleaseRequest) Reset() { *m = UpgradeReleaseRequest{} } func (m *UpgradeReleaseRequest) String() string { return proto.CompactTextString(m) } func (*UpgradeReleaseRequest) ProtoMessage() {} func (*UpgradeReleaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{7} + return fileDescriptor_141ba45979af1a8e, []int{5} } func (m *UpgradeReleaseRequest) XXX_Unmarshal(b []byte) error { @@ -535,7 +408,7 @@ func (m *UpgradeReleaseResponse) Reset() { *m = UpgradeReleaseResponse{} func (m *UpgradeReleaseResponse) String() string { return proto.CompactTextString(m) } func (*UpgradeReleaseResponse) ProtoMessage() {} func (*UpgradeReleaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{8} + return fileDescriptor_141ba45979af1a8e, []int{6} } func (m *UpgradeReleaseResponse) XXX_Unmarshal(b []byte) error { @@ -576,7 +449,7 @@ func (m *RollbackReleaseRequest) Reset() { *m = RollbackReleaseRequest{} func (m *RollbackReleaseRequest) String() string { return proto.CompactTextString(m) } func (*RollbackReleaseRequest) ProtoMessage() {} func (*RollbackReleaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{9} + return fileDescriptor_141ba45979af1a8e, []int{7} } func (m *RollbackReleaseRequest) XXX_Unmarshal(b []byte) error { @@ -630,7 +503,7 @@ func (m *RollbackReleaseResponse) Reset() { *m = RollbackReleaseResponse func (m *RollbackReleaseResponse) String() string { return proto.CompactTextString(m) } func (*RollbackReleaseResponse) ProtoMessage() {} func (*RollbackReleaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{10} + return fileDescriptor_141ba45979af1a8e, []int{8} } func (m *RollbackReleaseResponse) XXX_Unmarshal(b []byte) error { @@ -678,7 +551,7 @@ func (m *DeleteReleaseRequest) Reset() { *m = DeleteReleaseRequest{} } func (m *DeleteReleaseRequest) String() string { return proto.CompactTextString(m) } func (*DeleteReleaseRequest) ProtoMessage() {} func (*DeleteReleaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{11} + return fileDescriptor_141ba45979af1a8e, []int{9} } func (m *DeleteReleaseRequest) XXX_Unmarshal(b []byte) error { @@ -731,7 +604,7 @@ func (m *DeleteReleaseResponse) Reset() { *m = DeleteReleaseResponse{} } func (m *DeleteReleaseResponse) String() string { return proto.CompactTextString(m) } func (*DeleteReleaseResponse) ProtoMessage() {} func (*DeleteReleaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_141ba45979af1a8e, []int{12} + return fileDescriptor_141ba45979af1a8e, []int{10} } func (m *DeleteReleaseResponse) XXX_Unmarshal(b []byte) error { @@ -763,9 +636,6 @@ func init() { proto.RegisterType((*Release)(nil), "openpitrix.Release") proto.RegisterType((*ListReleasesRequest)(nil), "openpitrix.ListReleasesRequest") proto.RegisterType((*ListReleaseResponse)(nil), "openpitrix.ListReleaseResponse") - proto.RegisterType((*DescribeReleaseRequest)(nil), "openpitrix.DescribeReleaseRequest") - proto.RegisterType((*DescribeReleaseResponse)(nil), "openpitrix.DescribeReleaseResponse") - proto.RegisterMapType((map[string]string)(nil), "openpitrix.DescribeReleaseResponse.WorkloadEntry") proto.RegisterType((*CreateReleaseRequest)(nil), "openpitrix.CreateReleaseRequest") proto.RegisterType((*CreateReleaseResponse)(nil), "openpitrix.CreateReleaseResponse") proto.RegisterType((*UpgradeReleaseRequest)(nil), "openpitrix.UpgradeReleaseRequest") @@ -779,68 +649,56 @@ func init() { func init() { proto.RegisterFile("helm.proto", fileDescriptor_141ba45979af1a8e) } var fileDescriptor_141ba45979af1a8e = []byte{ - // 966 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xd7, 0xae, 0x63, 0xa7, 0x7e, 0x8e, 0xf3, 0x67, 0x92, 0xa6, 0x96, 0x5b, 0x11, 0xb3, 0x48, - 0x28, 0x0a, 0xad, 0x4d, 0x9d, 0x22, 0xa1, 0x54, 0x80, 0xd2, 0x06, 0x89, 0x20, 0xca, 0x61, 0xcb, - 0xff, 0x8b, 0x35, 0xb6, 0x27, 0xcb, 0x2a, 0xeb, 0x9d, 0x61, 0x66, 0x9c, 0x34, 0x37, 0x84, 0x38, - 0xf4, 0x8a, 0xf9, 0x0c, 0x1c, 0x38, 0xf3, 0x1d, 0x38, 0xc1, 0x05, 0xbe, 0x02, 0x1f, 0x82, 0x23, - 0x9a, 0xd9, 0xd9, 0xc6, 0xb3, 0xeb, 0x24, 0x76, 0x13, 0xd1, 0x9c, 0xec, 0x9d, 0xf7, 0x7b, 0x6f, - 0xde, 0xfc, 0xde, 0xef, 0xbd, 0x19, 0x80, 0x6f, 0x49, 0x34, 0x68, 0x32, 0x4e, 0x25, 0x45, 0x40, - 0x19, 0x89, 0x59, 0x28, 0x79, 0xf8, 0xac, 0x7e, 0x3b, 0xa0, 0x34, 0x88, 0x48, 0x4b, 0x5b, 0xba, - 0xc3, 0x83, 0x16, 0x19, 0x30, 0x79, 0x92, 0x00, 0xeb, 0xaf, 0x65, 0x8d, 0xc7, 0x1c, 0x33, 0x46, - 0xb8, 0x30, 0xf6, 0x8d, 0xac, 0x5d, 0x86, 0x03, 0x22, 0x24, 0x1e, 0x30, 0x03, 0xb8, 0x63, 0x00, - 0x98, 0x85, 0x2d, 0x1c, 0xc7, 0x54, 0x62, 0x19, 0xd2, 0x38, 0x75, 0xbf, 0xab, 0x7f, 0x7a, 0xf7, - 0x02, 0x12, 0xdf, 0x13, 0xc7, 0x38, 0x08, 0x08, 0x6f, 0x51, 0xa6, 0x11, 0x79, 0xb4, 0xf7, 0x7c, - 0x0e, 0xe6, 0x7d, 0x12, 0x11, 0x2c, 0x08, 0xfa, 0x00, 0x16, 0x78, 0xf2, 0xb7, 0x13, 0xe3, 0x01, - 0xa9, 0x39, 0x0d, 0x67, 0xb3, 0xd2, 0xbe, 0xd3, 0x4c, 0xb6, 0x6b, 0xa6, 0xf9, 0x34, 0x9f, 0x4a, - 0x1e, 0xc6, 0xc1, 0x17, 0x38, 0x1a, 0x12, 0xbf, 0x62, 0x3c, 0x3e, 0xc5, 0x03, 0x82, 0xde, 0x81, - 0xf9, 0x23, 0xc2, 0x45, 0x48, 0xe3, 0x9a, 0xab, 0x7d, 0x6f, 0xe7, 0x7c, 0xf7, 0x63, 0xb9, 0xdd, - 0x4e, 0x5c, 0x53, 0x2c, 0xda, 0x81, 0xb2, 0xda, 0x4f, 0x30, 0xdc, 0x23, 0xb5, 0xc2, 0x14, 0x9b, - 0x9e, 0xc2, 0xd1, 0x03, 0x28, 0x09, 0x89, 0xe5, 0x50, 0xd4, 0xe6, 0xa6, 0x70, 0x34, 0x58, 0xf4, - 0x3e, 0x54, 0xfa, 0x44, 0xf4, 0x78, 0xa8, 0x79, 0xa9, 0x15, 0xa7, 0x39, 0xe8, 0x98, 0x03, 0xfa, - 0x18, 0x56, 0x0f, 0x42, 0x2e, 0x64, 0xa7, 0x4f, 0x58, 0x44, 0x4f, 0x48, 0xbf, 0xa3, 0x6a, 0x54, - 0x2b, 0xe9, 0x38, 0xf5, 0x5c, 0x9c, 0xcf, 0xd2, 0x02, 0xfa, 0x2b, 0xda, 0x6d, 0xcf, 0x78, 0xa9, - 0x75, 0xf4, 0x11, 0xa0, 0x08, 0xe7, 0x42, 0xcd, 0x5f, 0x18, 0x6a, 0x59, 0x79, 0x59, 0x91, 0xde, - 0x83, 0x85, 0x3e, 0x89, 0x88, 0x4c, 0x63, 0xdc, 0xb8, 0x30, 0x46, 0xc5, 0xe0, 0xd5, 0x8a, 0xf7, - 0x9b, 0x0b, 0xab, 0x9f, 0x84, 0x42, 0x1a, 0x39, 0x08, 0x9f, 0x7c, 0x37, 0x24, 0x42, 0xa2, 0x87, - 0x00, 0x7c, 0x18, 0xab, 0x88, 0x9d, 0xb0, 0x3f, 0x95, 0x28, 0xca, 0x06, 0xbf, 0xdf, 0xcf, 0x69, - 0xca, 0x9d, 0x55, 0x53, 0xff, 0xbf, 0x38, 0xd6, 0xa0, 0x18, 0x85, 0x83, 0x50, 0x6a, 0x59, 0x54, - 0xfd, 0xe4, 0x03, 0xad, 0x43, 0x89, 0x1e, 0x1c, 0x08, 0x22, 0x75, 0x95, 0xab, 0xbe, 0xf9, 0xf2, - 0x22, 0x8b, 0x34, 0x9f, 0x08, 0x46, 0x63, 0x41, 0xd0, 0x06, 0x54, 0x24, 0x95, 0x38, 0xea, 0xf4, - 0xe8, 0x30, 0x96, 0x9a, 0xb5, 0xaa, 0x0f, 0x7a, 0xe9, 0xb1, 0x5a, 0x41, 0x0f, 0x20, 0x3d, 0x66, - 0x47, 0x05, 0x75, 0x1b, 0x85, 0xcd, 0x4a, 0x7b, 0xb5, 0x79, 0x3a, 0x44, 0x9a, 0x69, 0x48, 0x30, - 0xb8, 0xa7, 0x44, 0x7a, 0x7f, 0x38, 0xb0, 0xbe, 0xa7, 0x85, 0xd8, 0x25, 0x2f, 0xb6, 0x4c, 0xca, - 0x74, 0xe9, 0xee, 0x3d, 0x65, 0xcb, 0x9d, 0x81, 0x2d, 0x5b, 0x1d, 0x85, 0x99, 0xd4, 0xe1, 0xfd, - 0xe2, 0xc0, 0xad, 0xdc, 0x71, 0x0c, 0x83, 0x4f, 0xe0, 0xc6, 0x31, 0xe5, 0x87, 0x11, 0xc5, 0x4a, - 0x74, 0x8a, 0x9d, 0xfb, 0xe3, 0xec, 0x9c, 0xe1, 0xd6, 0xfc, 0xd2, 0xf8, 0x7c, 0x18, 0x4b, 0x7e, - 0xe2, 0xbf, 0x08, 0x51, 0x7f, 0x08, 0x55, 0xcb, 0x84, 0x96, 0xa1, 0x70, 0x48, 0x4e, 0x34, 0x4d, - 0x65, 0x5f, 0xfd, 0x55, 0x85, 0x3f, 0x52, 0x19, 0xea, 0xf3, 0x97, 0xfd, 0xe4, 0x63, 0xc7, 0x7d, - 0xd7, 0xf1, 0xfe, 0x75, 0x61, 0xed, 0x31, 0x27, 0x58, 0x66, 0x49, 0xdf, 0x86, 0x12, 0x66, 0x6c, - 0xda, 0xbe, 0x28, 0x62, 0xc6, 0xf6, 0xfb, 0x8a, 0x32, 0x33, 0xfa, 0x94, 0xe3, 0x34, 0x64, 0x97, - 0x0d, 0x3e, 0x71, 0x7e, 0x69, 0xbe, 0x73, 0x1a, 0x99, 0xbb, 0x54, 0x37, 0x16, 0x67, 0xee, 0x46, - 0xcd, 0xa8, 0x30, 0x73, 0xf2, 0x02, 0x7d, 0x25, 0x58, 0xef, 0x2b, 0xb8, 0x99, 0x61, 0xde, 0xe8, - 0xe3, 0xb2, 0x7a, 0xf7, 0xfe, 0x72, 0xe0, 0xe6, 0xe7, 0x2c, 0xe0, 0xb8, 0x9f, 0xad, 0xea, 0xab, - 0x9d, 0x78, 0xb6, 0x3c, 0x0a, 0x33, 0xc9, 0xc3, 0xfb, 0x1a, 0xd6, 0xb3, 0x67, 0xba, 0x2a, 0xbe, - 0xfe, 0x74, 0x60, 0xdd, 0xa7, 0x51, 0xd4, 0xc5, 0xbd, 0xc3, 0x6b, 0x45, 0xd8, 0xd8, 0xb3, 0xa3, - 0x30, 0xfd, 0xb3, 0xc3, 0xfb, 0xc9, 0x81, 0x5b, 0xb9, 0xf3, 0x5c, 0x11, 0x59, 0x2f, 0xf9, 0x14, - 0xf2, 0x7e, 0x77, 0x60, 0x6d, 0x4f, 0xdf, 0xc9, 0xd7, 0x8a, 0xe1, 0xb7, 0xa1, 0xc8, 0x86, 0x3c, - 0x48, 0x2f, 0xe0, 0xfc, 0x93, 0xe2, 0x11, 0xa5, 0x91, 0x99, 0x71, 0x1a, 0xa8, 0xda, 0x36, 0x73, - 0x8e, 0x2b, 0x62, 0xb6, 0xfd, 0x6b, 0x09, 0x16, 0x4d, 0xd0, 0x27, 0x38, 0xc6, 0x01, 0xe1, 0xe8, - 0x19, 0x2c, 0x8c, 0x3f, 0x5c, 0xd0, 0xc6, 0xf8, 0x45, 0x31, 0xe1, 0x49, 0x53, 0x3f, 0x0b, 0x90, - 0x66, 0xe9, 0xbd, 0x39, 0xda, 0x5d, 0x42, 0x55, 0x65, 0x69, 0x98, 0xbd, 0xc5, 0x0f, 0x7f, 0xff, - 0xf3, 0xb3, 0xbb, 0x88, 0x16, 0x5a, 0x47, 0xf7, 0x5b, 0xe9, 0x1a, 0xfa, 0xd1, 0x81, 0xa5, 0xcc, - 0x4d, 0x84, 0xbc, 0x73, 0xaf, 0xa9, 0x24, 0x81, 0x37, 0xa6, 0xb8, 0xca, 0xbc, 0xcd, 0xd1, 0x2e, - 0x42, 0xcb, 0xa9, 0x35, 0x4d, 0x44, 0xe7, 0x51, 0x45, 0x95, 0xb1, 0x3c, 0xd0, 0xf7, 0x0e, 0x54, - 0xad, 0x29, 0x89, 0x1a, 0xe3, 0x1b, 0x4c, 0xba, 0xba, 0xea, 0xaf, 0x9f, 0x83, 0x30, 0x09, 0x6c, - 0x8d, 0x76, 0x97, 0xd1, 0x62, 0x62, 0x6b, 0xf8, 0x63, 0xdb, 0xaf, 0xd4, 0x2d, 0x1a, 0x76, 0x9c, - 0x2d, 0xc5, 0xc4, 0xa2, 0x3d, 0x79, 0x90, 0xb5, 0xc3, 0xc4, 0x49, 0x5b, 0xf7, 0xce, 0x83, 0x98, - 0x2c, 0xde, 0x1a, 0xed, 0xae, 0xa0, 0x25, 0x63, 0xb4, 0xd3, 0x68, 0xe7, 0xd2, 0x78, 0xee, 0xc0, - 0x52, 0xa6, 0xa9, 0xed, 0x82, 0x4c, 0x9e, 0x60, 0x76, 0x41, 0xce, 0x98, 0x0a, 0xde, 0x5d, 0x5d, - 0x90, 0xd4, 0x6a, 0xa7, 0xe2, 0xe5, 0x52, 0x51, 0x45, 0xb1, 0x7a, 0xc0, 0x2e, 0xca, 0xa4, 0x36, - 0xb7, 0x8b, 0x32, 0xb1, 0x81, 0x4c, 0x51, 0x12, 0x9b, 0x9d, 0xc2, 0x56, 0x36, 0x85, 0x47, 0x73, - 0xdf, 0xb8, 0xac, 0xdb, 0x2d, 0xe9, 0xa6, 0xda, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xfa, 0xa8, - 0xa4, 0x63, 0xae, 0x0e, 0x00, 0x00, + // 773 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0x96, 0xf3, 0x57, 0x3a, 0x09, 0x69, 0xbb, 0xfd, 0x21, 0x72, 0x2b, 0x1a, 0x8c, 0x90, 0xaa, + 0xd2, 0x26, 0x90, 0xc2, 0xa5, 0x08, 0x50, 0x4a, 0x0f, 0x94, 0xbf, 0x43, 0x0a, 0x08, 0xb8, 0x44, + 0x9b, 0x78, 0x6b, 0x2c, 0x1c, 0x7b, 0xd9, 0xdd, 0xb4, 0xf4, 0x86, 0x10, 0x48, 0xbd, 0x12, 0x9e, + 0x80, 0x57, 0xe1, 0xc0, 0x8d, 0x0b, 0xbc, 0x02, 0x0f, 0x82, 0x6c, 0xaf, 0x69, 0xd6, 0x0e, 0x6d, + 0x4a, 0x2b, 0xe8, 0x29, 0x91, 0xe7, 0xfb, 0xbe, 0x99, 0x9d, 0x6f, 0x76, 0x16, 0xe0, 0x25, 0x71, + 0x3a, 0x15, 0xca, 0x3c, 0xe1, 0x21, 0xf0, 0x28, 0x71, 0xa9, 0x2d, 0x98, 0xfd, 0x46, 0x9f, 0xb5, + 0x3c, 0xcf, 0x72, 0x48, 0x35, 0x88, 0xb4, 0xba, 0x5b, 0x55, 0xd2, 0xa1, 0x62, 0x37, 0x04, 0xea, + 0xe7, 0xe3, 0xc1, 0x1d, 0x86, 0x29, 0x25, 0x8c, 0xcb, 0xf8, 0x7c, 0x3c, 0x2e, 0xec, 0x0e, 0xe1, + 0x02, 0x77, 0xa8, 0x04, 0xcc, 0x49, 0x00, 0xa6, 0x76, 0x15, 0xbb, 0xae, 0x27, 0xb0, 0xb0, 0x3d, + 0x37, 0xa2, 0x2f, 0x05, 0x3f, 0xed, 0x65, 0x8b, 0xb8, 0xcb, 0x7c, 0x07, 0x5b, 0x16, 0x61, 0x55, + 0x8f, 0x06, 0x88, 0x24, 0xda, 0xd8, 0xcb, 0xc0, 0x48, 0x83, 0x38, 0x04, 0x73, 0x82, 0x6e, 0x43, + 0x81, 0x85, 0x7f, 0x9b, 0x2e, 0xee, 0x90, 0x92, 0x56, 0xd6, 0x16, 0xf2, 0xb5, 0xb9, 0x4a, 0x98, + 0xae, 0x12, 0xd5, 0x53, 0xd9, 0x14, 0xcc, 0x76, 0xad, 0xa7, 0xd8, 0xe9, 0x92, 0x46, 0x5e, 0x32, + 0x1e, 0xe1, 0x0e, 0x41, 0xd7, 0x61, 0x64, 0x9b, 0x30, 0x6e, 0x7b, 0x6e, 0x29, 0x15, 0x70, 0x67, + 0x13, 0xdc, 0x0d, 0x57, 0xac, 0xd4, 0x42, 0x6a, 0x84, 0x45, 0xab, 0x30, 0xea, 0xe7, 0xe3, 0x14, + 0xb7, 0x49, 0x29, 0x3d, 0x44, 0xd2, 0x7d, 0x38, 0xba, 0x06, 0x39, 0x2e, 0xb0, 0xe8, 0xf2, 0x52, + 0x66, 0x08, 0xa2, 0xc4, 0xa2, 0x5b, 0x90, 0x37, 0x09, 0x6f, 0x33, 0x3b, 0xe8, 0x4b, 0x29, 0x3b, + 0xcc, 0x41, 0xfb, 0x08, 0xe8, 0x1e, 0x4c, 0x6e, 0xd9, 0x8c, 0x8b, 0xa6, 0x49, 0xa8, 0xe3, 0xed, + 0x12, 0xb3, 0xe9, 0x7b, 0x54, 0xca, 0x05, 0x3a, 0x7a, 0x42, 0xe7, 0x71, 0x64, 0x60, 0x63, 0x22, + 0xa0, 0xad, 0x4b, 0x96, 0xff, 0x1d, 0xdd, 0x05, 0xe4, 0xe0, 0x84, 0xd4, 0xc8, 0xa1, 0x52, 0xe3, + 0x3e, 0x4b, 0x51, 0xba, 0x09, 0x05, 0x93, 0x38, 0x44, 0x44, 0x1a, 0x67, 0x0e, 0xd5, 0xc8, 0x4b, + 0xbc, 0xff, 0xc5, 0xf8, 0x90, 0x82, 0xc9, 0x07, 0x36, 0x17, 0x72, 0x1c, 0x78, 0x83, 0xbc, 0xee, + 0x12, 0x2e, 0xd0, 0x0d, 0x00, 0xd6, 0x75, 0x7d, 0xc5, 0xa6, 0x6d, 0x0e, 0x35, 0x14, 0xa3, 0x12, + 0xbf, 0x61, 0x26, 0x66, 0x2a, 0x75, 0xd4, 0x99, 0xfa, 0xe7, 0xc3, 0x61, 0xdc, 0x57, 0xda, 0xd0, + 0x20, 0x9c, 0x7a, 0x2e, 0xf7, 0xc5, 0xa2, 0xba, 0x9a, 0x9c, 0x88, 0x92, 0x56, 0x4e, 0x2f, 0xe4, + 0x6b, 0x93, 0x95, 0xfd, 0x5b, 0x5f, 0x89, 0x18, 0x20, 0x71, 0x9b, 0x44, 0x18, 0x5f, 0x52, 0x30, + 0x75, 0x87, 0x11, 0x2c, 0xc8, 0x6f, 0xbd, 0xb0, 0xab, 0x2b, 0x90, 0xc3, 0x94, 0x0e, 0xdb, 0xd1, + 0x2c, 0xa6, 0x74, 0xc3, 0xf4, 0xad, 0x90, 0x97, 0xc6, 0x27, 0x0e, 0xd3, 0xcb, 0x51, 0x89, 0x0f, + 0xc9, 0x7d, 0x3e, 0xa6, 0x8f, 0xe7, 0x63, 0xe6, 0x58, 0x3e, 0x66, 0x8f, 0xe4, 0xa3, 0xf1, 0x0c, + 0xa6, 0x63, 0x3d, 0x94, 0x9e, 0x1c, 0x77, 0x63, 0x19, 0xdf, 0x35, 0x98, 0x7e, 0x42, 0x2d, 0x86, + 0xcd, 0xb8, 0x3f, 0xff, 0x77, 0xea, 0x55, 0xa3, 0xd3, 0x47, 0x32, 0xda, 0x78, 0x0e, 0x33, 0xf1, + 0x33, 0x9d, 0x54, 0xbf, 0xbe, 0x69, 0x30, 0xd3, 0xf0, 0x1c, 0xa7, 0x85, 0xdb, 0xaf, 0x4e, 0x55, + 0xc3, 0xfa, 0x9e, 0x9e, 0xf4, 0xf0, 0x4f, 0x8f, 0xf1, 0x51, 0x83, 0x73, 0x89, 0xf3, 0x9c, 0x50, + 0xb3, 0xfe, 0xf2, 0x39, 0x34, 0xbe, 0x6a, 0x30, 0xb5, 0x1e, 0xec, 0xe5, 0x53, 0xd5, 0xe1, 0x2b, + 0x90, 0xa5, 0x5d, 0x66, 0x45, 0x4b, 0x38, 0xf9, 0xac, 0xac, 0x79, 0x9e, 0x23, 0xb7, 0x55, 0x00, + 0xf4, 0xaf, 0x6d, 0xec, 0x1c, 0x27, 0xd4, 0xd9, 0xda, 0xe7, 0x2c, 0x14, 0xa5, 0xe8, 0x43, 0xec, + 0x62, 0x8b, 0x30, 0xb4, 0x03, 0x85, 0xfe, 0xc7, 0x0b, 0xcd, 0xf7, 0x6f, 0xe6, 0x01, 0xcf, 0x9a, + 0xfe, 0x27, 0x40, 0x54, 0xa5, 0x71, 0xa9, 0x57, 0x2f, 0xa2, 0x40, 0xb4, 0x2c, 0x43, 0xef, 0x7e, + 0xfc, 0xfc, 0x94, 0x2a, 0xa2, 0x42, 0x75, 0xfb, 0x6a, 0x95, 0x45, 0x89, 0xde, 0x6a, 0x70, 0x56, + 0xd9, 0x4e, 0xa8, 0xdc, 0xaf, 0x3c, 0x68, 0xf9, 0xeb, 0x17, 0x0e, 0x40, 0xc8, 0xec, 0x8b, 0xbd, + 0xfa, 0x38, 0x2a, 0x86, 0x31, 0x25, 0xff, 0x84, 0xae, 0xe4, 0x5f, 0xd5, 0x16, 0xd1, 0x7b, 0x0d, + 0x8a, 0xea, 0x8d, 0x47, 0x4a, 0x86, 0x81, 0x1b, 0x4e, 0x37, 0x0e, 0x82, 0xc8, 0x2a, 0x2e, 0xf7, + 0xea, 0x13, 0x68, 0x4c, 0x06, 0xd5, 0x32, 0x6a, 0x89, 0x32, 0xf6, 0x34, 0x18, 0x8b, 0x5d, 0x26, + 0xa4, 0x24, 0x19, 0xbc, 0x39, 0xf4, 0x8b, 0x07, 0x62, 0x64, 0x25, 0x4b, 0xbd, 0x3a, 0x42, 0xe3, + 0x51, 0x54, 0x2d, 0xc5, 0x48, 0x94, 0xe2, 0x9b, 0xa2, 0xcc, 0x9e, 0x6a, 0xca, 0xa0, 0xeb, 0xa5, + 0x9a, 0x32, 0x70, 0x70, 0xa5, 0x29, 0x61, 0x4c, 0x2d, 0x61, 0x31, 0x5e, 0xc2, 0x5a, 0xe6, 0x45, + 0x8a, 0xb6, 0x5a, 0xb9, 0x60, 0x98, 0x57, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff, 0x0a, 0xf9, 0x10, + 0xa6, 0x2a, 0x0c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -856,7 +714,6 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type ReleaseManagerClient interface { ListReleases(ctx context.Context, in *ListReleasesRequest, opts ...grpc.CallOption) (*ListReleaseResponse, error) - DescribeRelease(ctx context.Context, in *DescribeReleaseRequest, opts ...grpc.CallOption) (*DescribeReleaseResponse, error) CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*CreateReleaseResponse, error) UpgradeRelease(ctx context.Context, in *UpgradeReleaseRequest, opts ...grpc.CallOption) (*UpgradeReleaseResponse, error) RollbackRelease(ctx context.Context, in *RollbackReleaseRequest, opts ...grpc.CallOption) (*RollbackReleaseResponse, error) @@ -880,15 +737,6 @@ func (c *releaseManagerClient) ListReleases(ctx context.Context, in *ListRelease return out, nil } -func (c *releaseManagerClient) DescribeRelease(ctx context.Context, in *DescribeReleaseRequest, opts ...grpc.CallOption) (*DescribeReleaseResponse, error) { - out := new(DescribeReleaseResponse) - err := c.cc.Invoke(ctx, "/openpitrix.ReleaseManager/DescribeRelease", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *releaseManagerClient) CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*CreateReleaseResponse, error) { out := new(CreateReleaseResponse) err := c.cc.Invoke(ctx, "/openpitrix.ReleaseManager/CreateRelease", in, out, opts...) @@ -928,7 +776,6 @@ func (c *releaseManagerClient) DeleteRelease(ctx context.Context, in *DeleteRele // ReleaseManagerServer is the server API for ReleaseManager service. type ReleaseManagerServer interface { ListReleases(context.Context, *ListReleasesRequest) (*ListReleaseResponse, error) - DescribeRelease(context.Context, *DescribeReleaseRequest) (*DescribeReleaseResponse, error) CreateRelease(context.Context, *CreateReleaseRequest) (*CreateReleaseResponse, error) UpgradeRelease(context.Context, *UpgradeReleaseRequest) (*UpgradeReleaseResponse, error) RollbackRelease(context.Context, *RollbackReleaseRequest) (*RollbackReleaseResponse, error) @@ -942,9 +789,6 @@ type UnimplementedReleaseManagerServer struct { func (*UnimplementedReleaseManagerServer) ListReleases(ctx context.Context, req *ListReleasesRequest) (*ListReleaseResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListReleases not implemented") } -func (*UnimplementedReleaseManagerServer) DescribeRelease(ctx context.Context, req *DescribeReleaseRequest) (*DescribeReleaseResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DescribeRelease not implemented") -} func (*UnimplementedReleaseManagerServer) CreateRelease(ctx context.Context, req *CreateReleaseRequest) (*CreateReleaseResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateRelease not implemented") } @@ -980,24 +824,6 @@ func _ReleaseManager_ListReleases_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } -func _ReleaseManager_DescribeRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DescribeReleaseRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReleaseManagerServer).DescribeRelease(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/openpitrix.ReleaseManager/DescribeRelease", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReleaseManagerServer).DescribeRelease(ctx, req.(*DescribeReleaseRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _ReleaseManager_CreateRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateReleaseRequest) if err := dec(in); err != nil { @@ -1078,10 +904,6 @@ var _ReleaseManager_serviceDesc = grpc.ServiceDesc{ MethodName: "ListReleases", Handler: _ReleaseManager_ListReleases_Handler, }, - { - MethodName: "DescribeRelease", - Handler: _ReleaseManager_DescribeRelease_Handler, - }, { MethodName: "CreateRelease", Handler: _ReleaseManager_CreateRelease_Handler, diff --git a/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.gw.go b/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.gw.go index 50a29a733..0b1360a9b 100644 --- a/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.gw.go +++ b/vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.gw.go @@ -64,39 +64,6 @@ func local_request_ReleaseManager_ListReleases_0(ctx context.Context, marshaler } -var ( - filter_ReleaseManager_DescribeRelease_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_ReleaseManager_DescribeRelease_0(ctx context.Context, marshaler runtime.Marshaler, client ReleaseManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DescribeReleaseRequest - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReleaseManager_DescribeRelease_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.DescribeRelease(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ReleaseManager_DescribeRelease_0(ctx context.Context, marshaler runtime.Marshaler, server ReleaseManagerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DescribeReleaseRequest - var metadata runtime.ServerMetadata - - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ReleaseManager_DescribeRelease_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.DescribeRelease(ctx, &protoReq) - return msg, metadata, err - -} - func request_ReleaseManager_CreateRelease_0(ctx context.Context, marshaler runtime.Marshaler, client ReleaseManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CreateReleaseRequest var metadata runtime.ServerMetadata @@ -258,26 +225,6 @@ func RegisterReleaseManagerHandlerServer(ctx context.Context, mux *runtime.Serve }) - mux.Handle("GET", pattern_ReleaseManager_DescribeRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ReleaseManager_DescribeRelease_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ReleaseManager_DescribeRelease_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("PUT", pattern_ReleaseManager_CreateRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -419,26 +366,6 @@ func RegisterReleaseManagerHandlerClient(ctx context.Context, mux *runtime.Serve }) - mux.Handle("GET", pattern_ReleaseManager_DescribeRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_ReleaseManager_DescribeRelease_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ReleaseManager_DescribeRelease_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("PUT", pattern_ReleaseManager_CreateRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -525,8 +452,6 @@ func RegisterReleaseManagerHandlerClient(ctx context.Context, mux *runtime.Serve var ( pattern_ReleaseManager_ListReleases_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "releases"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ReleaseManager_DescribeRelease_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "release"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ReleaseManager_CreateRelease_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "releases"}, "", runtime.AssumeColonVerbOpt(true))) pattern_ReleaseManager_UpgradeRelease_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "releases"}, "", runtime.AssumeColonVerbOpt(true))) @@ -539,8 +464,6 @@ var ( var ( forward_ReleaseManager_ListReleases_0 = runtime.ForwardResponseMessage - forward_ReleaseManager_DescribeRelease_0 = runtime.ForwardResponseMessage - forward_ReleaseManager_CreateRelease_0 = runtime.ForwardResponseMessage forward_ReleaseManager_UpgradeRelease_0 = runtime.ForwardResponseMessage diff --git a/vendor/openpitrix.io/openpitrix/pkg/pb/runtime_provider.pb.go b/vendor/openpitrix.io/openpitrix/pkg/pb/runtime_provider.pb.go index b9b1f3fe9..c3e0a7879 100644 --- a/vendor/openpitrix.io/openpitrix/pkg/pb/runtime_provider.pb.go +++ b/vendor/openpitrix.io/openpitrix/pkg/pb/runtime_provider.pb.go @@ -126,12 +126,10 @@ type ParseClusterConfRequest struct { // required, configure Conf *wrappers.StringValue `protobuf:"bytes,3,opt,name=conf,proto3" json:"conf,omitempty"` // cluster in the runtime - Cluster *Cluster `protobuf:"bytes,4,opt,name=cluster,proto3" json:"cluster,omitempty"` - // kubernetes namespace - Namespace *wrappers.StringValue `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Cluster *Cluster `protobuf:"bytes,4,opt,name=cluster,proto3" json:"cluster,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ParseClusterConfRequest) Reset() { *m = ParseClusterConfRequest{} } @@ -187,13 +185,6 @@ func (m *ParseClusterConfRequest) GetCluster() *Cluster { return nil } -func (m *ParseClusterConfRequest) GetNamespace() *wrappers.StringValue { - if m != nil { - return m.Namespace - } - return nil -} - type ParseClusterConfResponse struct { // cluster Cluster *Cluster `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` @@ -1153,75 +1144,74 @@ func init() { func init() { proto.RegisterFile("runtime_provider.proto", fileDescriptor_2998074df425fa49) } var fileDescriptor_2998074df425fa49 = []byte{ - // 1073 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x4f, 0xdc, 0x46, - 0x14, 0x96, 0x77, 0x81, 0xb0, 0x0f, 0xa1, 0xc0, 0xf0, 0xcb, 0xb5, 0x12, 0x7e, 0x38, 0xa9, 0x94, - 0xd2, 0xb2, 0x44, 0xa1, 0x87, 0xa8, 0xa8, 0x3d, 0x64, 0x83, 0xd4, 0x8d, 0x92, 0x14, 0x19, 0x44, - 0x25, 0xa4, 0x8a, 0x8e, 0xed, 0x61, 0x3b, 0x61, 0x99, 0x99, 0xce, 0xcc, 0x42, 0x93, 0x63, 0x0f, - 0xbd, 0xf4, 0x52, 0xf5, 0xd4, 0x53, 0xae, 0xbd, 0xf6, 0x4f, 0xac, 0xc6, 0x1e, 0x83, 0xed, 0xf5, - 0x6e, 0x5c, 0x8a, 0xda, 0x13, 0xac, 0xdf, 0xf7, 0xbd, 0xf9, 0xde, 0x9b, 0x99, 0x6f, 0x1e, 0x2c, - 0xcb, 0x01, 0xd3, 0xf4, 0x9c, 0x9c, 0x08, 0xc9, 0x2f, 0x68, 0x4c, 0x64, 0x5b, 0x48, 0xae, 0x39, - 0x02, 0x2e, 0x08, 0x13, 0x54, 0x4b, 0xfa, 0x93, 0xb7, 0xda, 0xe3, 0xbc, 0xd7, 0x27, 0xdb, 0x49, - 0x24, 0x1c, 0x9c, 0x6e, 0x5f, 0x4a, 0x2c, 0x04, 0x91, 0x2a, 0xc5, 0x7a, 0x6b, 0xe5, 0xb8, 0x49, - 0xa8, 0x34, 0x3e, 0x17, 0x16, 0x70, 0xcf, 0x02, 0xb0, 0xa0, 0xdb, 0x98, 0x31, 0xae, 0xb1, 0xa6, - 0x9c, 0x65, 0xf4, 0xcf, 0x92, 0x3f, 0xd1, 0x56, 0x8f, 0xb0, 0x2d, 0x75, 0x89, 0x7b, 0x3d, 0x22, - 0xb7, 0xb9, 0x48, 0x10, 0x15, 0xe8, 0xd9, 0xa8, 0x3f, 0x50, 0x3a, 0xd3, 0xe9, 0xcd, 0x5a, 0xfd, - 0xf6, 0x67, 0xeb, 0x0d, 0x0f, 0xed, 0xbf, 0xa0, 0xb1, 0x3a, 0x4b, 0xff, 0xf7, 0x7f, 0x73, 0x60, - 0x35, 0x20, 0x3d, 0x6a, 0x88, 0x41, 0x4a, 0xd8, 0xb7, 0xf5, 0x06, 0xe4, 0xc7, 0x01, 0x51, 0x1a, - 0x3d, 0x85, 0xe9, 0xac, 0x05, 0xae, 0xb3, 0xee, 0x3c, 0x9a, 0x79, 0x72, 0xaf, 0x9d, 0xca, 0x6e, - 0x67, 0x75, 0xb5, 0x0f, 0xb4, 0xa4, 0xac, 0x77, 0x84, 0xfb, 0x03, 0x12, 0x5c, 0xa1, 0xd1, 0xe7, - 0x30, 0x15, 0x71, 0x76, 0x4a, 0x7b, 0x6e, 0xa3, 0x06, 0xcf, 0x62, 0xfd, 0x57, 0xb0, 0x36, 0x52, - 0x91, 0x12, 0x9c, 0x29, 0x82, 0x36, 0xa1, 0xc1, 0xcf, 0xac, 0x18, 0x6f, 0x28, 0xe9, 0x33, 0xce, - 0xfb, 0x69, 0xca, 0x06, 0x3f, 0xf3, 0xff, 0x6a, 0xc0, 0xca, 0x3e, 0x96, 0x8a, 0x74, 0xd2, 0xf6, - 0x74, 0x38, 0x3b, 0xcd, 0x4a, 0xdb, 0x05, 0xc8, 0x76, 0x99, 0xc6, 0xb5, 0x8a, 0x6b, 0x59, 0x7c, - 0x37, 0x36, 0xe4, 0x0b, 0x22, 0x15, 0xe5, 0xcc, 0x90, 0xeb, 0x54, 0xd8, 0xb2, 0xf8, 0x6e, 0x8c, - 0x1e, 0xc3, 0x84, 0x29, 0xd7, 0x6d, 0xd6, 0xa0, 0x25, 0x48, 0xb4, 0x05, 0x77, 0xec, 0x06, 0xbb, - 0x13, 0x09, 0x69, 0xa1, 0x7d, 0x7d, 0x12, 0xdb, 0xb6, 0xb8, 0x20, 0xc3, 0xa0, 0x2f, 0xa0, 0xc5, - 0xf0, 0x39, 0x51, 0x02, 0x47, 0xc4, 0x9d, 0xac, 0x23, 0xee, 0x0a, 0xee, 0x77, 0xc1, 0x1d, 0xee, - 0x98, 0x6d, 0x7d, 0x4e, 0x86, 0xf3, 0x61, 0x19, 0xfe, 0x3b, 0x70, 0x0f, 0x44, 0x9f, 0xea, 0x17, - 0x3c, 0xec, 0x32, 0xcd, 0x0f, 0xb1, 0x3a, 0x53, 0xb7, 0xd2, 0xfd, 0x0d, 0x68, 0xbe, 0xe1, 0xa1, - 0x6d, 0xfb, 0xdd, 0xbc, 0x86, 0x17, 0x3c, 0x0c, 0x4c, 0xcc, 0xdf, 0x87, 0x8f, 0x2a, 0xd6, 0xb6, - 0x75, 0xec, 0x40, 0xcb, 0x5c, 0x83, 0x97, 0xf8, 0xed, 0x55, 0x25, 0x4b, 0xf9, 0x2c, 0x87, 0x59, - 0x30, 0xb8, 0xc6, 0xf9, 0x6f, 0x61, 0xf1, 0x6b, 0xcc, 0xe2, 0x3e, 0x39, 0x18, 0x84, 0xe6, 0xeb, - 0xad, 0x54, 0xf2, 0x10, 0x26, 0x4c, 0x2e, 0x5b, 0xca, 0x5c, 0x59, 0x44, 0x90, 0x44, 0xfd, 0x2f, - 0x61, 0xa9, 0xb4, 0xb4, 0x2d, 0x24, 0xa3, 0x3b, 0x63, 0xe9, 0x97, 0x80, 0xbe, 0xc5, 0x54, 0xff, - 0xf7, 0xba, 0x77, 0x61, 0xa1, 0xb0, 0xf0, 0x3f, 0x52, 0xfd, 0xb3, 0x03, 0x8b, 0x9d, 0x1f, 0x48, - 0x64, 0x78, 0x7c, 0x20, 0x23, 0x72, 0x2b, 0xc2, 0x73, 0x47, 0xb8, 0x51, 0xe3, 0x08, 0x77, 0x60, - 0xa9, 0xa4, 0xe1, 0x06, 0x2e, 0xf4, 0x8b, 0x03, 0xe8, 0x39, 0x51, 0x91, 0xa4, 0x21, 0x39, 0x12, - 0xd1, 0xad, 0xd4, 0xb1, 0x03, 0x53, 0x17, 0x22, 0xaa, 0x6b, 0x3e, 0x93, 0x17, 0x22, 0xea, 0xc6, - 0xfe, 0x7b, 0x07, 0x9a, 0x7b, 0x54, 0x18, 0x32, 0xa1, 0xa2, 0xee, 0xaa, 0x93, 0x84, 0x8a, 0xd4, - 0xb5, 0x8c, 0x4b, 0xd4, 0x5a, 0x2f, 0x41, 0x1a, 0x06, 0x8e, 0x63, 0x59, 0xcf, 0xe7, 0x0c, 0xd2, - 0xff, 0xb3, 0x09, 0xcd, 0x23, 0x11, 0xe5, 0xaa, 0x73, 0x6a, 0x57, 0x77, 0x03, 0x81, 0xbb, 0x30, - 0x13, 0x49, 0x82, 0x35, 0x39, 0x31, 0x5d, 0xb5, 0x3a, 0x87, 0x77, 0xf3, 0x30, 0x7b, 0xb8, 0x03, - 0x48, 0xe1, 0xe6, 0x03, 0xfa, 0x0a, 0x66, 0xe2, 0x64, 0x53, 0x93, 0x47, 0xd9, 0xfa, 0xf2, 0xf8, - 0x55, 0xf3, 0x04, 0xf3, 0x40, 0x2a, 0x8d, 0xf5, 0x40, 0xd5, 0x72, 0x68, 0x8b, 0x45, 0x5d, 0x98, - 0xd7, 0x12, 0x33, 0x45, 0x4d, 0x8e, 0x13, 0x9b, 0x60, 0xaa, 0x46, 0x82, 0xb9, 0x6b, 0xda, 0x41, - 0x9a, 0xca, 0x85, 0x3b, 0x6a, 0x10, 0x32, 0xa2, 0x95, 0x7b, 0x67, 0xbd, 0xf9, 0xa8, 0x15, 0x64, - 0x3f, 0x8d, 0xbf, 0x12, 0x2a, 0xdc, 0xe9, 0x61, 0x7f, 0xdd, 0xa3, 0x22, 0x30, 0x31, 0xff, 0x29, - 0x2c, 0x14, 0x8e, 0xb4, 0xbd, 0x16, 0x1b, 0xd0, 0xbc, 0x10, 0x91, 0xdd, 0xb5, 0x02, 0xd3, 0xa0, - 0x4c, 0xcc, 0xff, 0xd5, 0x81, 0xfb, 0x19, 0xd5, 0xde, 0xb7, 0xe7, 0x44, 0x63, 0xda, 0x57, 0xff, - 0xc7, 0x05, 0xff, 0x06, 0x56, 0x47, 0x89, 0xb9, 0xd9, 0xa3, 0xf7, 0x7b, 0x03, 0x96, 0x8f, 0x70, - 0x9f, 0xc6, 0x58, 0x13, 0x3b, 0xc2, 0xdc, 0x4a, 0x5d, 0x8f, 0x61, 0xe2, 0x1d, 0x67, 0x35, 0x4f, - 0xb7, 0x41, 0xa2, 0x97, 0x80, 0xb2, 0xe5, 0x22, 0x49, 0x62, 0xc2, 0x34, 0xc5, 0x7d, 0x7b, 0xc8, - 0xef, 0xe7, 0x6b, 0xb0, 0x32, 0x3b, 0x57, 0xa0, 0x60, 0x5e, 0x96, 0x3f, 0x99, 0xbb, 0xc2, 0x08, - 0x89, 0x4f, 0xd2, 0x1b, 0x60, 0x8f, 0xfb, 0x38, 0xe7, 0x03, 0x03, 0xef, 0x24, 0x68, 0x7f, 0x0f, - 0x56, 0x86, 0x7a, 0x72, 0x03, 0x23, 0x7d, 0xef, 0xc0, 0x62, 0xb6, 0x5b, 0xc7, 0x9c, 0x11, 0xf5, - 0xef, 0xc7, 0xd4, 0xea, 0x26, 0x35, 0x6e, 0xd6, 0x24, 0x7f, 0x0b, 0x96, 0x4a, 0xfa, 0x6c, 0x95, - 0x8b, 0x30, 0x69, 0xf6, 0x44, 0xb9, 0x4e, 0x72, 0xd3, 0xd2, 0x1f, 0x4f, 0xfe, 0x98, 0x86, 0xe5, - 0xd2, 0x98, 0xfb, 0x0a, 0x33, 0xdc, 0x23, 0x12, 0x49, 0x58, 0x19, 0x31, 0x08, 0xa3, 0xcd, 0x82, - 0xac, 0xb1, 0xf3, 0xbb, 0xf7, 0x69, 0x2d, 0xac, 0x15, 0xf9, 0x1d, 0xcc, 0x95, 0x47, 0x3f, 0xf4, - 0x20, 0x9f, 0x60, 0xc4, 0x28, 0xed, 0x3d, 0x1c, 0x0f, 0xb2, 0xe9, 0xbf, 0x87, 0xf9, 0xa1, 0x91, - 0x0c, 0x15, 0xa8, 0xa3, 0xa6, 0x45, 0xef, 0xe3, 0x0f, 0xa0, 0xec, 0x0a, 0x87, 0x30, 0x5b, 0x98, - 0x93, 0xd0, 0x7a, 0x9e, 0x57, 0x35, 0xbd, 0x79, 0x1b, 0x63, 0x10, 0x36, 0xeb, 0x6b, 0x98, 0xc9, - 0x4d, 0x31, 0x68, 0x35, 0xcf, 0x18, 0x9e, 0xab, 0xbc, 0xb5, 0x91, 0x71, 0x9b, 0xef, 0x18, 0xee, - 0x66, 0x87, 0xe4, 0xc0, 0x1a, 0xae, 0x9f, 0xe7, 0x94, 0x82, 0x59, 0xde, 0x07, 0x63, 0x31, 0xd7, - 0x1d, 0x28, 0xcc, 0x2b, 0xc5, 0x0e, 0x54, 0x8d, 0x53, 0xc5, 0x0e, 0x54, 0x0f, 0x3b, 0xaf, 0x61, - 0x26, 0x67, 0xf6, 0xc5, 0x0e, 0x0c, 0x0f, 0x36, 0xc5, 0x0e, 0x54, 0xbd, 0x12, 0x1c, 0x96, 0xab, - 0x4d, 0x17, 0x7d, 0x52, 0x45, 0xad, 0x7c, 0x25, 0xbc, 0xcd, 0x3a, 0xd0, 0xeb, 0x96, 0x97, 0xfc, - 0xa7, 0xd8, 0xf2, 0x6a, 0xc3, 0x2e, 0xb6, 0x7c, 0x94, 0x81, 0x1d, 0xc2, 0x6c, 0xe1, 0xce, 0x17, - 0x5b, 0x5e, 0x65, 0x57, 0xc5, 0x96, 0x57, 0x1a, 0xc6, 0xb3, 0x89, 0xe3, 0x86, 0x08, 0xc3, 0xa9, - 0xc4, 0xbd, 0x76, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x78, 0x6c, 0xff, 0xcb, 0x90, 0x10, 0x00, - 0x00, + // 1059 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x6f, 0xdb, 0x36, + 0x14, 0x86, 0xec, 0xfc, 0x7c, 0x41, 0xd0, 0x44, 0xf9, 0xa5, 0x09, 0x6d, 0x7e, 0xa8, 0x1d, 0xd0, + 0x65, 0x8b, 0x53, 0x34, 0x3b, 0x14, 0x08, 0xb6, 0x43, 0xdd, 0x00, 0x73, 0xd1, 0x76, 0x81, 0x62, + 0x64, 0x40, 0x80, 0x21, 0xa3, 0x24, 0xc6, 0x63, 0xe3, 0x90, 0x1c, 0x49, 0x3b, 0x6b, 0x8f, 0x3b, + 0xec, 0xb2, 0xcb, 0xb0, 0xd3, 0x4e, 0xbd, 0xee, 0x1f, 0xdc, 0x1f, 0x30, 0x50, 0xa2, 0x62, 0x49, + 0x96, 0x3d, 0xcd, 0x33, 0xb6, 0x53, 0x62, 0xf1, 0xfb, 0x1e, 0xdf, 0xf7, 0xf1, 0xf1, 0xf1, 0xc1, + 0xa6, 0xe8, 0x51, 0x45, 0x6e, 0xf0, 0x25, 0x17, 0xac, 0x4f, 0x22, 0x2c, 0x1a, 0x5c, 0x30, 0xc5, + 0x6c, 0x60, 0x1c, 0x53, 0x4e, 0x94, 0x20, 0x3f, 0xba, 0xdb, 0x1d, 0xc6, 0x3a, 0x5d, 0x7c, 0x18, + 0xaf, 0x04, 0xbd, 0xab, 0xc3, 0x5b, 0x81, 0x38, 0xc7, 0x42, 0x26, 0x58, 0x77, 0xa7, 0xb8, 0xae, + 0x03, 0x4a, 0x85, 0x6e, 0xb8, 0x01, 0xdc, 0x37, 0x00, 0xc4, 0xc9, 0x21, 0xa2, 0x94, 0x29, 0xa4, + 0x08, 0xa3, 0x29, 0xfd, 0xb3, 0xf8, 0x4f, 0x78, 0xd0, 0xc1, 0xf4, 0x40, 0xde, 0xa2, 0x4e, 0x07, + 0x8b, 0x43, 0xc6, 0x63, 0x44, 0x09, 0x7a, 0x39, 0xec, 0xf6, 0xa4, 0x4a, 0xf3, 0x74, 0x97, 0x4d, + 0xfe, 0xe6, 0xe7, 0xe2, 0x5b, 0x16, 0x98, 0x7f, 0x41, 0x21, 0x79, 0x9d, 0xfc, 0xef, 0xfd, 0x6a, + 0xc1, 0xb6, 0x8f, 0x3b, 0x44, 0x13, 0xfd, 0x84, 0x70, 0x6a, 0xf4, 0xfa, 0xf8, 0x87, 0x1e, 0x96, + 0xca, 0x7e, 0x06, 0x0b, 0xa9, 0x05, 0x8e, 0xb5, 0x6b, 0x3d, 0x5e, 0x7a, 0x7a, 0xbf, 0x91, 0xa4, + 0xdd, 0x48, 0x75, 0x35, 0xce, 0x94, 0x20, 0xb4, 0x73, 0x8e, 0xba, 0x3d, 0xec, 0xdf, 0xa1, 0xed, + 0xcf, 0x61, 0x2e, 0x64, 0xf4, 0x8a, 0x74, 0x9c, 0x5a, 0x05, 0x9e, 0xc1, 0x7a, 0xaf, 0x61, 0x67, + 0x64, 0x46, 0x92, 0x33, 0x2a, 0xb1, 0xbd, 0x0f, 0x35, 0x76, 0x6d, 0x92, 0x71, 0x87, 0x82, 0x3e, + 0x67, 0xac, 0x9b, 0x84, 0xac, 0xb1, 0x6b, 0xef, 0x4f, 0x0b, 0xb6, 0x4e, 0x91, 0x90, 0xb8, 0x99, + 0xd8, 0xd3, 0x64, 0xf4, 0x2a, 0x95, 0x76, 0x0c, 0x90, 0x9e, 0x32, 0x89, 0x2a, 0x89, 0x5b, 0x34, + 0xf8, 0x56, 0xa4, 0xc9, 0x7d, 0x2c, 0x24, 0x61, 0x54, 0x93, 0xab, 0x28, 0x5c, 0x34, 0xf8, 0x56, + 0x64, 0x3f, 0x81, 0x19, 0x2d, 0xd7, 0xa9, 0x57, 0xa0, 0xc5, 0x48, 0xfb, 0x00, 0xe6, 0xcd, 0x01, + 0x3b, 0x33, 0x31, 0x69, 0xad, 0x31, 0xa8, 0xc4, 0x86, 0x11, 0xe7, 0xa7, 0x18, 0xaf, 0x05, 0xce, + 0xb0, 0x6a, 0x63, 0x5f, 0x26, 0x94, 0x55, 0x21, 0xd4, 0x7b, 0x70, 0xce, 0x78, 0x97, 0xa8, 0x97, + 0x2c, 0x68, 0x51, 0xc5, 0xda, 0x48, 0x5e, 0xcb, 0xa9, 0x38, 0xb8, 0x07, 0xf5, 0xb7, 0x2c, 0x30, + 0xd6, 0xdd, 0xcb, 0xe6, 0xf0, 0x92, 0x05, 0xbe, 0x5e, 0xf3, 0x4e, 0xe1, 0xa3, 0x92, 0xbd, 0x8d, + 0x8e, 0x23, 0x58, 0xd4, 0xa5, 0xfc, 0x0a, 0xbd, 0xbb, 0x53, 0xb2, 0x91, 0x8d, 0xd2, 0x4e, 0x17, + 0xfd, 0x01, 0xce, 0x7b, 0x07, 0xeb, 0x5f, 0x21, 0x1a, 0x75, 0xf1, 0x59, 0x2f, 0xd0, 0x5f, 0xa7, + 0xa2, 0xe4, 0x11, 0xcc, 0xe8, 0x58, 0x46, 0xca, 0x4a, 0x31, 0x09, 0x3f, 0x5e, 0xf5, 0xbe, 0x80, + 0x8d, 0xc2, 0xd6, 0x46, 0x48, 0x4a, 0xb7, 0xc6, 0xd2, 0x6f, 0xc1, 0xfe, 0x06, 0x11, 0xf5, 0xdf, + 0xe7, 0x7d, 0x0c, 0x6b, 0xb9, 0x8d, 0xff, 0x51, 0xd6, 0x3f, 0x59, 0xb0, 0xde, 0xfc, 0x1e, 0x87, + 0x9a, 0xc7, 0x7a, 0x22, 0xc4, 0x53, 0x49, 0x3c, 0x53, 0xc2, 0xb5, 0x0a, 0x25, 0xdc, 0x84, 0x8d, + 0x42, 0x0e, 0x13, 0x74, 0x92, 0x9f, 0x2d, 0xb0, 0x5f, 0x60, 0x19, 0x0a, 0x12, 0xe0, 0x73, 0x1e, + 0x4e, 0x45, 0xc7, 0x11, 0xcc, 0xf5, 0x79, 0x58, 0xb5, 0x81, 0xcc, 0xf6, 0x79, 0xd8, 0x8a, 0xbc, + 0x0f, 0x16, 0xd4, 0x4f, 0x08, 0xd7, 0x64, 0x4c, 0x78, 0xd5, 0x5d, 0x67, 0x31, 0xe1, 0x49, 0xe7, + 0xa1, 0xe8, 0x06, 0x57, 0xda, 0x2f, 0x46, 0x6a, 0x06, 0x8a, 0x22, 0x51, 0xad, 0x57, 0x69, 0xa4, + 0xf7, 0x47, 0x1d, 0xea, 0xe7, 0x3c, 0xcc, 0xa8, 0xb3, 0x2a, 0xab, 0x9b, 0x20, 0xc1, 0x63, 0x58, + 0x0a, 0x05, 0x46, 0x0a, 0x5f, 0x6a, 0x57, 0x4d, 0x9e, 0xc3, 0xa7, 0xd9, 0x4e, 0x1f, 0x5f, 0x1f, + 0x12, 0xb8, 0xfe, 0x60, 0x7f, 0x09, 0x4b, 0x51, 0x7c, 0xa8, 0xf1, 0xc3, 0x6a, 0x7a, 0xeb, 0xf8, + 0x5d, 0xb3, 0x04, 0xfd, 0xc8, 0x49, 0x85, 0x54, 0x4f, 0x3a, 0xb3, 0x55, 0x1e, 0xb9, 0x04, 0x6b, + 0xb7, 0x60, 0x55, 0x09, 0x44, 0x25, 0xd1, 0x31, 0x2e, 0x4d, 0x80, 0xb9, 0x0a, 0x01, 0x56, 0x06, + 0xb4, 0xb3, 0x24, 0x94, 0x03, 0xf3, 0xb2, 0x17, 0x50, 0xac, 0xa4, 0x33, 0xbf, 0x5b, 0x7f, 0xbc, + 0xe8, 0xa7, 0x3f, 0x75, 0x7f, 0xc5, 0x84, 0x3b, 0x0b, 0xc3, 0xfd, 0xf5, 0x84, 0x70, 0x5f, 0xaf, + 0x79, 0xcf, 0x60, 0x2d, 0x57, 0xd2, 0xe6, 0x5a, 0xec, 0x41, 0xbd, 0xcf, 0x43, 0x73, 0x6a, 0x39, + 0xa6, 0x46, 0xe9, 0x35, 0xef, 0x17, 0x0b, 0x1e, 0xa4, 0x54, 0x73, 0xdf, 0x5e, 0x60, 0x85, 0x48, + 0x57, 0xfe, 0x1f, 0x17, 0xfc, 0x6b, 0xd8, 0x1e, 0x95, 0xcc, 0x64, 0x8f, 0xde, 0x6f, 0x35, 0xd8, + 0x3c, 0x47, 0x5d, 0x12, 0x21, 0x85, 0xcd, 0x18, 0x32, 0x15, 0x5d, 0x4f, 0x60, 0xe6, 0x3d, 0xa3, + 0x15, 0xab, 0x5b, 0x23, 0xed, 0x57, 0x60, 0xa7, 0xdb, 0x85, 0x02, 0x47, 0x98, 0x2a, 0x82, 0xba, + 0xa6, 0xc8, 0x1f, 0x64, 0x35, 0x98, 0x34, 0x9b, 0x77, 0x20, 0x7f, 0x55, 0x14, 0x3f, 0xe9, 0xbb, + 0x42, 0x31, 0x8e, 0x2e, 0x93, 0x1b, 0x60, 0xca, 0x7d, 0x5c, 0xe7, 0x03, 0x0d, 0x6f, 0xc6, 0x68, + 0xef, 0x04, 0xb6, 0x86, 0x3c, 0x99, 0xa0, 0x91, 0x7e, 0xb0, 0x60, 0x3d, 0x3d, 0xad, 0x0b, 0x46, + 0xb1, 0xfc, 0xf7, 0xa3, 0x66, 0xb9, 0x49, 0xb5, 0xc9, 0x4c, 0xf2, 0x0e, 0x60, 0xa3, 0x90, 0x9f, + 0x51, 0xb9, 0x0e, 0xb3, 0xfa, 0x4c, 0xa4, 0x63, 0xc5, 0x37, 0x2d, 0xf9, 0xf1, 0xf4, 0xf7, 0x05, + 0xd8, 0x2c, 0x8c, 0xaa, 0xaf, 0x11, 0x45, 0x1d, 0x2c, 0x6c, 0x01, 0x5b, 0x23, 0x86, 0x59, 0x7b, + 0x3f, 0x97, 0xd6, 0xd8, 0x19, 0xdc, 0xfd, 0xb4, 0x12, 0xd6, 0x24, 0xf9, 0x2d, 0xac, 0x14, 0x47, + 0x3f, 0xfb, 0x61, 0x36, 0xc0, 0x88, 0x71, 0xd8, 0x7d, 0x34, 0x1e, 0x64, 0xc2, 0x7f, 0x07, 0xab, + 0x43, 0x23, 0x99, 0x9d, 0xa3, 0x8e, 0x9a, 0x16, 0xdd, 0x8f, 0xff, 0x06, 0x65, 0x76, 0x68, 0xc3, + 0x72, 0x6e, 0x4e, 0xb2, 0x77, 0xb3, 0xbc, 0xb2, 0xe9, 0xcd, 0xdd, 0x1b, 0x83, 0x30, 0x51, 0xdf, + 0xc0, 0x52, 0x66, 0x8a, 0xb1, 0xb7, 0xb3, 0x8c, 0xe1, 0xb9, 0xca, 0xdd, 0x19, 0xb9, 0x6e, 0xe2, + 0x5d, 0xc0, 0xbd, 0xb4, 0x48, 0xce, 0x4c, 0xc3, 0xf5, 0xb2, 0x9c, 0xc2, 0x62, 0x1a, 0xf7, 0xe1, + 0x58, 0xcc, 0xc0, 0x81, 0xdc, 0xbc, 0x92, 0x77, 0xa0, 0x6c, 0x9c, 0xca, 0x3b, 0x50, 0x3e, 0xec, + 0xbc, 0x81, 0xa5, 0x4c, 0xb3, 0xcf, 0x3b, 0x30, 0x3c, 0xd8, 0xe4, 0x1d, 0x28, 0x7b, 0x25, 0x18, + 0x6c, 0x96, 0x37, 0x5d, 0xfb, 0x93, 0x32, 0x6a, 0xe9, 0x2b, 0xe1, 0xee, 0x57, 0x81, 0x0e, 0x2c, + 0x2f, 0xf4, 0x9f, 0xbc, 0xe5, 0xe5, 0x0d, 0x3b, 0x6f, 0xf9, 0xa8, 0x06, 0xd6, 0x86, 0xe5, 0xdc, + 0x9d, 0xcf, 0x5b, 0x5e, 0xd6, 0xae, 0xf2, 0x96, 0x97, 0x36, 0x8c, 0xe7, 0x33, 0x17, 0x35, 0x1e, + 0x04, 0x73, 0x71, 0xf7, 0x3a, 0xfa, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x66, 0xae, 0xc1, 0x8e, 0x54, + 0x10, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/vendor/openpitrix.io/openpitrix/pkg/version/gen_helper.go b/vendor/openpitrix.io/openpitrix/pkg/version/gen_helper.go deleted file mode 100644 index 01af5342f..000000000 --- a/vendor/openpitrix.io/openpitrix/pkg/version/gen_helper.go +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2018 The OpenPitrix Authors. All rights reserved. -// Use of this source code is governed by a Apache license -// that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "fmt" - "io/ioutil" - "log" - "os/exec" - "strings" - "time" -) - -func main() { - version, gitSha1Version := getAppVersion() - buildTime := time.Now().Format("2006-01-02 15:04:05") - - data := make_update_version_go_file(version, gitSha1Version, buildTime) - - err := ioutil.WriteFile("./z_update_version.go", []byte(data), 0666) - if err != nil { - log.Fatalf("ioutil.WriteFile: err = %v", err) - } - - fmt.Printf("%s (%s)\n", version, gitSha1Version) - fmt.Println(buildTime) -} - -func make_update_version_go_file(version, gitSha1Version, buildTime string) string { - return fmt.Sprintf(`// Copyright 2018 The OpenPitrix Authors. All rights reserved. -// Use of this source code is governed by a Apache license -// that can be found in the LICENSE file. - -// Auto generated by 'go run gen_helper.go', DO NOT EDIT. - -package version - -func init() { - ShortVersion = "%s" - GitSha1Version = "%s" - BuildDate = "%s" -} -`, - version, - gitSha1Version, - buildTime, - ) -} - -func getAppVersion() (version, gitSha1Version string) { - // VERSION=`git describe --tags --always --dirty="-dev"` - versionData, err := exec.Command( - `git`, `describe`, `--tags`, `--always`, `--dirty=-dev`, - ).CombinedOutput() - if err != nil { - log.Fatal(err) - } - - // GIT_SHA1=`git show --quiet --pretty=format:%H` - gitSha1VersionData, err := exec.Command( - `git`, `show`, `--quiet`, `--pretty=format:%H`, - ).CombinedOutput() - if err != nil { - log.Fatal(err) - } - - version = strings.TrimSpace(string(versionData)) - gitSha1Version = strings.TrimSpace(string(gitSha1VersionData)) - return -} -- GitLab