From 45ab9286a2277273b0e9442b1bb7bab225094a51 Mon Sep 17 00:00:00 2001 From: runzexia Date: Mon, 26 Aug 2019 14:22:39 +0800 Subject: [PATCH 1/9] get & create scm server in jenkinsfile Signed-off-by: runzexia --- pkg/apis/devops/v1alpha2/register.go | 19 +++++++++++++++++++ pkg/apiserver/devops/devops.go | 26 ++++++++++++++++++++++++++ pkg/models/devops/devops.go | 26 +++++++++++++++++++++++++- pkg/models/devops/json.go | 18 ++++++++++++++++++ pkg/models/devops/urlconfig.go | 2 ++ 5 files changed, 90 insertions(+), 1 deletion(-) diff --git a/pkg/apis/devops/v1alpha2/register.go b/pkg/apis/devops/v1alpha2/register.go index ce5dec98b..df4cfb439 100644 --- a/pkg/apis/devops/v1alpha2/register.go +++ b/pkg/apis/devops/v1alpha2/register.go @@ -350,6 +350,25 @@ The last one is encrypted info, such as the password of the username-password ty Returns(http.StatusOK, RespOK, []devops.SCMOrg{}). Writes([]devops.SCMOrg{})) + // match "/blue/rest/organizations/jenkins/scm/%s/servers/" + webservice.Route(webservice.GET("/scms/{scm}/servers"). + To(devopsapi.GetSCMServers). + Metadata(restfulspec.KeyOpenAPITags, []string{constants.DevOpsScmTag}). + Doc("List all servers in the jenkins."). + Param(webservice.PathParameter("scm", "The ID of the source configuration management (SCM).")). + Returns(http.StatusOK, RespOK, []devops.SCMServer{}). + Writes([]devops.SCMServer{})) + + // match "/blue/rest/organizations/jenkins/scm/%s/servers/" + webservice.Route(webservice.POST("/scms/{scm}/servers"). + To(devopsapi.CreateSCMServers). + Metadata(restfulspec.KeyOpenAPITags, []string{constants.DevOpsScmTag}). + Doc("Create scm server in the jenkins."). + Param(webservice.PathParameter("scm", "The ID of the source configuration management (SCM).")). + Reads(devops.CreateScmServerReq{}). + Returns(http.StatusOK, RespOK, devops.SCMServer{}). + Writes(devops.SCMServer{})) + // match "/blue/rest/organizations/jenkins/scm/{scm}/organizations/{organization}/repositories/?credentialId=&pageNumber&pageSize=" webservice.Route(webservice.GET("/scms/{scm}/organizations/{organization}/repositories"). To(devopsapi.GetOrgRepo). diff --git a/pkg/apiserver/devops/devops.go b/pkg/apiserver/devops/devops.go index 8e41d9fd2..e4b892ee9 100644 --- a/pkg/apiserver/devops/devops.go +++ b/pkg/apiserver/devops/devops.go @@ -141,6 +141,32 @@ func GetStepLog(req *restful.Request, resp *restful.Response) { resp.Write(res) } +func GetSCMServers(req *restful.Request, resp *restful.Response) { + scmId := req.PathParameter("scm") + + res, err := devops.GetSCMServers(scmId, req.Request) + if err != nil { + parseErr(err, resp) + return + } + + resp.Header().Set(restful.HEADER_ContentType, restful.MIME_JSON) + resp.Write(res) +} + +func CreateSCMServers(req *restful.Request, resp *restful.Response) { + scmId := req.PathParameter("scm") + + res, err := devops.CreateSCMServers(scmId, req.Request) + if err != nil { + parseErr(err, resp) + return + } + + resp.Header().Set(restful.HEADER_ContentType, restful.MIME_JSON) + resp.Write(res) +} + func Validate(req *restful.Request, resp *restful.Response) { scmId := req.PathParameter("scm") diff --git a/pkg/models/devops/devops.go b/pkg/models/devops/devops.go index 824752463..1601a7aca 100644 --- a/pkg/models/devops/devops.go +++ b/pkg/models/devops/devops.go @@ -135,6 +135,30 @@ func GetStepLog(projectName, pipelineName, runId, nodeId, stepId string, req *ht } +func GetSCMServers(scmId string, req *http.Request) ([]byte, error) { + baseUrl := fmt.Sprintf(jenkins.Server+GetSCMServersUrl, scmId) + log.Info("Jenkins-url: " + baseUrl) + req.Method = http.MethodGet + resBody, err := sendJenkinsRequest(baseUrl, req) + if err != nil { + log.Error(err) + return nil, err + } + return resBody, err +} + +func CreateSCMServers(scmId string, req *http.Request) ([]byte, error) { + baseUrl := fmt.Sprintf(jenkins.Server+CreateSCMServersUrl, scmId) + log.Info("Jenkins-url: " + baseUrl) + req.Method = http.MethodPost + resBody, err := sendJenkinsRequest(baseUrl, req) + if err != nil { + log.Error(err) + return nil, err + } + return resBody, err +} + func Validate(scmId string, req *http.Request) ([]byte, error) { baseUrl := fmt.Sprintf(jenkins.Server+ValidateUrl, scmId) log.Info("Jenkins-url: " + baseUrl) @@ -731,7 +755,7 @@ func jenkinsClient(baseUrl string, req *http.Request) ([]byte, http.Header, erro log.Errorf("%+v", string(resBody)) jkerr := new(JkError) jkerr.Code = resp.StatusCode - jkerr.Message = http.StatusText(resp.StatusCode) + jkerr.Message = string(resBody) return nil, nil, jkerr } diff --git a/pkg/models/devops/json.go b/pkg/models/devops/json.go index bebb6f49e..ab0520eaf 100644 --- a/pkg/models/devops/json.go +++ b/pkg/models/devops/json.go @@ -260,6 +260,19 @@ type SCMOrg struct { Name string `json:"name,omitempty" description:"organization name"` } +type SCMServer struct { + Class string `json:"_class,omitempty" description:"It’s a fully qualified name and is an identifier of the producer of this resource's capability."` + Links struct { + Self struct { + Class string `json:"_class,omitempty" description:"It’s a fully qualified name and is an identifier of the producer of this resource's capability."` + Href string `json:"href,omitempty" description:"self url in api"` + } `json:"self,omitempty" description:"scm server self info"` + } `json:"_links,omitempty" description:"references the reachable path to this resource"` + ID string `json:"id,omitempty" description:"server id of scm server"` + Name string `json:"name,omitempty" description:"name of scm server"` + ApiURL string `json:"apiUrl,omitempty" description:"url of scm server"` +} + // GetOrgRepo type OrgRepo struct { Class string `json:"_class,omitempty" description:"It’s a fully qualified name and is an identifier of the producer of this resource's capability."` @@ -721,6 +734,11 @@ type CheckPlayload struct { Abort bool `json:"abort,omitempty" description:"abort or not"` } +type CreateScmServerReq struct { + Name string `json:"name,omitempty" description:"name of scm server"` + ApiURL string `json:"apiUrl,omitempty" description:"url of scm server"` +} + type CheckPlayloadParameters struct { Name string `json:"name,omitempty" description:"name"` Value string `json:"value,omitempty" description:"value"` diff --git a/pkg/models/devops/urlconfig.go b/pkg/models/devops/urlconfig.go index 511667187..a42a05648 100644 --- a/pkg/models/devops/urlconfig.go +++ b/pkg/models/devops/urlconfig.go @@ -44,6 +44,8 @@ const ( CheckPipelineUrl = "/blue/rest/organizations/jenkins/pipelines/%s/pipelines/%s/runs/%s/nodes/%s/steps/%s/" GetBranchNodeStepsUrl = "/blue/rest/organizations/jenkins/pipelines/%s/pipelines/%s/branches/%s/runs/%s/nodes/%s/steps/?" GetNodeStepsUrl = "/blue/rest/organizations/jenkins/pipelines/%s/pipelines/%s/runs/%s/nodes/%s/steps/?" + GetSCMServersUrl = "/blue/rest/organizations/jenkins/scm/%s/servers/" + CreateSCMServersUrl = "/blue/rest/organizations/jenkins/scm/%s/servers/" ValidateUrl = "/blue/rest/organizations/jenkins/scm/%s/validate" GetSCMOrgUrl = "/blue/rest/organizations/jenkins/scm/%s/organizations/?" GetOrgRepoUrl = "/blue/rest/organizations/jenkins/scm/%s/organizations/%s/repositories/?" From cee1f6425d31483290b017f333ffb86f04de1ed8 Mon Sep 17 00:00:00 2001 From: runzexia Date: Mon, 26 Aug 2019 17:47:28 +0800 Subject: [PATCH 2/9] refactor code Signed-off-by: runzexia --- pkg/models/devops/project_pipeline.go | 824 +++++++++++---------- pkg/models/devops/project_pipeline_test.go | 4 +- 2 files changed, 436 insertions(+), 392 deletions(-) diff --git a/pkg/models/devops/project_pipeline.go b/pkg/models/devops/project_pipeline.go index ad876ebac..97808df9a 100644 --- a/pkg/models/devops/project_pipeline.go +++ b/pkg/models/devops/project_pipeline.go @@ -30,6 +30,8 @@ const ( MultiBranchPipelineType = "multi-branch-pipeline" ) +type Parameters []*Parameter + var ParameterTypeMap = map[string]string{ "hudson.model.StringParameterDefinition": "string", "hudson.model.ChoiceParameterDefinition": "choice", @@ -62,7 +64,7 @@ type NoScmPipeline struct { Name string `json:"name" description:"name of pipeline"` Description string `json:"descriptio,omitempty" description:"description of pipeline"` Discarder *DiscarderProperty `json:"discarder,omitempty" description:"Discarder of pipeline, managing when to drop a pipeline"` - Parameters []*Parameter `json:"parameters,omitempty" description:"Parameters define of pipeline,user could pass param when run pipeline"` + Parameters *Parameters `json:"parameters,omitempty" description:"Parameters define of pipeline,user could pass param when run pipeline"` DisableConcurrent bool `json:"disable_concurrent,omitempty" mapstructure:"disable_concurrent" description:"Whether to prohibit the pipeline from running in parallel"` TimerTrigger *TimerTrigger `json:"timer_trigger,omitempty" mapstructure:"timer_trigger" description:"Timer to trigger pipeline run"` RemoteTrigger *RemoteTrigger `json:"remote_trigger,omitempty" mapstructure:"remote_trigger" description:"Remote api define to trigger pipeline run"` @@ -83,6 +85,7 @@ type MultiBranchPipeline struct { } type GitSource struct { + ScmId string `json:"scm_id,omitempty" description:"uid of scm"` Url string `json:"url,omitempty" mapstructure:"url" description:"url of git source"` CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access git source"` DiscoverBranches bool `json:"discover_branches,omitempty" mapstructure:"discover_branches" description:"Whether to discover a branch"` @@ -91,6 +94,7 @@ type GitSource struct { } type GithubSource struct { + ScmId string `json:"scm_id,omitempty" description:"uid of scm"` Owner string `json:"owner,omitempty" mapstructure:"owner" description:"owner of github repo"` Repo string `json:"repo,omitempty" mapstructure:"repo" description:"repo name of github repo"` CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access github source"` @@ -109,12 +113,14 @@ type GitCloneOption struct { } type SvnSource struct { + ScmId string `json:"scm_id,omitempty" description:"uid of scm"` Remote string `json:"remote,omitempty" description:"remote address url"` CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access svn source"` Includes string `json:"includes,omitempty" description:"branches to run pipeline"` Excludes string `json:"excludes,omitempty" description:"branches do not run pipeline"` } type SingleSvnSource struct { + ScmId string `json:"scm_id,omitempty" description:"uid of scm"` Remote string `json:"remote,omitempty" description:"remote address url"` CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access svn source"` } @@ -189,32 +195,7 @@ func createPipelineConfigXml(pipeline *NoScmPipeline) (string, error) { strategy.CreateElement("artifactNumToKeep").SetText("-1") } if pipeline.Parameters != nil { - parameterDefinitions := properties.CreateElement("hudson.model.ParametersDefinitionProperty"). - CreateElement("parameterDefinitions") - for _, parameter := range pipeline.Parameters { - for className, typeName := range ParameterTypeMap { - if typeName == parameter.Type { - paramDefine := parameterDefinitions.CreateElement(className) - paramDefine.CreateElement("name").SetText(parameter.Name) - paramDefine.CreateElement("description").SetText(parameter.Description) - switch parameter.Type { - case "choice": - choices := paramDefine.CreateElement("choices") - choices.CreateAttr("class", "java.util.Arrays$ArrayList") - a := choices.CreateElement("a") - a.CreateAttr("class", "string-array") - choiceValues := strings.Split(parameter.DefaultValue, "\n") - for _, choiceValue := range choiceValues { - a.CreateElement("string").SetText(choiceValue) - } - case "file": - break - default: - paramDefine.CreateElement("defaultValue").SetText(parameter.DefaultValue) - } - } - } - } + pipeline.Parameters.appendToEtree(properties) } if pipeline.TimerTrigger != nil { @@ -275,65 +256,10 @@ func parsePipelineConfigXml(config string) (*NoScmPipeline, error) { NumToKeep: strategy.SelectElement("numToKeep").Text(), } } - if parametersProperty := properties.SelectElement("hudson.model.ParametersDefinitionProperty"); parametersProperty != nil { - params := parametersProperty.SelectElement("parameterDefinitions").ChildElements() - for _, param := range params { - switch param.Tag { - case "hudson.model.StringParameterDefinition": - pipeline.Parameters = append(pipeline.Parameters, &Parameter{ - Name: param.SelectElement("name").Text(), - Description: param.SelectElement("description").Text(), - DefaultValue: param.SelectElement("defaultValue").Text(), - Type: ParameterTypeMap["hudson.model.StringParameterDefinition"], - }) - case "hudson.model.BooleanParameterDefinition": - pipeline.Parameters = append(pipeline.Parameters, &Parameter{ - Name: param.SelectElement("name").Text(), - Description: param.SelectElement("description").Text(), - DefaultValue: param.SelectElement("defaultValue").Text(), - Type: ParameterTypeMap["hudson.model.BooleanParameterDefinition"], - }) - case "hudson.model.TextParameterDefinition": - pipeline.Parameters = append(pipeline.Parameters, &Parameter{ - Name: param.SelectElement("name").Text(), - Description: param.SelectElement("description").Text(), - DefaultValue: param.SelectElement("defaultValue").Text(), - Type: ParameterTypeMap["hudson.model.TextParameterDefinition"], - }) - case "hudson.model.FileParameterDefinition": - pipeline.Parameters = append(pipeline.Parameters, &Parameter{ - Name: param.SelectElement("name").Text(), - Description: param.SelectElement("description").Text(), - Type: ParameterTypeMap["hudson.model.FileParameterDefinition"], - }) - case "hudson.model.PasswordParameterDefinition": - pipeline.Parameters = append(pipeline.Parameters, &Parameter{ - Name: param.SelectElement("name").Text(), - Description: param.SelectElement("description").Text(), - DefaultValue: param.SelectElement("name").Text(), - Type: ParameterTypeMap["hudson.model.PasswordParameterDefinition"], - }) - case "hudson.model.ChoiceParameterDefinition": - choiceParameter := &Parameter{ - Name: param.SelectElement("name").Text(), - Description: param.SelectElement("description").Text(), - Type: ParameterTypeMap["hudson.model.ChoiceParameterDefinition"], - } - choices := param.SelectElement("choices").SelectElement("a").SelectElements("string") - for _, choice := range choices { - choiceParameter.DefaultValue += fmt.Sprintf("%s\n", choice.Text()) - } - choiceParameter.DefaultValue = strings.TrimSpace(choiceParameter.DefaultValue) - pipeline.Parameters = append(pipeline.Parameters, choiceParameter) - default: - pipeline.Parameters = append(pipeline.Parameters, &Parameter{ - Name: param.SelectElement("name").Text(), - Description: param.SelectElement("description").Text(), - DefaultValue: "unknown", - Type: param.Tag, - }) - } - } + pipeline.Parameters = &Parameters{} + pipeline.Parameters = pipeline.Parameters.fromEtree(properties) + if len(*pipeline.Parameters) == 0 { + pipeline.Parameters = nil } if triggerProperty := properties. @@ -359,6 +285,411 @@ func parsePipelineConfigXml(config string) (*NoScmPipeline, error) { return pipeline, nil } +func (s *Parameters) appendToEtree(properties *etree.Element) *Parameters { + parameterDefinitions := properties.CreateElement("hudson.model.ParametersDefinitionProperty"). + CreateElement("parameterDefinitions") + for _, parameter := range *s { + for className, typeName := range ParameterTypeMap { + if typeName == parameter.Type { + paramDefine := parameterDefinitions.CreateElement(className) + paramDefine.CreateElement("name").SetText(parameter.Name) + paramDefine.CreateElement("description").SetText(parameter.Description) + switch parameter.Type { + case "choice": + choices := paramDefine.CreateElement("choices") + choices.CreateAttr("class", "java.util.Arrays$ArrayList") + a := choices.CreateElement("a") + a.CreateAttr("class", "string-array") + choiceValues := strings.Split(parameter.DefaultValue, "\n") + for _, choiceValue := range choiceValues { + a.CreateElement("string").SetText(choiceValue) + } + case "file": + break + default: + paramDefine.CreateElement("defaultValue").SetText(parameter.DefaultValue) + } + } + } + } + return s +} + +func (s *Parameters) fromEtree(properties *etree.Element) *Parameters { + + if parametersProperty := properties.SelectElement("hudson.model.ParametersDefinitionProperty"); parametersProperty != nil { + params := parametersProperty.SelectElement("parameterDefinitions").ChildElements() + if *s == nil { + *s = make([]*Parameter, 0) + } + for _, param := range params { + switch param.Tag { + case "hudson.model.StringParameterDefinition": + *s = append(*s, &Parameter{ + Name: param.SelectElement("name").Text(), + Description: param.SelectElement("description").Text(), + DefaultValue: param.SelectElement("defaultValue").Text(), + Type: ParameterTypeMap["hudson.model.StringParameterDefinition"], + }) + case "hudson.model.BooleanParameterDefinition": + *s = append(*s, &Parameter{ + Name: param.SelectElement("name").Text(), + Description: param.SelectElement("description").Text(), + DefaultValue: param.SelectElement("defaultValue").Text(), + Type: ParameterTypeMap["hudson.model.BooleanParameterDefinition"], + }) + case "hudson.model.TextParameterDefinition": + *s = append(*s, &Parameter{ + Name: param.SelectElement("name").Text(), + Description: param.SelectElement("description").Text(), + DefaultValue: param.SelectElement("defaultValue").Text(), + Type: ParameterTypeMap["hudson.model.TextParameterDefinition"], + }) + case "hudson.model.FileParameterDefinition": + *s = append(*s, &Parameter{ + Name: param.SelectElement("name").Text(), + Description: param.SelectElement("description").Text(), + Type: ParameterTypeMap["hudson.model.FileParameterDefinition"], + }) + case "hudson.model.PasswordParameterDefinition": + *s = append(*s, &Parameter{ + Name: param.SelectElement("name").Text(), + Description: param.SelectElement("description").Text(), + DefaultValue: param.SelectElement("name").Text(), + Type: ParameterTypeMap["hudson.model.PasswordParameterDefinition"], + }) + case "hudson.model.ChoiceParameterDefinition": + choiceParameter := &Parameter{ + Name: param.SelectElement("name").Text(), + Description: param.SelectElement("description").Text(), + Type: ParameterTypeMap["hudson.model.ChoiceParameterDefinition"], + } + choices := param.SelectElement("choices").SelectElement("a").SelectElements("string") + for _, choice := range choices { + choiceParameter.DefaultValue += fmt.Sprintf("%s\n", choice.Text()) + } + choiceParameter.DefaultValue = strings.TrimSpace(choiceParameter.DefaultValue) + *s = append(*s, choiceParameter) + default: + *s = append(*s, &Parameter{ + Name: param.SelectElement("name").Text(), + Description: param.SelectElement("description").Text(), + DefaultValue: "unknown", + Type: param.Tag, + }) + } + } + } + return s +} + +func (s *GitSource) appendToEtree(source *etree.Element) *GitSource { + source.CreateAttr("class", "jenkins.plugins.git.GitSCMSource") + source.CreateAttr("plugin", "git") + source.CreateElement("id").SetText(s.ScmId) + source.CreateElement("remote").SetText(s.Url) + if s.CredentialId != "" { + source.CreateElement("credentialsId").SetText(s.CredentialId) + } + traits := source.CreateElement("traits") + if s.DiscoverBranches { + traits.CreateElement("jenkins.plugins.git.traits.BranchDiscoveryTrait") + } + if s.CloneOption != nil { + cloneExtension := traits.CreateElement("jenkins.plugins.git.traits.CloneOptionTrait").CreateElement("extension") + cloneExtension.CreateAttr("class", "hudson.plugins.git.extensions.impl.CloneOption") + cloneExtension.CreateElement("shallow").SetText(strconv.FormatBool(s.CloneOption.Shallow)) + cloneExtension.CreateElement("noTags").SetText(strconv.FormatBool(false)) + cloneExtension.CreateElement("reference") + if s.CloneOption.Timeout >= 0 { + cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(s.CloneOption.Timeout)) + } else { + cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(10)) + } + + if s.CloneOption.Depth >= 0 { + cloneExtension.CreateElement("depth").SetText(strconv.Itoa(s.CloneOption.Depth)) + } else { + cloneExtension.CreateElement("depth").SetText(strconv.Itoa(1)) + } + } + + if s.RegexFilter != "" { + regexTraits := traits.CreateElement("jenkins.scm.impl.trait.RegexSCMHeadFilterTrait") + regexTraits.CreateAttr("plugin", "scm-api@2.4.0") + regexTraits.CreateElement("regex").SetText(s.RegexFilter) + } + return s +} + +func (s *GitSource) fromEtree(source *etree.Element) *GitSource { + if credential := source.SelectElement("credentialsId"); credential != nil { + s.CredentialId = credential.Text() + } + if remote := source.SelectElement("remote"); remote != nil { + s.Url = remote.Text() + } + + traits := source.SelectElement("traits") + if branchDiscoverTrait := traits.SelectElement( + "jenkins.plugins.git.traits.BranchDiscoveryTrait"); branchDiscoverTrait != nil { + s.DiscoverBranches = true + } + if cloneTrait := traits.SelectElement( + "jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil { + if cloneExtension := cloneTrait.SelectElement( + "extension"); cloneExtension != nil { + s.CloneOption = &GitCloneOption{} + if value, err := strconv.ParseBool(cloneExtension.SelectElement("shallow").Text()); err == nil { + s.CloneOption.Shallow = value + } + if value, err := strconv.ParseInt(cloneExtension.SelectElement("timeout").Text(), 10, 32); err == nil { + s.CloneOption.Timeout = int(value) + } + if value, err := strconv.ParseInt(cloneExtension.SelectElement("depth").Text(), 10, 32); err == nil { + s.CloneOption.Depth = int(value) + } + } + } + if regexTrait := traits.SelectElement( + "jenkins.scm.impl.trait.RegexSCMHeadFilterTrait"); regexTrait != nil { + if regex := regexTrait.SelectElement("regex"); regex != nil { + s.RegexFilter = regex.Text() + } + } + return s +} + +func (s *GithubSource) fromEtree(source *etree.Element) *GithubSource { + if credential := source.SelectElement("credentialsId"); credential != nil { + s.CredentialId = credential.Text() + } + if repoOwner := source.SelectElement("repoOwner"); repoOwner != nil { + s.Owner = repoOwner.Text() + } + if repository := source.SelectElement("repository"); repository != nil { + s.Repo = repository.Text() + } + if apiUri := source.SelectElement("apiUri"); apiUri != nil { + s.ApiUri = apiUri.Text() + } + traits := source.SelectElement("traits") + if branchDiscoverTrait := traits.SelectElement( + "org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait"); branchDiscoverTrait != nil { + strategyId, _ := strconv.Atoi(branchDiscoverTrait.SelectElement("strategyId").Text()) + s.DiscoverBranches = strategyId + } + if originPRDiscoverTrait := traits.SelectElement( + "org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait"); originPRDiscoverTrait != nil { + strategyId, _ := strconv.Atoi(originPRDiscoverTrait.SelectElement("strategyId").Text()) + s.DiscoverPRFromOrigin = strategyId + } + if forkPRDiscoverTrait := traits.SelectElement( + "org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait"); forkPRDiscoverTrait != nil { + strategyId, _ := strconv.Atoi(forkPRDiscoverTrait.SelectElement("strategyId").Text()) + trustClass := forkPRDiscoverTrait.SelectElement("trust").SelectAttr("class").Value + trust := strings.Split(trustClass, "$") + switch trust[1] { + case "TrustContributors": + s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + Strategy: strategyId, + Trust: 1, + } + case "TrustEveryone": + s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + Strategy: strategyId, + Trust: 2, + } + case "TrustPermission": + s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + Strategy: strategyId, + Trust: 3, + } + case "TrustNobody": + s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + Strategy: strategyId, + Trust: 4, + } + } + if cloneTrait := traits.SelectElement( + "jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil { + if cloneExtension := cloneTrait.SelectElement( + "extension"); cloneExtension != nil { + s.CloneOption = &GitCloneOption{} + if value, err := strconv.ParseBool(cloneExtension.SelectElement("shallow").Text()); err == nil { + s.CloneOption.Shallow = value + } + if value, err := strconv.ParseInt(cloneExtension.SelectElement("timeout").Text(), 10, 32); err == nil { + s.CloneOption.Timeout = int(value) + } + if value, err := strconv.ParseInt(cloneExtension.SelectElement("depth").Text(), 10, 32); err == nil { + s.CloneOption.Depth = int(value) + } + } + } + + if regexTrait := traits.SelectElement( + "jenkins.scm.impl.trait.RegexSCMHeadFilterTrait"); regexTrait != nil { + if regex := regexTrait.SelectElement("regex"); regex != nil { + s.RegexFilter = regex.Text() + } + } + } + return s +} + +func (s *GithubSource) appendToEtree(source *etree.Element) *GithubSource { + source.CreateAttr("class", "org.jenkinsci.plugins.github_branch_source.GitHubSCMSource") + source.CreateAttr("plugin", "github-branch-source") + source.CreateElement("id").SetText(s.ScmId) + source.CreateElement("credentialsId").SetText(s.CredentialId) + source.CreateElement("repoOwner").SetText(s.Owner) + source.CreateElement("repository").SetText(s.Repo) + if s.ApiUri != "" { + source.CreateElement("apiUri").SetText(s.ApiUri) + } + traits := source.CreateElement("traits") + if s.DiscoverBranches != 0 { + traits.CreateElement("org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait"). + CreateElement("strategyId").SetText(strconv.Itoa(s.DiscoverBranches)) + } + if s.DiscoverPRFromOrigin != 0 { + traits.CreateElement("org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait"). + CreateElement("strategyId").SetText(strconv.Itoa(s.DiscoverPRFromOrigin)) + } + if s.DiscoverPRFromForks != nil { + forkTrait := traits.CreateElement("org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait") + forkTrait.CreateElement("strategyId").SetText(strconv.Itoa(s.DiscoverPRFromForks.Strategy)) + trustClass := "org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$" + switch s.DiscoverPRFromForks.Trust { + case 1: + trustClass += "TrustContributors" + case 2: + trustClass += "TrustEveryone" + case 3: + trustClass += "TrustPermission" + case 4: + trustClass += "TrustNobody" + default: + } + forkTrait.CreateElement("trust").CreateAttr("class", trustClass) + } + if s.CloneOption != nil { + cloneExtension := traits.CreateElement("jenkins.plugins.git.traits.CloneOptionTrait").CreateElement("extension") + cloneExtension.CreateAttr("class", "hudson.plugins.git.extensions.impl.CloneOption") + cloneExtension.CreateElement("shallow").SetText(strconv.FormatBool(s.CloneOption.Shallow)) + cloneExtension.CreateElement("noTags").SetText(strconv.FormatBool(false)) + cloneExtension.CreateElement("reference") + if s.CloneOption.Timeout >= 0 { + cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(s.CloneOption.Timeout)) + } else { + cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(10)) + } + + if s.CloneOption.Depth >= 0 { + cloneExtension.CreateElement("depth").SetText(strconv.Itoa(s.CloneOption.Depth)) + } else { + cloneExtension.CreateElement("depth").SetText(strconv.Itoa(1)) + } + } + if s.RegexFilter != "" { + regexTraits := traits.CreateElement("jenkins.scm.impl.trait.RegexSCMHeadFilterTrait") + regexTraits.CreateAttr("plugin", "scm-api@2.4.0") + regexTraits.CreateElement("regex").SetText(s.RegexFilter) + } + return s +} + +func (s *SvnSource) fromEtree(source *etree.Element) *SvnSource { + if remote := source.SelectElement("remoteBase"); remote != nil { + s.Remote = remote.Text() + } + + if credentialsId := source.SelectElement("credentialsId"); credentialsId != nil { + s.CredentialId = credentialsId.Text() + } + + if includes := source.SelectElement("includes"); includes != nil { + s.Includes = includes.Text() + } + + if excludes := source.SelectElement("excludes"); excludes != nil { + s.Excludes = excludes.Text() + } + return s +} + +func (s *SvnSource) appendToEtree(source *etree.Element) *SvnSource { + source.CreateAttr("class", "jenkins.scm.impl.subversion.SubversionSCMSource") + source.CreateAttr("plugin", "subversion") + source.CreateElement("id").SetText(s.ScmId) + if s.CredentialId != "" { + source.CreateElement("credentialsId").SetText(s.CredentialId) + } + if s.Remote != "" { + source.CreateElement("remoteBase").SetText(s.Remote) + } + if s.Includes != "" { + source.CreateElement("includes").SetText(s.Includes) + } + if s.Excludes != "" { + source.CreateElement("excludes").SetText(s.Excludes) + } + return nil +} + +func (s *SingleSvnSource) fromEtree(source *etree.Element) *SingleSvnSource { + if scm := source.SelectElement("scm"); scm != nil { + if locations := scm.SelectElement("locations"); locations != nil { + if moduleLocations := locations.SelectElement("hudson.scm.SubversionSCM_-ModuleLocation"); moduleLocations != nil { + if remote := moduleLocations.SelectElement("remote"); remote != nil { + s.Remote = remote.Text() + } + if credentialId := moduleLocations.SelectElement("credentialsId"); credentialId != nil { + s.CredentialId = credentialId.Text() + } + } + } + } + return s +} + +func (s *SingleSvnSource) appendToEtree(source *etree.Element) *SingleSvnSource { + + source.CreateAttr("class", "jenkins.scm.impl.SingleSCMSource") + source.CreateAttr("plugin", "scm-api") + source.CreateElement("id").SetText(s.ScmId) + source.CreateElement("name").SetText("master") + + scm := source.CreateElement("scm") + scm.CreateAttr("class", "hudson.scm.SubversionSCM") + scm.CreateAttr("plugin", "subversion") + + location := scm.CreateElement("locations").CreateElement("hudson.scm.SubversionSCM_-ModuleLocation") + if s.Remote != "" { + location.CreateElement("remote").SetText(s.Remote) + } + if s.CredentialId != "" { + location.CreateElement("credentialsId").SetText(s.CredentialId) + } + location.CreateElement("local").SetText(".") + location.CreateElement("depthOption").SetText("infinity") + location.CreateElement("ignoreExternalsOption").SetText("true") + location.CreateElement("cancelProcessOnExternalsFail").SetText("true") + + source.CreateElement("excludedRegions") + source.CreateElement("includedRegions") + source.CreateElement("excludedUsers") + source.CreateElement("excludedRevprop") + source.CreateElement("excludedCommitMessages") + source.CreateElement("workspaceUpdater").CreateAttr("class", "hudson.scm.subversion.UpdateUpdater") + source.CreateElement("ignoreDirPropChanges").SetText("false") + source.CreateElement("filterChangelog").SetText("false") + source.CreateElement("quietOperation").SetText("true") + + return s +} + func createMultiBranchPipelineConfigXml(projectName string, pipeline *MultiBranchPipeline) (string, error) { doc := etree.NewDocument() xmlString := ` @@ -427,175 +758,33 @@ func createMultiBranchPipelineConfigXml(projectName string, pipeline *MultiBranc branchSourceStrategy.CreateAttr("class", "jenkins.branch.NamedExceptionsBranchPropertyStrategy") branchSourceStrategy.CreateElement("defaultProperties").CreateAttr("class", "empty-list") branchSourceStrategy.CreateElement("namedExceptions").CreateAttr("class", "empty-list") + source := branchSource.CreateElement("source") switch pipeline.SourceType { case "git": gitDefine := pipeline.GitSource - - gitSource := branchSource.CreateElement("source") - gitSource.CreateAttr("class", "jenkins.plugins.git.GitSCMSource") - gitSource.CreateAttr("plugin", "git") - gitSource.CreateElement("id").SetText(projectName + pipeline.Name) - gitSource.CreateElement("remote").SetText(gitDefine.Url) - if gitDefine.CredentialId != "" { - gitSource.CreateElement("credentialsId").SetText(gitDefine.CredentialId) - } - traits := gitSource.CreateElement("traits") - if gitDefine.DiscoverBranches { - traits.CreateElement("jenkins.plugins.git.traits.BranchDiscoveryTrait") - } - if gitDefine.CloneOption != nil { - cloneExtension := traits.CreateElement("jenkins.plugins.git.traits.CloneOptionTrait").CreateElement("extension") - cloneExtension.CreateAttr("class", "hudson.plugins.git.extensions.impl.CloneOption") - cloneExtension.CreateElement("shallow").SetText(strconv.FormatBool(gitDefine.CloneOption.Shallow)) - cloneExtension.CreateElement("noTags").SetText(strconv.FormatBool(false)) - cloneExtension.CreateElement("reference") - if gitDefine.CloneOption.Timeout >= 0 { - cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(gitDefine.CloneOption.Timeout)) - } else { - cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(10)) - } - - if gitDefine.CloneOption.Depth >= 0 { - cloneExtension.CreateElement("depth").SetText(strconv.Itoa(gitDefine.CloneOption.Depth)) - } else { - cloneExtension.CreateElement("depth").SetText(strconv.Itoa(1)) - } - } - - if gitDefine.RegexFilter != "" { - regexTraits := traits.CreateElement("jenkins.scm.impl.trait.RegexSCMHeadFilterTrait") - regexTraits.CreateAttr("plugin", "scm-api@2.4.0") - regexTraits.CreateElement("regex").SetText(gitDefine.RegexFilter) - } - + gitDefine.ScmId = projectName + pipeline.Name + gitDefine.appendToEtree(source) case "github": githubDefine := pipeline.GitHubSource - - githubSource := branchSource.CreateElement("source") - githubSource.CreateAttr("class", "org.jenkinsci.plugins.github_branch_source.GitHubSCMSource") - githubSource.CreateAttr("plugin", "github-branch-source") - githubSource.CreateElement("id").SetText(projectName + pipeline.Name) - githubSource.CreateElement("credentialsId").SetText(githubDefine.CredentialId) - githubSource.CreateElement("repoOwner").SetText(githubDefine.Owner) - githubSource.CreateElement("repository").SetText(githubDefine.Repo) - if githubDefine.ApiUri != "" { - githubSource.CreateElement("apiUri").SetText(githubDefine.ApiUri) - } - traits := githubSource.CreateElement("traits") - if githubDefine.DiscoverBranches != 0 { - traits.CreateElement("org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait"). - CreateElement("strategyId").SetText(strconv.Itoa(githubDefine.DiscoverBranches)) - } - if githubDefine.DiscoverPRFromOrigin != 0 { - traits.CreateElement("org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait"). - CreateElement("strategyId").SetText(strconv.Itoa(githubDefine.DiscoverPRFromOrigin)) - } - if githubDefine.DiscoverPRFromForks != nil { - forkTrait := traits.CreateElement("org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait") - forkTrait.CreateElement("strategyId").SetText(strconv.Itoa(githubDefine.DiscoverPRFromForks.Strategy)) - trustClass := "org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$" - switch githubDefine.DiscoverPRFromForks.Trust { - case 1: - trustClass += "TrustContributors" - case 2: - trustClass += "TrustEveryone" - case 3: - trustClass += "TrustPermission" - case 4: - trustClass += "TrustNobody" - default: - return "", fmt.Errorf("unsupport trust choice") - } - forkTrait.CreateElement("trust").CreateAttr("class", trustClass) - } - if githubDefine.CloneOption != nil { - cloneExtension := traits.CreateElement("jenkins.plugins.git.traits.CloneOptionTrait").CreateElement("extension") - cloneExtension.CreateAttr("class", "hudson.plugins.git.extensions.impl.CloneOption") - cloneExtension.CreateElement("shallow").SetText(strconv.FormatBool(githubDefine.CloneOption.Shallow)) - cloneExtension.CreateElement("noTags").SetText(strconv.FormatBool(false)) - cloneExtension.CreateElement("reference") - if githubDefine.CloneOption.Timeout >= 0 { - cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(githubDefine.CloneOption.Timeout)) - } else { - cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(10)) - } - - if githubDefine.CloneOption.Depth >= 0 { - cloneExtension.CreateElement("depth").SetText(strconv.Itoa(githubDefine.CloneOption.Depth)) - } else { - cloneExtension.CreateElement("depth").SetText(strconv.Itoa(1)) - } - } - if githubDefine.RegexFilter != "" { - regexTraits := traits.CreateElement("jenkins.scm.impl.trait.RegexSCMHeadFilterTrait") - regexTraits.CreateAttr("plugin", "scm-api@2.4.0") - regexTraits.CreateElement("regex").SetText(githubDefine.RegexFilter) - } - + githubDefine.ScmId = projectName + pipeline.Name + githubDefine.appendToEtree(source) case "svn": svnDefine := pipeline.SvnSource - svnSource := branchSource.CreateElement("source") - svnSource.CreateAttr("class", "jenkins.scm.impl.subversion.SubversionSCMSource") - svnSource.CreateAttr("plugin", "subversion") - svnSource.CreateElement("id").SetText(projectName + pipeline.Name) - if svnDefine.CredentialId != "" { - svnSource.CreateElement("credentialsId").SetText(svnDefine.CredentialId) - } - if svnDefine.Remote != "" { - svnSource.CreateElement("remoteBase").SetText(svnDefine.Remote) - } - if svnDefine.Includes != "" { - svnSource.CreateElement("includes").SetText(svnDefine.Includes) - } - if svnDefine.Excludes != "" { - svnSource.CreateElement("excludes").SetText(svnDefine.Excludes) - } + svnDefine.ScmId = projectName + pipeline.Name + svnDefine.appendToEtree(source) case "single_svn": - singleSvnDefine := pipeline.SingleSvnSource - if err != nil { - return "", err - } - svnSource := branchSource.CreateElement("source") - svnSource.CreateAttr("class", "jenkins.scm.impl.SingleSCMSource") - svnSource.CreateAttr("plugin", "scm-api") - - svnSource.CreateElement("id").SetText(projectName + pipeline.Name) - svnSource.CreateElement("name").SetText("master") - - scm := svnSource.CreateElement("scm") - scm.CreateAttr("class", "hudson.scm.SubversionSCM") - scm.CreateAttr("plugin", "subversion") - - location := scm.CreateElement("locations").CreateElement("hudson.scm.SubversionSCM_-ModuleLocation") - if singleSvnDefine.Remote != "" { - location.CreateElement("remote").SetText(singleSvnDefine.Remote) - } - if singleSvnDefine.CredentialId != "" { - location.CreateElement("credentialsId").SetText(singleSvnDefine.CredentialId) - } - location.CreateElement("local").SetText(".") - location.CreateElement("depthOption").SetText("infinity") - location.CreateElement("ignoreExternalsOption").SetText("true") - location.CreateElement("cancelProcessOnExternalsFail").SetText("true") - - svnSource.CreateElement("excludedRegions") - svnSource.CreateElement("includedRegions") - svnSource.CreateElement("excludedUsers") - svnSource.CreateElement("excludedRevprop") - svnSource.CreateElement("excludedCommitMessages") - svnSource.CreateElement("workspaceUpdater").CreateAttr("class", "hudson.scm.subversion.UpdateUpdater") - svnSource.CreateElement("ignoreDirPropChanges").SetText("false") - svnSource.CreateElement("filterChangelog").SetText("false") - svnSource.CreateElement("quietOperation").SetText("true") + singSvnDefine := pipeline.SingleSvnSource + singSvnDefine.ScmId = projectName + pipeline.Name + singSvnDefine.appendToEtree(source) default: return "", fmt.Errorf("unsupport source type") } + factory := project.CreateElement("factory") factory.CreateAttr("class", "org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory") - factoryOwner := factory.CreateElement("owner") factoryOwner.CreateAttr("class", "org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject") factoryOwner.CreateAttr("reference", "../..") @@ -642,171 +831,26 @@ func parseMultiBranchPipelineConfigXml(config string) (*MultiBranchPipeline, err switch source.SelectAttr("class").Value { case "org.jenkinsci.plugins.github_branch_source.GitHubSCMSource": githubSource := &GithubSource{} - if credential := source.SelectElement("credentialsId"); credential != nil { - githubSource.CredentialId = credential.Text() - } - if repoOwner := source.SelectElement("repoOwner"); repoOwner != nil { - githubSource.Owner = repoOwner.Text() - } - if repository := source.SelectElement("repository"); repository != nil { - githubSource.Repo = repository.Text() - } - if apiUri := source.SelectElement("apiUri"); apiUri != nil { - githubSource.ApiUri = apiUri.Text() - } - traits := source.SelectElement("traits") - if branchDiscoverTrait := traits.SelectElement( - "org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait"); branchDiscoverTrait != nil { - strategyId, err := strconv.Atoi(branchDiscoverTrait.SelectElement("strategyId").Text()) - if err != nil { - return nil, err - } - githubSource.DiscoverBranches = strategyId - } - if originPRDiscoverTrait := traits.SelectElement( - "org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait"); originPRDiscoverTrait != nil { - strategyId, err := strconv.Atoi(originPRDiscoverTrait.SelectElement("strategyId").Text()) - if err != nil { - return nil, err - } - githubSource.DiscoverPRFromOrigin = strategyId - } - if forkPRDiscoverTrait := traits.SelectElement( - "org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait"); forkPRDiscoverTrait != nil { - strategyId, err := strconv.Atoi(forkPRDiscoverTrait.SelectElement("strategyId").Text()) - if err != nil { - return nil, err - } - trustClass := forkPRDiscoverTrait.SelectElement("trust").SelectAttr("class").Value - trust := strings.Split(trustClass, "$") - switch trust[1] { - case "TrustContributors": - githubSource.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ - Strategy: strategyId, - Trust: 1, - } - case "TrustEveryone": - githubSource.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ - Strategy: strategyId, - Trust: 2, - } - case "TrustPermission": - githubSource.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ - Strategy: strategyId, - Trust: 3, - } - case "TrustNobody": - githubSource.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ - Strategy: strategyId, - Trust: 4, - } - } - if cloneTrait := traits.SelectElement( - "jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil { - if cloneExtension := cloneTrait.SelectElement( - "extension"); cloneExtension != nil { - githubSource.CloneOption = &GitCloneOption{} - if value, err := strconv.ParseBool(cloneExtension.SelectElement("shallow").Text()); err == nil { - githubSource.CloneOption.Shallow = value - } - if value, err := strconv.ParseInt(cloneExtension.SelectElement("timeout").Text(), 10, 32); err == nil { - githubSource.CloneOption.Timeout = int(value) - } - if value, err := strconv.ParseInt(cloneExtension.SelectElement("depth").Text(), 10, 32); err == nil { - githubSource.CloneOption.Depth = int(value) - } - } - } - - if regexTrait := traits.SelectElement( - "jenkins.scm.impl.trait.RegexSCMHeadFilterTrait"); regexTrait != nil { - if regex := regexTrait.SelectElement("regex"); regex != nil { - githubSource.RegexFilter = regex.Text() - } - } - } - + githubSource.fromEtree(source) pipeline.GitHubSource = githubSource pipeline.SourceType = "github" + case "jenkins.plugins.git.GitSCMSource": gitSource := &GitSource{} - if credential := source.SelectElement("credentialsId"); credential != nil { - gitSource.CredentialId = credential.Text() - } - if remote := source.SelectElement("remote"); remote != nil { - gitSource.Url = remote.Text() - } - - traits := source.SelectElement("traits") - if branchDiscoverTrait := traits.SelectElement( - "jenkins.plugins.git.traits.BranchDiscoveryTrait"); branchDiscoverTrait != nil { - gitSource.DiscoverBranches = true - } - if cloneTrait := traits.SelectElement( - "jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil { - if cloneExtension := cloneTrait.SelectElement( - "extension"); cloneExtension != nil { - gitSource.CloneOption = &GitCloneOption{} - if value, err := strconv.ParseBool(cloneExtension.SelectElement("shallow").Text()); err == nil { - gitSource.CloneOption.Shallow = value - } - if value, err := strconv.ParseInt(cloneExtension.SelectElement("timeout").Text(), 10, 32); err == nil { - gitSource.CloneOption.Timeout = int(value) - } - if value, err := strconv.ParseInt(cloneExtension.SelectElement("depth").Text(), 10, 32); err == nil { - gitSource.CloneOption.Depth = int(value) - } - } - } - if regexTrait := traits.SelectElement( - "jenkins.scm.impl.trait.RegexSCMHeadFilterTrait"); regexTrait != nil { - if regex := regexTrait.SelectElement("regex"); regex != nil { - gitSource.RegexFilter = regex.Text() - } - } - + gitSource.fromEtree(source) pipeline.SourceType = "git" pipeline.GitSource = gitSource + case "jenkins.scm.impl.SingleSCMSource": singleSvnSource := &SingleSvnSource{} - - if scm := source.SelectElement("scm"); scm != nil { - if locations := scm.SelectElement("locations"); locations != nil { - if moduleLocations := locations.SelectElement("hudson.scm.SubversionSCM_-ModuleLocation"); moduleLocations != nil { - if remote := moduleLocations.SelectElement("remote"); remote != nil { - singleSvnSource.Remote = remote.Text() - } - if credentialId := moduleLocations.SelectElement("credentialsId"); credentialId != nil { - singleSvnSource.CredentialId = credentialId.Text() - } - } - } - } + singleSvnSource.fromEtree(source) pipeline.SourceType = "single_svn" - pipeline.SingleSvnSource = singleSvnSource case "jenkins.scm.impl.subversion.SubversionSCMSource": svnSource := &SvnSource{} - - if remote := source.SelectElement("remoteBase"); remote != nil { - svnSource.Remote = remote.Text() - } - - if credentialsId := source.SelectElement("credentialsId"); credentialsId != nil { - svnSource.CredentialId = credentialsId.Text() - } - - if includes := source.SelectElement("includes"); includes != nil { - svnSource.Includes = includes.Text() - } - - if excludes := source.SelectElement("excludes"); excludes != nil { - svnSource.Excludes = excludes.Text() - } - + svnSource.fromEtree(source) pipeline.SourceType = "svn" - pipeline.SvnSource = svnSource } } diff --git a/pkg/models/devops/project_pipeline_test.go b/pkg/models/devops/project_pipeline_test.go index 0af6d9e67..7d3aad7ad 100644 --- a/pkg/models/devops/project_pipeline_test.go +++ b/pkg/models/devops/project_pipeline_test.go @@ -110,7 +110,7 @@ func Test_NoScmPipelineConfig_Param(t *testing.T) { Name: "", Description: "for test", Jenkinsfile: "node{echo 'hello'}", - Parameters: []*Parameter{ + Parameters: &Parameters{ &Parameter{ Name: "d", DefaultValue: "a\nb", @@ -123,7 +123,7 @@ func Test_NoScmPipelineConfig_Param(t *testing.T) { Name: "", Description: "for test", Jenkinsfile: "node{echo 'hello'}", - Parameters: []*Parameter{ + Parameters: &Parameters{ &Parameter{ Name: "a", DefaultValue: "abc", From 9d250d4b039c57ac686da0e8951c9206b8914fd6 Mon Sep 17 00:00:00 2001 From: runzexia Date: Tue, 27 Aug 2019 17:38:56 +0800 Subject: [PATCH 3/9] support create bitbucket server pipeline Signed-off-by: runzexia --- pkg/apis/network/v1alpha1/common.go | 2 +- pkg/models/devops/project_pipeline.go | 207 ++++++++++++++++++--- pkg/models/devops/project_pipeline_test.go | 27 ++- 3 files changed, 207 insertions(+), 29 deletions(-) diff --git a/pkg/apis/network/v1alpha1/common.go b/pkg/apis/network/v1alpha1/common.go index d19a03710..50fa9f706 100644 --- a/pkg/apis/network/v1alpha1/common.go +++ b/pkg/apis/network/v1alpha1/common.go @@ -1,8 +1,8 @@ package v1alpha1 import ( - "kubesphere.io/kubesphere/pkg/apis/network/v1alpha1/numorstring" corev1 "k8s.io/api/core/v1" + "kubesphere.io/kubesphere/pkg/apis/network/v1alpha1/numorstring" ) // A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy diff --git a/pkg/models/devops/project_pipeline.go b/pkg/models/devops/project_pipeline.go index 97808df9a..9cac73b13 100644 --- a/pkg/models/devops/project_pipeline.go +++ b/pkg/models/devops/project_pipeline.go @@ -72,16 +72,17 @@ type NoScmPipeline struct { } type MultiBranchPipeline struct { - Name string `json:"name" description:"name of pipeline"` - Description string `json:"descriptio,omitempty" description:"description of pipeline"` - Discarder *DiscarderProperty `json:"discarder,omitempty" description:"Discarder of pipeline, managing when to drop a pipeline"` - TimerTrigger *TimerTrigger `json:"timer_trigger,omitempty" mapstructure:"timer_trigger" description:"Timer to trigger pipeline run"` - SourceType string `json:"source_type" description:"type of scm, such as github/git/svn"` - GitSource *GitSource `json:"git_source,omitempty" description:"git scm define"` - GitHubSource *GithubSource `json:"github_source,omitempty" description:"github scm define"` - SvnSource *SvnSource `json:"svn_source,omitempty" description:"multi branch svn scm define"` - SingleSvnSource *SingleSvnSource `json:"single_svn_source,omitempty" description:"single branch svn scm define"` - ScriptPath string `json:"script_path" mapstructure:"script_path" description:"script path in scm"` + Name string `json:"name" description:"name of pipeline"` + Description string `json:"descriptio,omitempty" description:"description of pipeline"` + Discarder *DiscarderProperty `json:"discarder,omitempty" description:"Discarder of pipeline, managing when to drop a pipeline"` + TimerTrigger *TimerTrigger `json:"timer_trigger,omitempty" mapstructure:"timer_trigger" description:"Timer to trigger pipeline run"` + SourceType string `json:"source_type" description:"type of scm, such as github/git/svn"` + GitSource *GitSource `json:"git_source,omitempty" description:"git scm define"` + GitHubSource *GithubSource `json:"github_source,omitempty" description:"github scm define"` + SvnSource *SvnSource `json:"svn_source,omitempty" description:"multi branch svn scm define"` + SingleSvnSource *SingleSvnSource `json:"single_svn_source,omitempty" description:"single branch svn scm define"` + BitbucketServerSource *BitbucketServerSource `json:"bitbucket_server_source,omitempty" description:"bitbucket server scm defile"` + ScriptPath string `json:"script_path" mapstructure:"script_path" description:"script path in scm"` } type GitSource struct { @@ -94,16 +95,29 @@ type GitSource struct { } type GithubSource struct { - ScmId string `json:"scm_id,omitempty" description:"uid of scm"` - Owner string `json:"owner,omitempty" mapstructure:"owner" description:"owner of github repo"` - Repo string `json:"repo,omitempty" mapstructure:"repo" description:"repo name of github repo"` - CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access github source"` - ApiUri string `json:"api_uri,omitempty" mapstructure:"api_uri" description:"The api url can specify the location of the github apiserver.For private cloud configuration"` - DiscoverBranches int `json:"discover_branches,omitempty" mapstructure:"discover_branches" description:"Discover branch configuration"` - DiscoverPRFromOrigin int `json:"discover_pr_from_origin,omitempty" mapstructure:"discover_pr_from_origin" description:"Discover origin PR configuration"` - DiscoverPRFromForks *GithubDiscoverPRFromForks `json:"discover_pr_from_forks,omitempty" mapstructure:"discover_pr_from_forks" description:"Discover fork PR configuration"` - CloneOption *GitCloneOption `json:"git_clone_option,omitempty" mapstructure:"git_clone_option" description:"advavced git clone options"` - RegexFilter string `json:"regex_filter,omitempty" mapstructure:"regex_filter" description:"Regex used to match the name of the branch that needs to be run"` + ScmId string `json:"scm_id,omitempty" description:"uid of scm"` + Owner string `json:"owner,omitempty" mapstructure:"owner" description:"owner of github repo"` + Repo string `json:"repo,omitempty" mapstructure:"repo" description:"repo name of github repo"` + CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access github source"` + ApiUri string `json:"api_uri,omitempty" mapstructure:"api_uri" description:"The api url can specify the location of the github apiserver.For private cloud configuration"` + DiscoverBranches int `json:"discover_branches,omitempty" mapstructure:"discover_branches" description:"Discover branch configuration"` + DiscoverPRFromOrigin int `json:"discover_pr_from_origin,omitempty" mapstructure:"discover_pr_from_origin" description:"Discover origin PR configuration"` + DiscoverPRFromForks *DiscoverPRFromForks `json:"discover_pr_from_forks,omitempty" mapstructure:"discover_pr_from_forks" description:"Discover fork PR configuration"` + CloneOption *GitCloneOption `json:"git_clone_option,omitempty" mapstructure:"git_clone_option" description:"advavced git clone options"` + RegexFilter string `json:"regex_filter,omitempty" mapstructure:"regex_filter" description:"Regex used to match the name of the branch that needs to be run"` +} + +type BitbucketServerSource struct { + ScmId string `json:"scm_id,omitempty" description:"uid of scm"` + Owner string `json:"owner,omitempty" mapstructure:"owner" description:"owner of github repo"` + Repo string `json:"repo,omitempty" mapstructure:"repo" description:"repo name of github repo"` + CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access github source"` + ApiUri string `json:"api_uri,omitempty" mapstructure:"api_uri" description:"The api url can specify the location of the github apiserver.For private cloud configuration"` + DiscoverBranches int `json:"discover_branches,omitempty" mapstructure:"discover_branches" description:"Discover branch configuration"` + DiscoverPRFromOrigin int `json:"discover_pr_from_origin,omitempty" mapstructure:"discover_pr_from_origin" description:"Discover origin PR configuration"` + DiscoverPRFromForks *DiscoverPRFromForks `json:"discover_pr_from_forks,omitempty" mapstructure:"discover_pr_from_forks" description:"Discover fork PR configuration"` + CloneOption *GitCloneOption `json:"git_clone_option,omitempty" mapstructure:"git_clone_option" description:"advavced git clone options"` + RegexFilter string `json:"regex_filter,omitempty" mapstructure:"regex_filter" description:"Regex used to match the name of the branch that needs to be run"` } type GitCloneOption struct { @@ -125,7 +139,7 @@ type SingleSvnSource struct { CredentialId string `json:"credential_id,omitempty" mapstructure:"credential_id" description:"credential id to access svn source"` } -type GithubDiscoverPRFromForks struct { +type DiscoverPRFromForks struct { Strategy int `json:"strategy,omitempty" mapstructure:"strategy" description:"github discover startegy"` Trust int `json:"trust,omitempty" mapstructure:"trust" description:"trust user type"` } @@ -491,22 +505,22 @@ func (s *GithubSource) fromEtree(source *etree.Element) *GithubSource { trust := strings.Split(trustClass, "$") switch trust[1] { case "TrustContributors": - s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + s.DiscoverPRFromForks = &DiscoverPRFromForks{ Strategy: strategyId, Trust: 1, } case "TrustEveryone": - s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + s.DiscoverPRFromForks = &DiscoverPRFromForks{ Strategy: strategyId, Trust: 2, } case "TrustPermission": - s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + s.DiscoverPRFromForks = &DiscoverPRFromForks{ Strategy: strategyId, Trust: 3, } case "TrustNobody": - s.DiscoverPRFromForks = &GithubDiscoverPRFromForks{ + s.DiscoverPRFromForks = &DiscoverPRFromForks{ Strategy: strategyId, Trust: 4, } @@ -600,6 +614,139 @@ func (s *GithubSource) appendToEtree(source *etree.Element) *GithubSource { return s } +func (s *BitbucketServerSource) fromEtree(source *etree.Element) *BitbucketServerSource { + if credential := source.SelectElement("credentialsId"); credential != nil { + s.CredentialId = credential.Text() + } + if repoOwner := source.SelectElement("repoOwner"); repoOwner != nil { + s.Owner = repoOwner.Text() + } + if repository := source.SelectElement("repository"); repository != nil { + s.Repo = repository.Text() + } + if apiUri := source.SelectElement("serverUrl"); apiUri != nil { + s.ApiUri = apiUri.Text() + } + traits := source.SelectElement("traits") + if branchDiscoverTrait := traits.SelectElement( + "com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait"); branchDiscoverTrait != nil { + strategyId, _ := strconv.Atoi(branchDiscoverTrait.SelectElement("strategyId").Text()) + s.DiscoverBranches = strategyId + } + if originPRDiscoverTrait := traits.SelectElement( + "com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait"); originPRDiscoverTrait != nil { + strategyId, _ := strconv.Atoi(originPRDiscoverTrait.SelectElement("strategyId").Text()) + s.DiscoverPRFromOrigin = strategyId + } + if forkPRDiscoverTrait := traits.SelectElement( + "com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait"); forkPRDiscoverTrait != nil { + strategyId, _ := strconv.Atoi(forkPRDiscoverTrait.SelectElement("strategyId").Text()) + trustClass := forkPRDiscoverTrait.SelectElement("trust").SelectAttr("class").Value + trust := strings.Split(trustClass, "$") + switch trust[1] { + case "TrustEveryone": + s.DiscoverPRFromForks = &DiscoverPRFromForks{ + Strategy: strategyId, + Trust: 1, + } + case "TrustTeamForks": + s.DiscoverPRFromForks = &DiscoverPRFromForks{ + Strategy: strategyId, + Trust: 2, + } + case "TrustNobody": + s.DiscoverPRFromForks = &DiscoverPRFromForks{ + Strategy: strategyId, + Trust: 3, + } + } + if cloneTrait := traits.SelectElement( + "jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil { + if cloneExtension := cloneTrait.SelectElement( + "extension"); cloneExtension != nil { + s.CloneOption = &GitCloneOption{} + if value, err := strconv.ParseBool(cloneExtension.SelectElement("shallow").Text()); err == nil { + s.CloneOption.Shallow = value + } + if value, err := strconv.ParseInt(cloneExtension.SelectElement("timeout").Text(), 10, 32); err == nil { + s.CloneOption.Timeout = int(value) + } + if value, err := strconv.ParseInt(cloneExtension.SelectElement("depth").Text(), 10, 32); err == nil { + s.CloneOption.Depth = int(value) + } + } + } + + if regexTrait := traits.SelectElement( + "jenkins.scm.impl.trait.RegexSCMHeadFilterTrait"); regexTrait != nil { + if regex := regexTrait.SelectElement("regex"); regex != nil { + s.RegexFilter = regex.Text() + } + } + } + return s +} + +func (s *BitbucketServerSource) appendToEtree(source *etree.Element) *BitbucketServerSource { + source.CreateAttr("class", "com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource") + source.CreateAttr("plugin", "cloudbees-bitbucket-branch-source") + source.CreateElement("id").SetText(s.ScmId) + source.CreateElement("credentialsId").SetText(s.CredentialId) + source.CreateElement("repoOwner").SetText(s.Owner) + source.CreateElement("repository").SetText(s.Repo) + source.CreateElement("serverUrl").SetText(s.ApiUri) + + traits := source.CreateElement("traits") + if s.DiscoverBranches != 0 { + traits.CreateElement("com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait>"). + CreateElement("strategyId").SetText(strconv.Itoa(s.DiscoverBranches)) + } + if s.DiscoverPRFromOrigin != 0 { + traits.CreateElement("com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait"). + CreateElement("strategyId").SetText(strconv.Itoa(s.DiscoverPRFromOrigin)) + } + if s.DiscoverPRFromForks != nil { + forkTrait := traits.CreateElement("com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait") + forkTrait.CreateElement("strategyId").SetText(strconv.Itoa(s.DiscoverPRFromForks.Strategy)) + trustClass := "com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait$" + switch s.DiscoverPRFromForks.Trust { + case 1: + trustClass += "TrustEveryone" + case 2: + trustClass += "TrustTeamForks" + case 3: + trustClass += "TrustNobody" + default: + trustClass += "TrustEveryone" + } + forkTrait.CreateElement("trust").CreateAttr("class", trustClass) + } + if s.CloneOption != nil { + cloneExtension := traits.CreateElement("jenkins.plugins.git.traits.CloneOptionTrait").CreateElement("extension") + cloneExtension.CreateAttr("class", "hudson.plugins.git.extensions.impl.CloneOption") + cloneExtension.CreateElement("shallow").SetText(strconv.FormatBool(s.CloneOption.Shallow)) + cloneExtension.CreateElement("noTags").SetText(strconv.FormatBool(false)) + cloneExtension.CreateElement("reference") + if s.CloneOption.Timeout >= 0 { + cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(s.CloneOption.Timeout)) + } else { + cloneExtension.CreateElement("timeout").SetText(strconv.Itoa(10)) + } + + if s.CloneOption.Depth >= 0 { + cloneExtension.CreateElement("depth").SetText(strconv.Itoa(s.CloneOption.Depth)) + } else { + cloneExtension.CreateElement("depth").SetText(strconv.Itoa(1)) + } + } + if s.RegexFilter != "" { + regexTraits := traits.CreateElement("jenkins.scm.impl.trait.RegexSCMHeadFilterTrait") + regexTraits.CreateAttr("plugin", "scm-api@2.4.0") + regexTraits.CreateElement("regex").SetText(s.RegexFilter) + } + return s +} + func (s *SvnSource) fromEtree(source *etree.Element) *SvnSource { if remote := source.SelectElement("remoteBase"); remote != nil { s.Remote = remote.Text() @@ -779,6 +926,11 @@ func createMultiBranchPipelineConfigXml(projectName string, pipeline *MultiBranc singSvnDefine.ScmId = projectName + pipeline.Name singSvnDefine.appendToEtree(source) + case "bitbucket_server": + bitbucketServerDefine := pipeline.BitbucketServerSource + bitbucketServerDefine.ScmId = projectName + pipeline.Name + bitbucketServerDefine.appendToEtree(source) + default: return "", fmt.Errorf("unsupport source type") } @@ -834,6 +986,11 @@ func parseMultiBranchPipelineConfigXml(config string) (*MultiBranchPipeline, err githubSource.fromEtree(source) pipeline.GitHubSource = githubSource pipeline.SourceType = "github" + case "com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource": + bitbucketServerSource := &BitbucketServerSource{} + bitbucketServerSource.fromEtree(source) + pipeline.BitbucketServerSource = bitbucketServerSource + pipeline.SourceType = "bitbucket_server" case "jenkins.plugins.git.GitSCMSource": gitSource := &GitSource{} diff --git a/pkg/models/devops/project_pipeline_test.go b/pkg/models/devops/project_pipeline_test.go index 7d3aad7ad..38646881c 100644 --- a/pkg/models/devops/project_pipeline_test.go +++ b/pkg/models/devops/project_pipeline_test.go @@ -355,7 +355,28 @@ func Test_MultiBranchPipelineConfig_Source(t *testing.T) { ApiUri: "https://api.github.com", DiscoverBranches: 1, DiscoverPRFromOrigin: 2, - DiscoverPRFromForks: &GithubDiscoverPRFromForks{ + DiscoverPRFromForks: &DiscoverPRFromForks{ + Strategy: 1, + Trust: 1, + }, + }, + }, + &MultiBranchPipeline{ + Name: "", + Description: "for test", + ScriptPath: "Jenkinsfile", + SourceType: "bitbucket_server", + TimerTrigger: &TimerTrigger{ + Interval: "12345566", + }, + BitbucketServerSource: &BitbucketServerSource{ + Owner: "kubesphere", + Repo: "devops", + CredentialId: "github", + ApiUri: "https://api.github.com", + DiscoverBranches: 1, + DiscoverPRFromOrigin: 2, + DiscoverPRFromForks: &DiscoverPRFromForks{ Strategy: 1, Trust: 1, }, @@ -439,7 +460,7 @@ func Test_MultiBranchPipelineCloneConfig(t *testing.T) { ApiUri: "https://api.github.com", DiscoverBranches: 1, DiscoverPRFromOrigin: 2, - DiscoverPRFromForks: &GithubDiscoverPRFromForks{ + DiscoverPRFromForks: &DiscoverPRFromForks{ Strategy: 1, Trust: 1, }, @@ -496,7 +517,7 @@ func Test_MultiBranchPipelineRegexFilter(t *testing.T) { ApiUri: "https://api.github.com", DiscoverBranches: 1, DiscoverPRFromOrigin: 2, - DiscoverPRFromForks: &GithubDiscoverPRFromForks{ + DiscoverPRFromForks: &DiscoverPRFromForks{ Strategy: 1, Trust: 1, }, From 31bbbe0c3e8e14c48e0a0bcfe2e8c1c339c5c257 Mon Sep 17 00:00:00 2001 From: runzexia Date: Tue, 27 Aug 2019 17:42:38 +0800 Subject: [PATCH 4/9] revert network change Signed-off-by: runzexia --- pkg/apis/network/v1alpha1/common.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/apis/network/v1alpha1/common.go b/pkg/apis/network/v1alpha1/common.go index 50fa9f706..d19a03710 100644 --- a/pkg/apis/network/v1alpha1/common.go +++ b/pkg/apis/network/v1alpha1/common.go @@ -1,8 +1,8 @@ package v1alpha1 import ( - corev1 "k8s.io/api/core/v1" "kubesphere.io/kubesphere/pkg/apis/network/v1alpha1/numorstring" + corev1 "k8s.io/api/core/v1" ) // A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy From 93db1f982e1d63c7759f1e3f4e366fabc95b466d Mon Sep 17 00:00:00 2001 From: runzexia Date: Wed, 28 Aug 2019 15:47:15 +0800 Subject: [PATCH 5/9] get devops count by username Signed-off-by: runzexia --- pkg/apis/network/v1alpha1/common.go | 2 +- pkg/apis/tenant/v1alpha2/register.go | 8 +++++++ pkg/apiserver/tenant/tenant.go | 13 ++++++++++++ pkg/models/tenant/devops.go | 31 ++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) diff --git a/pkg/apis/network/v1alpha1/common.go b/pkg/apis/network/v1alpha1/common.go index d19a03710..50fa9f706 100644 --- a/pkg/apis/network/v1alpha1/common.go +++ b/pkg/apis/network/v1alpha1/common.go @@ -1,8 +1,8 @@ package v1alpha1 import ( - "kubesphere.io/kubesphere/pkg/apis/network/v1alpha1/numorstring" corev1 "k8s.io/api/core/v1" + "kubesphere.io/kubesphere/pkg/apis/network/v1alpha1/numorstring" ) // A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy diff --git a/pkg/apis/tenant/v1alpha2/register.go b/pkg/apis/tenant/v1alpha2/register.go index 7e148b30e..f9dfab8a5 100644 --- a/pkg/apis/tenant/v1alpha2/register.go +++ b/pkg/apis/tenant/v1alpha2/register.go @@ -134,6 +134,14 @@ func addWebService(c *restful.Container) error { Returns(http.StatusOK, ok, models.PageableResponse{}). Doc("List the devops projects for the workspace member"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.TenantResourcesTag})) + ws.Route(ws.GET("/devopscount"). + To(tenant.GetDevOpsProjectsCount). + Param(ws.PathParameter("member", "workspace member's username")). + Returns(http.StatusOK, ok, struct { + Count uint32 `json:"count"` + }{}). + Doc("Get the devops projects count for the member"). + Metadata(restfulspec.KeyOpenAPITags, []string{constants.TenantResourcesTag})) ws.Route(ws.POST("/workspaces/{workspace}/devops"). To(tenant.CreateDevopsProject). Param(ws.PathParameter("workspace", "workspace name")). diff --git a/pkg/apiserver/tenant/tenant.go b/pkg/apiserver/tenant/tenant.go index 4e7e52d7f..c4f5fb8ef 100644 --- a/pkg/apiserver/tenant/tenant.go +++ b/pkg/apiserver/tenant/tenant.go @@ -244,6 +244,19 @@ func ListDevopsProjects(req *restful.Request, resp *restful.Response) { resp.WriteAsJson(result) } +func GetDevOpsProjectsCount(req *restful.Request, resp *restful.Response) { + username := req.HeaderParameter(constants.UserNameHeader) + + result, err := tenant.GetDevOpsProjectsCount(username) + if err != nil { + glog.Errorf("%+v", err) + errors.ParseSvcErr(err, resp) + return + } + resp.WriteAsJson(struct { + Count uint32 `json:"count"` + }{Count: result}) +} func DeleteDevopsProject(req *restful.Request, resp *restful.Response) { projectId := req.PathParameter("devops") workspaceName := req.PathParameter("workspace") diff --git a/pkg/models/tenant/devops.go b/pkg/models/tenant/devops.go index bd2927405..90b2e048d 100644 --- a/pkg/models/tenant/devops.go +++ b/pkg/models/tenant/devops.go @@ -22,6 +22,7 @@ import ( "github.com/emicklei/go-restful" "github.com/gocraft/dbr" "github.com/golang/glog" + "k8s.io/klog" "kubesphere.io/kubesphere/pkg/db" "kubesphere.io/kubesphere/pkg/gojenkins" "kubesphere.io/kubesphere/pkg/gojenkins/utils" @@ -105,6 +106,36 @@ func ListDevopsProjects(workspace, username string, conditions *params.Condition return &models.PageableResponse{Items: result, TotalCount: int(count)}, nil } +func GetDevOpsProjectsCount(username string) (uint32, error) { + dbconn := devops_mysql.OpenDatabase() + + query := dbconn.Select(devops.GetColumnsFromStructWithPrefix(devops.DevOpsProjectTableName, devops.DevOpsProject{})...). + From(devops.DevOpsProjectTableName) + var sqconditions []dbr.Builder + + switch username { + case devops.KS_ADMIN: + default: + onCondition := fmt.Sprintf("%s = %s", devops.DevOpsProjectMembershipProjectIdColumn, devops.DevOpsProjectIdColumn) + query.Join(devops.DevOpsProjectMembershipTableName, onCondition) + sqconditions = append(sqconditions, db.Eq(devops.DevOpsProjectMembershipUsernameColumn, username)) + sqconditions = append(sqconditions, db.Eq( + devops.DevOpsProjectMembershipTableName+"."+devops.StatusColumn, devops.StatusActive)) + } + + sqconditions = append(sqconditions, db.Eq( + devops.DevOpsProjectTableName+"."+devops.StatusColumn, devops.StatusActive)) + if len(sqconditions) > 0 { + query.Where(db.And(sqconditions...)) + } + count, err := query.Count() + if err != nil { + klog.Errorf("%+v", err) + return 0, restful.NewError(http.StatusInternalServerError, err.Error()) + } + return count, nil +} + func DeleteDevOpsProject(projectId, username string) error { err := devops.CheckProjectUserInRole(username, projectId, []string{devops.ProjectOwner}) if err != nil { From f0b241251ffcff53a2befb43f7023608dfda8850 Mon Sep 17 00:00:00 2001 From: runzexia Date: Thu, 29 Aug 2019 17:30:01 +0800 Subject: [PATCH 6/9] create scm servers always return match server Signed-off-by: runzexia --- pkg/models/devops/devops.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkg/models/devops/devops.go b/pkg/models/devops/devops.go index 1601a7aca..663ee31a2 100644 --- a/pkg/models/devops/devops.go +++ b/pkg/models/devops/devops.go @@ -148,6 +148,31 @@ func GetSCMServers(scmId string, req *http.Request) ([]byte, error) { } func CreateSCMServers(scmId string, req *http.Request) ([]byte, error) { + requestBody, err := ioutil.ReadAll(req.Body) + if err != nil { + log.Error(err) + return nil, err + } + createReq := &CreateScmServerReq{} + err = json.Unmarshal(requestBody, createReq) + if err != nil { + log.Error(err) + return nil, err + } + req.Body = nil + byteServers, err := GetSCMServers(scmId, req) + if err != nil { + log.Error(err) + return nil, err + } + var servers []*SCMServer + _ = json.Unmarshal(byteServers, &servers) + for _, server := range servers { + if server.ApiURL == createReq.ApiURL { + return json.Marshal(server) + } + } + req.Body = ioutil.NopCloser(bytes.NewReader(requestBody)) baseUrl := fmt.Sprintf(jenkins.Server+CreateSCMServersUrl, scmId) log.Info("Jenkins-url: " + baseUrl) req.Method = http.MethodPost From bbd151e7aa4f3ab61c783d158fc94c943c4100ac Mon Sep 17 00:00:00 2001 From: soulseen Date: Fri, 30 Aug 2019 10:37:09 +0800 Subject: [PATCH 7/9] update package s2ioperator Signed-off-by: soulseen --- go.mod | 2 +- go.sum | 2 + .../github.com/PuerkitoBio/purell/.travis.yml | 11 +- .../github.com/PuerkitoBio/purell/README.md | 3 +- .../github.com/PuerkitoBio/purell/purell.go | 2 +- .../go-openapi/jsonpointer/.travis.yml | 10 +- .../github.com/go-openapi/jsonpointer/go.mod | 8 +- .../github.com/go-openapi/jsonpointer/go.sum | 25 +- .../go-openapi/jsonreference/.travis.yml | 11 +- .../go-openapi/jsonreference/go.mod | 15 +- .../go-openapi/jsonreference/go.sum | 42 +- .../github.com/go-openapi/spec/.golangci.yml | 2 +- vendor/github.com/go-openapi/spec/.travis.yml | 13 +- vendor/github.com/go-openapi/spec/go.mod | 22 +- vendor/github.com/go-openapi/spec/go.sum | 56 +- vendor/github.com/go-openapi/spec/items.go | 7 - vendor/github.com/go-openapi/spec/schema.go | 7 - vendor/github.com/go-openapi/spec/swagger.go | 124 - vendor/github.com/go-openapi/swag/.travis.yml | 11 +- vendor/github.com/go-openapi/swag/README.md | 1 + vendor/github.com/go-openapi/swag/doc.go | 1 + vendor/github.com/go-openapi/swag/go.mod | 13 +- vendor/github.com/go-openapi/swag/go.sum | 21 +- .../github.com/go-openapi/swag/name_lexem.go | 87 - vendor/github.com/go-openapi/swag/split.go | 262 - vendor/github.com/go-openapi/swag/util.go | 92 +- vendor/github.com/gogo/protobuf/LICENSE | 5 +- .../github.com/gogo/protobuf/gogoproto/doc.go | 2 +- .../gogo/protobuf/gogoproto/gogo.pb.go | 215 +- .../gogo/protobuf/gogoproto/gogo.proto | 8 + .../gogo/protobuf/gogoproto/helper.go | 57 + .../github.com/gogo/protobuf/proto/encode.go | 18 - vendor/github.com/gogo/protobuf/proto/lib.go | 80 +- .../protobuf/proto/pointer_unsafe_gogo.go | 2 +- .../gogo/protobuf/proto/properties.go | 30 +- .../gogo/protobuf/proto/table_marshal.go | 319 +- .../gogo/protobuf/proto/table_unmarshal.go | 259 +- vendor/github.com/gogo/protobuf/proto/text.go | 4 +- .../gogo/protobuf/proto/text_parser.go | 26 +- .../gogo/protobuf/proto/wrappers.go | 1888 ++++ .../gogo/protobuf/proto/wrappers_gogo.go | 113 + .../apis/devops/v1alpha1/openapi_generated.go | 162 +- .../apis/devops/v1alpha1/s2ibuilder_types.go | 3 + .../pkg/apis/devops/v1alpha1/s2irun_types.go | 44 +- .../devops/v1alpha1/zz_generated.deepcopy.go | 47 + .../mailru/easyjson/jlexer/lexer.go | 9 +- .../github.com/modern-go/reflect2/type_map.go | 16 +- .../github.com/stretchr/objx/.codeclimate.yml | 8 - vendor/github.com/stretchr/objx/.travis.yml | 19 +- vendor/github.com/stretchr/objx/Gopkg.lock | 30 + vendor/github.com/stretchr/objx/Gopkg.toml | 8 + vendor/github.com/stretchr/objx/README.md | 2 +- vendor/github.com/stretchr/objx/Taskfile.yml | 52 +- vendor/github.com/stretchr/objx/accessors.go | 161 +- vendor/github.com/stretchr/objx/constants.go | 13 + .../github.com/stretchr/objx/conversions.go | 188 +- vendor/github.com/stretchr/objx/go.mod | 8 - vendor/github.com/stretchr/objx/go.sum | 8 - vendor/github.com/stretchr/objx/map.go | 44 +- .../github.com/stretchr/objx/type_specific.go | 346 - .../stretchr/objx/type_specific_codegen.go | 286 +- vendor/github.com/stretchr/objx/value.go | 106 - .../chacha20poly1305/chacha20poly1305_amd64.s | 4 +- .../x/crypto/curve25519/ladderstep_amd64.s | 90 +- .../x/crypto/curve25519/mul_amd64.s | 10 +- .../x/crypto/curve25519/square_amd64.s | 10 +- .../x/crypto/internal/chacha20/asm_ppc64le.s | 668 -- .../crypto/internal/chacha20/chacha_noasm.go | 2 +- .../internal/chacha20/chacha_ppc64le.go | 52 - vendor/golang.org/x/crypto/openpgp/keys.go | 14 +- .../x/crypto/openpgp/packet/private_key.go | 26 +- .../golang.org/x/crypto/poly1305/mac_noasm.go | 2 +- .../golang.org/x/crypto/poly1305/sum_noasm.go | 2 +- .../x/crypto/poly1305/sum_ppc64le.go | 68 - .../x/crypto/poly1305/sum_ppc64le.s | 247 - vendor/golang.org/x/crypto/ssh/cipher.go | 24 +- vendor/golang.org/x/crypto/ssh/client_auth.go | 114 - vendor/golang.org/x/crypto/ssh/common.go | 20 +- vendor/golang.org/x/crypto/ssh/handshake.go | 5 +- vendor/golang.org/x/crypto/ssh/messages.go | 70 - vendor/golang.org/x/crypto/ssh/server.go | 118 +- vendor/golang.org/x/crypto/ssh/ssh_gss.go | 139 - .../x/crypto/ssh/terminal/terminal.go | 63 +- vendor/golang.org/x/crypto/ssh/transport.go | 12 +- .../x/net/internal/socket/sys_posix.go | 6 +- vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s | 17 - vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go | 34 - .../golang.org/x/sys/cpu/cpu_other_ppc64x.go | 12 + vendor/golang.org/x/sys/cpu/cpu_wasm.go | 15 - .../x/sys/cpu/syscall_aix_ppc64_gc.go | 36 - .../golang.org/x/sys/unix/asm_linux_riscv64.s | 54 - .../golang.org/x/sys/unix/asm_openbsd_arm64.s | 29 - vendor/golang.org/x/sys/unix/mkall.sh | 33 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 9 +- vendor/golang.org/x/sys/unix/mkpost.go | 16 - vendor/golang.org/x/sys/unix/mksyscall.go | 7 +- .../x/sys/unix/mksyscall_aix_ppc.go | 13 +- .../x/sys/unix/mksyscall_aix_ppc64.go | 14 +- .../golang.org/x/sys/unix/mksysctl_openbsd.go | 355 - .../golang.org/x/sys/unix/mksysctl_openbsd.pl | 265 + vendor/golang.org/x/sys/unix/mksysnum.go | 2 +- .../{pledge_openbsd.go => openbsd_pledge.go} | 3 + .../{unveil_openbsd.go => openbsd_unveil.go} | 2 + vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 11 +- vendor/golang.org/x/sys/unix/syscall.go | 1 + vendor/golang.org/x/sys/unix/syscall_aix.go | 30 +- .../golang.org/x/sys/unix/syscall_aix_ppc.go | 16 - .../x/sys/unix/syscall_aix_ppc64.go | 47 - .../golang.org/x/sys/unix/syscall_darwin.go | 17 - .../golang.org/x/sys/unix/syscall_freebsd.go | 50 +- vendor/golang.org/x/sys/unix/syscall_linux.go | 128 +- .../x/sys/unix/syscall_linux_arm.go | 19 - .../x/sys/unix/syscall_linux_arm64.go | 13 - .../x/sys/unix/syscall_linux_riscv64.go | 13 - .../golang.org/x/sys/unix/syscall_netbsd.go | 25 +- .../golang.org/x/sys/unix/syscall_openbsd.go | 42 +- .../x/sys/unix/syscall_openbsd_arm64.go | 37 - vendor/golang.org/x/sys/unix/syscall_unix.go | 54 +- vendor/golang.org/x/sys/unix/types_aix.go | 27 +- vendor/golang.org/x/sys/unix/types_darwin.go | 6 - vendor/golang.org/x/sys/unix/types_openbsd.go | 6 - .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 2 - .../x/sys/unix/zerrors_aix_ppc64.go | 4 +- .../x/sys/unix/zerrors_linux_386.go | 167 +- .../x/sys/unix/zerrors_linux_amd64.go | 167 +- .../x/sys/unix/zerrors_linux_arm.go | 167 +- .../x/sys/unix/zerrors_linux_arm64.go | 167 +- .../x/sys/unix/zerrors_linux_mips.go | 167 +- .../x/sys/unix/zerrors_linux_mips64.go | 167 +- .../x/sys/unix/zerrors_linux_mips64le.go | 167 +- .../x/sys/unix/zerrors_linux_mipsle.go | 167 +- .../x/sys/unix/zerrors_linux_ppc64.go | 167 +- .../x/sys/unix/zerrors_linux_ppc64le.go | 167 +- .../x/sys/unix/zerrors_linux_riscv64.go | 167 +- .../x/sys/unix/zerrors_linux_s390x.go | 167 +- .../x/sys/unix/zerrors_linux_sparc64.go | 167 +- .../x/sys/unix/zerrors_openbsd_arm64.go | 1789 ---- .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 52 +- .../x/sys/unix/zsyscall_aix_ppc64.go | 48 +- .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 54 +- .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 44 +- .../x/sys/unix/zsyscall_freebsd_386.go | 2 +- .../x/sys/unix/zsyscall_freebsd_amd64.go | 2 +- .../x/sys/unix/zsyscall_freebsd_arm.go | 2 +- .../x/sys/unix/zsyscall_freebsd_arm64.go | 2 +- .../x/sys/unix/zsyscall_linux_386.go | 55 +- .../x/sys/unix/zsyscall_linux_amd64.go | 55 +- .../x/sys/unix/zsyscall_linux_arm.go | 80 +- .../x/sys/unix/zsyscall_linux_arm64.go | 70 +- .../x/sys/unix/zsyscall_linux_mips.go | 55 +- .../x/sys/unix/zsyscall_linux_mips64.go | 55 +- .../x/sys/unix/zsyscall_linux_mips64le.go | 55 +- .../x/sys/unix/zsyscall_linux_mipsle.go | 55 +- .../x/sys/unix/zsyscall_linux_ppc64.go | 55 +- .../x/sys/unix/zsyscall_linux_ppc64le.go | 55 +- .../x/sys/unix/zsyscall_linux_riscv64.go | 70 +- .../x/sys/unix/zsyscall_linux_s390x.go | 55 +- .../x/sys/unix/zsyscall_linux_sparc64.go | 55 +- .../x/sys/unix/zsyscall_netbsd_386.go | 2 +- .../x/sys/unix/zsyscall_netbsd_amd64.go | 2 +- .../x/sys/unix/zsyscall_netbsd_arm.go | 2 +- .../x/sys/unix/zsyscall_netbsd_arm64.go | 2 +- .../x/sys/unix/zsyscall_openbsd_386.go | 2 +- .../x/sys/unix/zsyscall_openbsd_amd64.go | 2 +- .../x/sys/unix/zsyscall_openbsd_arm.go | 2 +- .../x/sys/unix/zsyscall_openbsd_arm64.go | 1692 ---- .../x/sys/unix/zsysctl_openbsd_386.go | 2 - .../x/sys/unix/zsysctl_openbsd_amd64.go | 2 +- .../x/sys/unix/zsysctl_openbsd_arm.go | 4 +- .../x/sys/unix/zsysctl_openbsd_arm64.go | 275 - .../x/sys/unix/zsysnum_freebsd_386.go | 23 +- .../x/sys/unix/zsysnum_freebsd_amd64.go | 23 +- .../x/sys/unix/zsysnum_freebsd_arm.go | 23 +- .../x/sys/unix/zsysnum_freebsd_arm64.go | 445 +- .../x/sys/unix/zsysnum_linux_386.go | 800 +- .../x/sys/unix/zsysnum_linux_amd64.go | 4 - .../x/sys/unix/zsysnum_linux_arm.go | 736 +- .../x/sys/unix/zsysnum_linux_arm64.go | 5 - .../x/sys/unix/zsysnum_linux_mips.go | 770 +- .../x/sys/unix/zsysnum_linux_mips64.go | 4 - .../x/sys/unix/zsysnum_linux_mips64le.go | 4 - .../x/sys/unix/zsysnum_linux_mipsle.go | 770 +- .../x/sys/unix/zsysnum_linux_ppc64.go | 15 - .../x/sys/unix/zsysnum_linux_ppc64le.go | 15 - .../x/sys/unix/zsysnum_linux_riscv64.go | 5 - .../x/sys/unix/zsysnum_linux_s390x.go | 18 - .../x/sys/unix/zsysnum_linux_sparc64.go | 20 - .../x/sys/unix/zsysnum_openbsd_arm64.go | 217 - .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 45 +- .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 50 +- .../x/sys/unix/ztypes_darwin_386.go | 46 +- .../x/sys/unix/ztypes_darwin_amd64.go | 48 +- .../x/sys/unix/ztypes_darwin_arm.go | 46 +- .../x/sys/unix/ztypes_darwin_arm64.go | 48 +- .../x/sys/unix/ztypes_dragonfly_amd64.go | 38 +- .../x/sys/unix/ztypes_freebsd_386.go | 82 +- .../x/sys/unix/ztypes_freebsd_amd64.go | 72 +- .../x/sys/unix/ztypes_freebsd_arm.go | 72 +- .../x/sys/unix/ztypes_freebsd_arm64.go | 72 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 710 +- .../x/sys/unix/ztypes_linux_amd64.go | 710 +- .../golang.org/x/sys/unix/ztypes_linux_arm.go | 710 +- .../x/sys/unix/ztypes_linux_arm64.go | 710 +- .../x/sys/unix/ztypes_linux_mips.go | 710 +- .../x/sys/unix/ztypes_linux_mips64.go | 710 +- .../x/sys/unix/ztypes_linux_mips64le.go | 710 +- .../x/sys/unix/ztypes_linux_mipsle.go | 710 +- .../x/sys/unix/ztypes_linux_ppc64.go | 710 +- .../x/sys/unix/ztypes_linux_ppc64le.go | 710 +- .../x/sys/unix/ztypes_linux_riscv64.go | 710 +- .../x/sys/unix/ztypes_linux_s390x.go | 710 +- .../x/sys/unix/ztypes_linux_sparc64.go | 710 +- .../x/sys/unix/ztypes_netbsd_386.go | 34 +- .../x/sys/unix/ztypes_netbsd_amd64.go | 40 +- .../x/sys/unix/ztypes_netbsd_arm.go | 40 +- .../x/sys/unix/ztypes_netbsd_arm64.go | 40 +- .../x/sys/unix/ztypes_openbsd_386.go | 10 - .../x/sys/unix/ztypes_openbsd_amd64.go | 10 - .../x/sys/unix/ztypes_openbsd_arm.go | 10 - .../x/sys/unix/ztypes_openbsd_arm64.go | 564 -- .../golang.org/x/sys/windows/dll_windows.go | 8 +- .../golang.org/x/sys/windows/env_windows.go | 34 +- vendor/golang.org/x/sys/windows/mkerrors.bash | 63 - .../x/sys/windows/mkknownfolderids.bash | 27 - vendor/golang.org/x/sys/windows/mksyscall.go | 2 - .../x/sys/windows/registry/mksyscall.go | 2 - .../x/sys/windows/security_windows.go | 400 +- vendor/golang.org/x/sys/windows/service.go | 70 +- .../x/sys/windows/syscall_windows.go | 102 +- .../golang.org/x/sys/windows/types_windows.go | 270 +- .../x/sys/windows/zerrors_windows.go | 6853 --------------- .../x/sys/windows/zknownfolderids_windows.go | 149 - .../x/sys/windows/zsyscall_windows.go | 625 +- vendor/golang.org/x/text/encoding/encoding.go | 2 +- .../x/text/encoding/htmlindex/tables.go | 1 - .../text/encoding/internal/identifier/gen.go | 7 +- .../internal/identifier/identifier.go | 2 +- .../text/encoding/internal/identifier/mib.go | 96 +- .../x/text/encoding/japanese/maketables.go | 4 +- .../x/text/encoding/unicode/unicode.go | 2 +- .../x/text/internal/language/compact.go | 29 - .../text/internal/language/compact/compact.go | 61 - .../x/text/internal/language/compact/gen.go | 64 - .../internal/language/compact/gen_index.go | 113 - .../internal/language/compact/gen_parents.go | 54 - .../internal/language/compact/language.go | 260 - .../text/internal/language/compact/parents.go | 120 - .../text/internal/language/compact/tables.go | 1015 --- .../x/text/internal/language/compact/tags.go | 91 - .../x/text/internal/language/compose.go | 167 - .../x/text/internal/language/coverage.go | 28 - .../x/text/internal/language/gen.go | 1520 ---- .../x/text/internal/language/language.go | 596 -- .../x/text/internal/language/match.go | 226 - .../x/text/internal/language/parse.go | 594 -- .../x/text/internal/language/tables.go | 3431 -------- .../x/text/internal/language/tags.go | 48 - vendor/golang.org/x/text/language/Makefile | 16 + .../x/text/{internal => }/language/common.go | 12 +- vendor/golang.org/x/text/language/coverage.go | 34 +- vendor/golang.org/x/text/language/gen.go | 1515 +++- .../{internal => }/language/gen_common.go | 12 +- .../golang.org/x/text/language/gen_index.go | 162 + vendor/golang.org/x/text/language/index.go | 783 ++ vendor/golang.org/x/text/language/language.go | 716 +- .../x/text/{internal => }/language/lookup.go | 120 +- vendor/golang.org/x/text/language/match.go | 422 +- vendor/golang.org/x/text/language/parse.go | 735 +- vendor/golang.org/x/text/language/tables.go | 3446 +++++++- vendor/golang.org/x/text/language/tags.go | 160 +- .../golang.org/x/text/transform/transform.go | 6 +- vendor/golang.org/x/text/unicode/bidi/bidi.go | 2 +- .../golang.org/x/text/unicode/bidi/bracket.go | 4 +- vendor/golang.org/x/text/unicode/bidi/core.go | 2 +- vendor/golang.org/x/text/unicode/bidi/gen.go | 2 +- .../x/text/unicode/bidi/gen_ranges.go | 2 +- .../x/text/unicode/bidi/tables10.0.0.go | 2 +- .../x/text/unicode/bidi/tables11.0.0.go | 1887 ---- .../x/text/unicode/norm/composition.go | 8 +- .../x/text/unicode/norm/forminfo.go | 19 - vendor/golang.org/x/text/unicode/norm/iter.go | 3 +- .../x/text/unicode/norm/maketables.go | 20 +- .../x/text/unicode/norm/normalize.go | 4 +- .../x/text/unicode/norm/readwriter.go | 4 +- .../x/text/unicode/norm/tables10.0.0.go | 1892 ++-- .../x/text/unicode/norm/tables11.0.0.go | 7693 ----------------- .../x/text/unicode/norm/tables9.0.0.go | 1890 ++-- .../x/text/unicode/norm/transform.go | 10 +- vendor/golang.org/x/text/width/kind_string.go | 16 +- .../golang.org/x/text/width/tables10.0.0.go | 2 +- .../golang.org/x/text/width/tables11.0.0.go | 1330 --- vendor/golang.org/x/text/width/width.go | 6 +- .../x/tools/go/packages/external.go | 29 +- .../golang.org/x/tools/go/packages/golist.go | 22 +- .../x/tools/go/packages/golist_overlay.go | 80 +- .../x/tools/go/packages/packages.go | 42 +- .../x/tools/internal/imports/fix.go | 165 +- .../x/tools/internal/imports/imports.go | 6 + .../x/tools/internal/imports/mod.go | 5 +- vendor/modules.txt | 55 +- 300 files changed, 18100 insertions(+), 52462 deletions(-) delete mode 100644 vendor/github.com/go-openapi/swag/name_lexem.go delete mode 100644 vendor/github.com/go-openapi/swag/split.go create mode 100644 vendor/github.com/gogo/protobuf/proto/wrappers.go create mode 100644 vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go create mode 100644 vendor/github.com/stretchr/objx/Gopkg.lock create mode 100644 vendor/github.com/stretchr/objx/Gopkg.toml create mode 100644 vendor/github.com/stretchr/objx/constants.go delete mode 100644 vendor/github.com/stretchr/objx/go.mod delete mode 100644 vendor/github.com/stretchr/objx/go.sum delete mode 100644 vendor/github.com/stretchr/objx/type_specific.go delete mode 100644 vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s delete mode 100644 vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go delete mode 100644 vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go delete mode 100644 vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s delete mode 100644 vendor/golang.org/x/crypto/ssh/ssh_gss.go delete mode 100644 vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s delete mode 100644 vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go delete mode 100644 vendor/golang.org/x/sys/cpu/cpu_wasm.go delete mode 100644 vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_riscv64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/mksysctl_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl rename vendor/golang.org/x/sys/unix/{pledge_openbsd.go => openbsd_pledge.go} (98%) rename vendor/golang.org/x/sys/unix/{unveil_openbsd.go => openbsd_unveil.go} (98%) delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/windows/mkerrors.bash delete mode 100644 vendor/golang.org/x/sys/windows/mkknownfolderids.bash delete mode 100644 vendor/golang.org/x/sys/windows/zerrors_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/zknownfolderids_windows.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/compact.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/gen.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/gen_index.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/gen_parents.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/language.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/parents.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/tables.go delete mode 100644 vendor/golang.org/x/text/internal/language/compact/tags.go delete mode 100644 vendor/golang.org/x/text/internal/language/compose.go delete mode 100644 vendor/golang.org/x/text/internal/language/coverage.go delete mode 100644 vendor/golang.org/x/text/internal/language/gen.go delete mode 100644 vendor/golang.org/x/text/internal/language/language.go delete mode 100644 vendor/golang.org/x/text/internal/language/match.go delete mode 100644 vendor/golang.org/x/text/internal/language/parse.go delete mode 100644 vendor/golang.org/x/text/internal/language/tables.go delete mode 100644 vendor/golang.org/x/text/internal/language/tags.go create mode 100644 vendor/golang.org/x/text/language/Makefile rename vendor/golang.org/x/text/{internal => }/language/common.go (50%) rename vendor/golang.org/x/text/{internal => }/language/gen_common.go (60%) create mode 100644 vendor/golang.org/x/text/language/gen_index.go create mode 100644 vendor/golang.org/x/text/language/index.go rename vendor/golang.org/x/text/{internal => }/language/lookup.go (80%) delete mode 100644 vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/tables11.0.0.go delete mode 100644 vendor/golang.org/x/text/width/tables11.0.0.go diff --git a/go.mod b/go.mod index 77355a156..826e700db 100644 --- a/go.mod +++ b/go.mod @@ -76,7 +76,7 @@ require ( github.com/knative/pkg v0.0.0-20190314204845-cd278f2d3394 github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect github.com/kubernetes-sigs/application v0.0.0-20190404151855-67ae7f915d4e - github.com/kubesphere/s2ioperator v0.0.12 + github.com/kubesphere/s2ioperator v0.0.13 github.com/kubesphere/sonargo v0.0.2 github.com/leodido/go-urn v1.1.0 // indirect github.com/lib/pq v1.2.0 // indirect diff --git a/go.sum b/go.sum index cb4b71993..6569f213a 100644 --- a/go.sum +++ b/go.sum @@ -265,6 +265,8 @@ github.com/kubesphere/kiali v0.15.1-0.20190407071308-6b5b818211c3 h1:5IASnVaVqZF github.com/kubesphere/kiali v0.15.1-0.20190407071308-6b5b818211c3/go.mod h1:Y1EqeixoXkKkU8I+yvOfhdh21+8+etFE6wYOVT2XFdI= github.com/kubesphere/s2ioperator v0.0.12 h1:gEDDjKw7q7gQUuy5qtBIV/adZEwk5liJUBL4CqyOOOY= github.com/kubesphere/s2ioperator v0.0.12/go.mod h1:dv9L+zRYDlHvnKPp0j6VHRtlGB1BU+lloltW9SAWqVU= +github.com/kubesphere/s2ioperator v0.0.13 h1:K6RdjaFluhn/GterbnIykORrueAZcwR/Qj3MsVI4qQs= +github.com/kubesphere/s2ioperator v0.0.13/go.mod h1:dv9L+zRYDlHvnKPp0j6VHRtlGB1BU+lloltW9SAWqVU= github.com/kubesphere/sonargo v0.0.2 h1:hsSRE3sv3mkPcUAeSABdp7rtfcNW2zzeHXzFa01CTkU= github.com/kubesphere/sonargo v0.0.2/go.mod h1:ww8n9ANlDXhX5PBZ18iaRnCgEkXN0GMml3/KZXOZ11w= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= diff --git a/vendor/github.com/PuerkitoBio/purell/.travis.yml b/vendor/github.com/PuerkitoBio/purell/.travis.yml index cf31e6af6..facfc91c6 100644 --- a/vendor/github.com/PuerkitoBio/purell/.travis.yml +++ b/vendor/github.com/PuerkitoBio/purell/.travis.yml @@ -1,12 +1,7 @@ language: go go: - - 1.4.x - - 1.5.x - - 1.6.x - - 1.7.x - - 1.8.x - - 1.9.x - - "1.10.x" - - "1.11.x" + - 1.4 + - 1.5 + - 1.6 - tip diff --git a/vendor/github.com/PuerkitoBio/purell/README.md b/vendor/github.com/PuerkitoBio/purell/README.md index 07de0c498..09e8a32cb 100644 --- a/vendor/github.com/PuerkitoBio/purell/README.md +++ b/vendor/github.com/PuerkitoBio/purell/README.md @@ -4,7 +4,7 @@ Purell is a tiny Go library to normalize URLs. It returns a pure URL. Pure-ell. Based on the [wikipedia paper][wiki] and the [RFC 3986 document][rfc]. -[![build status](https://travis-ci.org/PuerkitoBio/purell.svg?branch=master)](http://travis-ci.org/PuerkitoBio/purell) +[![build status](https://secure.travis-ci.org/PuerkitoBio/purell.png)](http://travis-ci.org/PuerkitoBio/purell) ## Install @@ -12,7 +12,6 @@ Based on the [wikipedia paper][wiki] and the [RFC 3986 document][rfc]. ## Changelog -* **v1.1.1** : Fix failing test due to Go1.12 changes (thanks to @ianlancetaylor). * **2016-11-14 (v1.1.0)** : IDN: Conform to RFC 5895: Fold character width (thanks to @beeker1121). * **2016-07-27 (v1.0.0)** : Normalize IDN to ASCII (thanks to @zenovich). * **2015-02-08** : Add fix for relative paths issue ([PR #5][pr5]) and add fix for unnecessary encoding of reserved characters ([see issue #7][iss7]). diff --git a/vendor/github.com/PuerkitoBio/purell/purell.go b/vendor/github.com/PuerkitoBio/purell/purell.go index 6d0fc190a..645e1b76f 100644 --- a/vendor/github.com/PuerkitoBio/purell/purell.go +++ b/vendor/github.com/PuerkitoBio/purell/purell.go @@ -299,7 +299,7 @@ func sortQuery(u *url.URL) { if len(q) > 0 { arKeys := make([]string, len(q)) i := 0 - for k := range q { + for k, _ := range q { arKeys[i] = k i++ } diff --git a/vendor/github.com/go-openapi/jsonpointer/.travis.yml b/vendor/github.com/go-openapi/jsonpointer/.travis.yml index 9aef9184e..3436c4590 100644 --- a/vendor/github.com/go-openapi/jsonpointer/.travis.yml +++ b/vendor/github.com/go-openapi/jsonpointer/.travis.yml @@ -1,15 +1,15 @@ after_success: - bash <(curl -s https://codecov.io/bash) go: +- '1.9' +- 1.10.x - 1.11.x -- 1.12.x install: -- GO111MODULE=off go get -u gotest.tools/gotestsum -env: -- GO111MODULE=on +- go get -u github.com/stretchr/testify/assert +- go get -u github.com/go-openapi/swag language: go notifications: slack: secure: a5VgoiwB1G/AZqzmephPZIhEB9avMlsWSlVnM1dSAtYAwdrQHGTQxAmpOxYIoSPDhWNN5bfZmjd29++UlTwLcHSR+e0kJhH6IfDlsHj/HplNCJ9tyI0zYc7XchtdKgeMxMzBKCzgwFXGSbQGydXTliDNBo0HOzmY3cou/daMFTP60K+offcjS+3LRAYb1EroSRXZqrk1nuF/xDL3792DZUdPMiFR/L/Df6y74D6/QP4sTkTDFQitz4Wy/7jbsfj8dG6qK2zivgV6/l+w4OVjFkxVpPXogDWY10vVXNVynqxfJ7to2d1I9lNCHE2ilBCkWMIPdyJF7hjF8pKW+82yP4EzRh0vu8Xn0HT5MZpQxdRY/YMxNrWaG7SxsoEaO4q5uhgdzAqLYY3TRa7MjIK+7Ur+aqOeTXn6OKwVi0CjvZ6mIU3WUKSwiwkFZMbjRAkSb5CYwMEfGFO/z964xz83qGt6WAtBXNotqCQpTIiKtDHQeLOMfksHImCg6JLhQcWBVxamVgu0G3Pdh8Y6DyPnxraXY95+QDavbjqv7TeYT9T/FNnrkXaTTK0s4iWE5H4ACU0Qvz0wUYgfQrZv0/Hp7V17+rabUwnzYySHCy9SWX/7OV9Cfh31iMp9ZIffr76xmmThtOEqs8TrTtU6BWI3rWwvA9cXQipZTVtL0oswrGw= script: -- gotestsum -f short-verbose -- -race -coverprofile=coverage.txt -covermode=atomic ./... +- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./... diff --git a/vendor/github.com/go-openapi/jsonpointer/go.mod b/vendor/github.com/go-openapi/jsonpointer/go.mod index 422045df2..eb4d623c5 100644 --- a/vendor/github.com/go-openapi/jsonpointer/go.mod +++ b/vendor/github.com/go-openapi/jsonpointer/go.mod @@ -1,6 +1,10 @@ module github.com/go-openapi/jsonpointer require ( - github.com/go-openapi/swag v0.19.2 - github.com/stretchr/testify v1.3.0 + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/go-openapi/swag v0.17.0 + github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/testify v1.2.2 + gopkg.in/yaml.v2 v2.2.1 // indirect ) diff --git a/vendor/github.com/go-openapi/jsonpointer/go.sum b/vendor/github.com/go-openapi/jsonpointer/go.sum index f5e28beb4..c71f4d7a2 100644 --- a/vendor/github.com/go-openapi/jsonpointer/go.sum +++ b/vendor/github.com/go-openapi/jsonpointer/go.sum @@ -1,22 +1,11 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/go-openapi/swag v0.17.0 h1:7wu+dZ5k83kvUWeAb+WUkFiUhDzwGqzTR/NhWzeo1JU= +github.com/go-openapi/swag v0.17.0/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/go-openapi/jsonreference/.travis.yml b/vendor/github.com/go-openapi/jsonreference/.travis.yml index 40b90757d..40034d28d 100644 --- a/vendor/github.com/go-openapi/jsonreference/.travis.yml +++ b/vendor/github.com/go-openapi/jsonreference/.travis.yml @@ -1,15 +1,16 @@ after_success: - bash <(curl -s https://codecov.io/bash) go: +- '1.9' +- 1.10.x - 1.11.x -- 1.12.x install: -- GO111MODULE=off go get -u gotest.tools/gotestsum -env: -- GO111MODULE=on +- go get -u github.com/stretchr/testify/assert +- go get -u github.com/PuerkitoBio/purell +- go get -u github.com/go-openapi/jsonpointer language: go notifications: slack: secure: OpQG/36F7DSF00HLm9WZMhyqFCYYyYTsVDObW226cWiR8PWYiNfLZiSEvIzT1Gx4dDjhigKTIqcLhG34CkL5iNXDjm9Yyo2RYhQPlK8NErNqUEXuBqn4RqYHW48VGhEhOyDd4Ei0E2FN5ZbgpvHgtpkdZ6XDi64r3Ac89isP9aPHXQTuv2Jog6b4/OKKiUTftLcTIst0p4Cp3gqOJWf1wnoj+IadWiECNVQT6zb47IYjtyw6+uV8iUjTzdKcRB6Zc6b4Dq7JAg1Zd7Jfxkql3hlKp4PNlRf9Cy7y5iA3G7MLyg3FcPX5z2kmcyPt2jOTRMBWUJ5zIQpOxizAcN8WsT3WWBL5KbuYK6k0PzujrIDLqdxGpNmjkkMfDBT9cKmZpm2FdW+oZgPFJP+oKmAo4u4KJz/vjiPTXgQlN5bmrLuRMCp+AwC5wkIohTqWZVPE2TK6ZSnMYcg/W39s+RP/9mJoyryAvPSpBOLTI+biCgaUCTOAZxNTWpMFc3tPYntc41WWkdKcooZ9JA5DwfcaVFyTGQ3YXz+HvX6G1z/gW0Q/A4dBi9mj2iE1xm7tRTT+4VQ2AXFvSEI1HJpfPgYnwAtwOD1v3Qm2EUHk9sCdtEDR4wVGEPIVn44GnwFMnGKx9JWppMPYwFu3SVDdHt+E+LOlhZUply11Aa+IVrT2KUQ= script: -- gotestsum -f short-verbose -- -race -coverprofile=coverage.txt -covermode=atomic ./... +- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./... diff --git a/vendor/github.com/go-openapi/jsonreference/go.mod b/vendor/github.com/go-openapi/jsonreference/go.mod index 35adddfe4..6d15a7050 100644 --- a/vendor/github.com/go-openapi/jsonreference/go.mod +++ b/vendor/github.com/go-openapi/jsonreference/go.mod @@ -1,10 +1,15 @@ module github.com/go-openapi/jsonreference require ( - github.com/PuerkitoBio/purell v1.1.1 + github.com/PuerkitoBio/purell v1.1.0 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect - github.com/go-openapi/jsonpointer v0.19.2 - github.com/stretchr/testify v1.3.0 - golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 // indirect - golang.org/x/text v0.3.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/go-openapi/jsonpointer v0.17.0 + github.com/go-openapi/swag v0.17.0 // indirect + github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/testify v1.2.2 + golang.org/x/net v0.0.0-20181005035420-146acd28ed58 // indirect + golang.org/x/text v0.3.0 // indirect + gopkg.in/yaml.v2 v2.2.1 // indirect ) diff --git a/vendor/github.com/go-openapi/jsonreference/go.sum b/vendor/github.com/go-openapi/jsonreference/go.sum index f1a7a34e3..ec9bdbc28 100644 --- a/vendor/github.com/go-openapi/jsonreference/go.sum +++ b/vendor/github.com/go-openapi/jsonreference/go.sum @@ -1,36 +1,20 @@ -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4= +github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/go-openapi/jsonpointer v0.17.0 h1:Bpl2DtZ6k7wKqfFs7e+4P08+M9I3FQgn09a1UsRUQbk= +github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/swag v0.17.0 h1:7wu+dZ5k83kvUWeAb+WUkFiUhDzwGqzTR/NhWzeo1JU= +github.com/go-openapi/swag v0.17.0/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58 h1:otZG8yDCO4LVps5+9bxOeNiCvgmOyt96J3roHTYs7oE= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/go-openapi/spec/.golangci.yml b/vendor/github.com/go-openapi/spec/.golangci.yml index 3e33f9f2e..00277082f 100644 --- a/vendor/github.com/go-openapi/spec/.golangci.yml +++ b/vendor/github.com/go-openapi/spec/.golangci.yml @@ -8,7 +8,7 @@ linters-settings: maligned: suggest-new: true dupl: - threshold: 200 + threshold: 100 goconst: min-len: 2 min-occurrences: 2 diff --git a/vendor/github.com/go-openapi/spec/.travis.yml b/vendor/github.com/go-openapi/spec/.travis.yml index aa26d8763..a4f03484b 100644 --- a/vendor/github.com/go-openapi/spec/.travis.yml +++ b/vendor/github.com/go-openapi/spec/.travis.yml @@ -1,15 +1,18 @@ after_success: - bash <(curl -s https://codecov.io/bash) go: +- '1.9' +- 1.10.x - 1.11.x -- 1.12.x install: -- GO111MODULE=off go get -u gotest.tools/gotestsum -env: -- GO111MODULE=on +- go get -u github.com/stretchr/testify +- go get -u github.com/go-openapi/swag +- go get -u gopkg.in/yaml.v2 +- go get -u github.com/go-openapi/jsonpointer +- go get -u github.com/go-openapi/jsonreference language: go notifications: slack: secure: QUWvCkBBK09GF7YtEvHHVt70JOkdlNBG0nIKu/5qc4/nW5HP8I2w0SEf/XR2je0eED1Qe3L/AfMCWwrEj+IUZc3l4v+ju8X8R3Lomhme0Eb0jd1MTMCuPcBT47YCj0M7RON7vXtbFfm1hFJ/jLe5+9FXz0hpXsR24PJc5ZIi/ogNwkaPqG4BmndzecpSh0vc2FJPZUD9LT0I09REY/vXR0oQAalLkW0asGD5taHZTUZq/kBpsNxaAFrLM23i4mUcf33M5fjLpvx5LRICrX/57XpBrDh2TooBU6Qj3CgoY0uPRYUmSNxbVx1czNzl2JtEpb5yjoxfVPQeg0BvQM00G8LJINISR+ohrjhkZmAqchDupAX+yFrxTtORa78CtnIL6z/aTNlgwwVD8kvL/1pFA/JWYmKDmz93mV/+6wubGzNSQCstzjkFA4/iZEKewKUoRIAi/fxyscP6L/rCpmY/4llZZvrnyTqVbt6URWpopUpH4rwYqreXAtJxJsfBJIeSmUIiDIOMGkCTvyTEW3fWGmGoqWtSHLoaWDyAIGb7azb+KvfpWtEcoPFWfSWU+LGee0A/YsUhBl7ADB9A0CJEuR8q4BPpKpfLwPKSiKSAXL7zDkyjExyhtgqbSl2jS+rKIHOZNL8JkCcTP2MKMVd563C5rC5FMKqu3S9m2b6380E= script: -- gotestsum -f short-verbose -- -race -coverprofile=coverage.txt -covermode=atomic ./... +- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./... diff --git a/vendor/github.com/go-openapi/spec/go.mod b/vendor/github.com/go-openapi/spec/go.mod index 42073be00..5af64c10b 100644 --- a/vendor/github.com/go-openapi/spec/go.mod +++ b/vendor/github.com/go-openapi/spec/go.mod @@ -1,14 +1,16 @@ module github.com/go-openapi/spec require ( - github.com/go-openapi/jsonpointer v0.19.2 - github.com/go-openapi/jsonreference v0.19.2 - github.com/go-openapi/swag v0.19.2 - github.com/kr/pty v1.1.5 // indirect - github.com/stretchr/objx v0.2.0 // indirect - github.com/stretchr/testify v1.3.0 - golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 // indirect - golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f // indirect - golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59 // indirect - gopkg.in/yaml.v2 v2.2.2 + github.com/PuerkitoBio/purell v1.1.0 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/go-openapi/jsonpointer v0.17.0 + github.com/go-openapi/jsonreference v0.17.0 + github.com/go-openapi/swag v0.17.0 + github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/testify v1.2.2 + golang.org/x/net v0.0.0-20181005035420-146acd28ed58 // indirect + golang.org/x/text v0.3.0 // indirect + gopkg.in/yaml.v2 v2.2.1 ) diff --git a/vendor/github.com/go-openapi/spec/go.sum b/vendor/github.com/go-openapi/spec/go.sum index 73e97a2d7..ab6bfb608 100644 --- a/vendor/github.com/go-openapi/spec/go.sum +++ b/vendor/github.com/go-openapi/spec/go.sum @@ -1,66 +1,22 @@ github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-openapi/jsonpointer v0.17.0 h1:nH6xp8XdXHx8dqveo0ZuJBluCO2qGrPbDNZ0dwoRHP0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.0 h1:FTUMcX77w5rQkClIzDtTxvn6Bsa894CcrzNj2MMfeg8= -github.com/go-openapi/jsonpointer v0.19.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonreference v0.19.0 h1:BqWKpV1dFd+AuiKlgtddwVIFQsuMpxfBDBHGfM2yNpk= -github.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/swag v0.17.0 h1:iqrgMg7Q7SvtbWLlltPrkMs0UBJI6oTSs79JFRUi880= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/go-openapi/jsonpointer v0.17.0 h1:Bpl2DtZ6k7wKqfFs7e+4P08+M9I3FQgn09a1UsRUQbk= +github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonreference v0.17.0 h1:d/o7/fsLWWQZACbihvZxcyLQ59jfUVs7WOJv/ak7T7A= +github.com/go-openapi/jsonreference v0.17.0/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/swag v0.17.0 h1:7wu+dZ5k83kvUWeAb+WUkFiUhDzwGqzTR/NhWzeo1JU= +github.com/go-openapi/swag v0.17.0/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/net v0.0.0-20181005035420-146acd28ed58 h1:otZG8yDCO4LVps5+9bxOeNiCvgmOyt96J3roHTYs7oE= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/go-openapi/spec/items.go b/vendor/github.com/go-openapi/spec/items.go index 365d16315..78389317e 100644 --- a/vendor/github.com/go-openapi/spec/items.go +++ b/vendor/github.com/go-openapi/spec/items.go @@ -29,7 +29,6 @@ const ( // SimpleSchema describe swagger simple schemas for parameters and headers type SimpleSchema struct { Type string `json:"type,omitempty"` - Nullable bool `json:"nullable,omitempty"` Format string `json:"format,omitempty"` Items *Items `json:"items,omitempty"` CollectionFormat string `json:"collectionFormat,omitempty"` @@ -92,12 +91,6 @@ func (i *Items) Typed(tpe, format string) *Items { return i } -// AsNullable flags this schema as nullable. -func (i *Items) AsNullable() *Items { - i.Nullable = true - return i -} - // CollectionOf a fluent builder method for an array item func (i *Items) CollectionOf(items *Items, format string) *Items { i.Type = jsonArray diff --git a/vendor/github.com/go-openapi/spec/schema.go b/vendor/github.com/go-openapi/spec/schema.go index 37858ece9..ce30d26e3 100644 --- a/vendor/github.com/go-openapi/spec/schema.go +++ b/vendor/github.com/go-openapi/spec/schema.go @@ -163,7 +163,6 @@ type SchemaProps struct { Schema SchemaURL `json:"-"` Description string `json:"description,omitempty"` Type StringOrArray `json:"type,omitempty"` - Nullable bool `json:"nullable,omitempty"` Format string `json:"format,omitempty"` Title string `json:"title,omitempty"` Default interface{} `json:"default,omitempty"` @@ -303,12 +302,6 @@ func (s *Schema) AddType(tpe, format string) *Schema { return s } -// AsNullable flags this schema as nullable. -func (s *Schema) AsNullable() *Schema { - s.Nullable = true - return s -} - // CollectionOf a fluent builder method for an array parameter func (s *Schema) CollectionOf(items Schema) *Schema { s.Type = []string{jsonArray} diff --git a/vendor/github.com/go-openapi/spec/swagger.go b/vendor/github.com/go-openapi/spec/swagger.go index 44722ffd5..454617e58 100644 --- a/vendor/github.com/go-openapi/spec/swagger.go +++ b/vendor/github.com/go-openapi/spec/swagger.go @@ -15,8 +15,6 @@ package spec import ( - "bytes" - "encoding/gob" "encoding/json" "fmt" "strconv" @@ -70,36 +68,6 @@ func (s *Swagger) UnmarshalJSON(data []byte) error { return nil } -// GobEncode provides a safe gob encoder for Swagger, including extensions -func (s Swagger) GobEncode() ([]byte, error) { - var b bytes.Buffer - raw := struct { - Props SwaggerProps - Ext VendorExtensible - }{ - Props: s.SwaggerProps, - Ext: s.VendorExtensible, - } - err := gob.NewEncoder(&b).Encode(raw) - return b.Bytes(), err -} - -// GobDecode provides a safe gob decoder for Swagger, including extensions -func (s *Swagger) GobDecode(b []byte) error { - var raw struct { - Props SwaggerProps - Ext VendorExtensible - } - buf := bytes.NewBuffer(b) - err := gob.NewDecoder(buf).Decode(&raw) - if err != nil { - return err - } - s.SwaggerProps = raw.Props - s.VendorExtensible = raw.Ext - return nil -} - // SwaggerProps captures the top-level properties of an Api specification // // NOTE: validation rules @@ -125,98 +93,6 @@ type SwaggerProps struct { ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"` } -type swaggerPropsAlias SwaggerProps - -type gobSwaggerPropsAlias struct { - Security []map[string]struct { - List []string - Pad bool - } - Alias *swaggerPropsAlias - SecurityIsEmpty bool -} - -// GobEncode provides a safe gob encoder for SwaggerProps, including empty security requirements -func (o SwaggerProps) GobEncode() ([]byte, error) { - raw := gobSwaggerPropsAlias{ - Alias: (*swaggerPropsAlias)(&o), - } - - var b bytes.Buffer - if o.Security == nil { - // nil security requirement - err := gob.NewEncoder(&b).Encode(raw) - return b.Bytes(), err - } - - if len(o.Security) == 0 { - // empty, but non-nil security requirement - raw.SecurityIsEmpty = true - raw.Alias.Security = nil - err := gob.NewEncoder(&b).Encode(raw) - return b.Bytes(), err - } - - raw.Security = make([]map[string]struct { - List []string - Pad bool - }, 0, len(o.Security)) - for _, req := range o.Security { - v := make(map[string]struct { - List []string - Pad bool - }, len(req)) - for k, val := range req { - v[k] = struct { - List []string - Pad bool - }{ - List: val, - } - } - raw.Security = append(raw.Security, v) - } - - err := gob.NewEncoder(&b).Encode(raw) - return b.Bytes(), err -} - -// GobDecode provides a safe gob decoder for SwaggerProps, including empty security requirements -func (o *SwaggerProps) GobDecode(b []byte) error { - var raw gobSwaggerPropsAlias - - buf := bytes.NewBuffer(b) - err := gob.NewDecoder(buf).Decode(&raw) - if err != nil { - return err - } - if raw.Alias == nil { - return nil - } - - switch { - case raw.SecurityIsEmpty: - // empty, but non-nil security requirement - raw.Alias.Security = []map[string][]string{} - case len(raw.Alias.Security) == 0: - // nil security requirement - raw.Alias.Security = nil - default: - raw.Alias.Security = make([]map[string][]string, 0, len(raw.Security)) - for _, req := range raw.Security { - v := make(map[string][]string, len(req)) - for k, val := range req { - v[k] = make([]string, 0, len(val.List)) - v[k] = append(v[k], val.List...) - } - raw.Alias.Security = append(raw.Alias.Security, v) - } - } - - *o = *(*SwaggerProps)(raw.Alias) - return nil -} - // Dependencies represent a dependencies property type Dependencies map[string]SchemaOrStringArray diff --git a/vendor/github.com/go-openapi/swag/.travis.yml b/vendor/github.com/go-openapi/swag/.travis.yml index aa26d8763..bd3a2e527 100644 --- a/vendor/github.com/go-openapi/swag/.travis.yml +++ b/vendor/github.com/go-openapi/swag/.travis.yml @@ -1,15 +1,16 @@ after_success: - bash <(curl -s https://codecov.io/bash) go: +- '1.9' +- 1.10.x - 1.11.x -- 1.12.x install: -- GO111MODULE=off go get -u gotest.tools/gotestsum -env: -- GO111MODULE=on +- go get -u github.com/stretchr/testify +- go get -u github.com/mailru/easyjson +- go get -u gopkg.in/yaml.v2 language: go notifications: slack: secure: QUWvCkBBK09GF7YtEvHHVt70JOkdlNBG0nIKu/5qc4/nW5HP8I2w0SEf/XR2je0eED1Qe3L/AfMCWwrEj+IUZc3l4v+ju8X8R3Lomhme0Eb0jd1MTMCuPcBT47YCj0M7RON7vXtbFfm1hFJ/jLe5+9FXz0hpXsR24PJc5ZIi/ogNwkaPqG4BmndzecpSh0vc2FJPZUD9LT0I09REY/vXR0oQAalLkW0asGD5taHZTUZq/kBpsNxaAFrLM23i4mUcf33M5fjLpvx5LRICrX/57XpBrDh2TooBU6Qj3CgoY0uPRYUmSNxbVx1czNzl2JtEpb5yjoxfVPQeg0BvQM00G8LJINISR+ohrjhkZmAqchDupAX+yFrxTtORa78CtnIL6z/aTNlgwwVD8kvL/1pFA/JWYmKDmz93mV/+6wubGzNSQCstzjkFA4/iZEKewKUoRIAi/fxyscP6L/rCpmY/4llZZvrnyTqVbt6URWpopUpH4rwYqreXAtJxJsfBJIeSmUIiDIOMGkCTvyTEW3fWGmGoqWtSHLoaWDyAIGb7azb+KvfpWtEcoPFWfSWU+LGee0A/YsUhBl7ADB9A0CJEuR8q4BPpKpfLwPKSiKSAXL7zDkyjExyhtgqbSl2jS+rKIHOZNL8JkCcTP2MKMVd563C5rC5FMKqu3S9m2b6380E= script: -- gotestsum -f short-verbose -- -race -coverprofile=coverage.txt -covermode=atomic ./... +- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./... diff --git a/vendor/github.com/go-openapi/swag/README.md b/vendor/github.com/go-openapi/swag/README.md index eb60ae80a..459a3e18d 100644 --- a/vendor/github.com/go-openapi/swag/README.md +++ b/vendor/github.com/go-openapi/swag/README.md @@ -19,4 +19,5 @@ You may also use it standalone for your projects. This repo has only few dependencies outside of the standard library: +* JSON utilities depend on github.com/mailru/easyjson * YAML utilities depend on gopkg.in/yaml.v2 diff --git a/vendor/github.com/go-openapi/swag/doc.go b/vendor/github.com/go-openapi/swag/doc.go index 8d2c8c501..e01e1a023 100644 --- a/vendor/github.com/go-openapi/swag/doc.go +++ b/vendor/github.com/go-openapi/swag/doc.go @@ -27,6 +27,7 @@ You may also use it standalone for your projects. This repo has only few dependencies outside of the standard library: + * JSON utilities depend on github.com/mailru/easyjson * YAML utilities depend on gopkg.in/yaml.v2 */ package swag diff --git a/vendor/github.com/go-openapi/swag/go.mod b/vendor/github.com/go-openapi/swag/go.mod index 15bbb0822..9eb936a19 100644 --- a/vendor/github.com/go-openapi/swag/go.mod +++ b/vendor/github.com/go-openapi/swag/go.mod @@ -2,13 +2,8 @@ module github.com/go-openapi/swag require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/kr/pretty v0.1.0 // indirect - github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 - github.com/stretchr/testify v1.3.0 - gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect - gopkg.in/yaml.v2 v2.2.2 + github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/testify v1.2.2 + gopkg.in/yaml.v2 v2.2.1 ) - -replace github.com/golang/lint => golang.org/x/lint v0.0.0-20190409202823-959b441ac422 - -replace sourcegraph.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1 diff --git a/vendor/github.com/go-openapi/swag/go.sum b/vendor/github.com/go-openapi/swag/go.sum index 33469f54a..d6e717bd4 100644 --- a/vendor/github.com/go-openapi/swag/go.sum +++ b/vendor/github.com/go-openapi/swag/go.sum @@ -1,20 +1,9 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/go-openapi/swag/name_lexem.go b/vendor/github.com/go-openapi/swag/name_lexem.go deleted file mode 100644 index aa7f6a9bb..000000000 --- a/vendor/github.com/go-openapi/swag/name_lexem.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2015 go-swagger maintainers -// -// 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 -// -// 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. -// See the License for the specific language governing permissions and -// limitations under the License. - -package swag - -import "unicode" - -type ( - nameLexem interface { - GetUnsafeGoName() string - GetOriginal() string - IsInitialism() bool - } - - initialismNameLexem struct { - original string - matchedInitialism string - } - - casualNameLexem struct { - original string - } -) - -func newInitialismNameLexem(original, matchedInitialism string) *initialismNameLexem { - return &initialismNameLexem{ - original: original, - matchedInitialism: matchedInitialism, - } -} - -func newCasualNameLexem(original string) *casualNameLexem { - return &casualNameLexem{ - original: original, - } -} - -func (l *initialismNameLexem) GetUnsafeGoName() string { - return l.matchedInitialism -} - -func (l *casualNameLexem) GetUnsafeGoName() string { - var first rune - var rest string - for i, orig := range l.original { - if i == 0 { - first = orig - continue - } - if i > 0 { - rest = l.original[i:] - break - } - } - if len(l.original) > 1 { - return string(unicode.ToUpper(first)) + lower(rest) - } - - return l.original -} - -func (l *initialismNameLexem) GetOriginal() string { - return l.original -} - -func (l *casualNameLexem) GetOriginal() string { - return l.original -} - -func (l *initialismNameLexem) IsInitialism() bool { - return true -} - -func (l *casualNameLexem) IsInitialism() bool { - return false -} diff --git a/vendor/github.com/go-openapi/swag/split.go b/vendor/github.com/go-openapi/swag/split.go deleted file mode 100644 index a1825fb7d..000000000 --- a/vendor/github.com/go-openapi/swag/split.go +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright 2015 go-swagger maintainers -// -// 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 -// -// 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. -// See the License for the specific language governing permissions and -// limitations under the License. - -package swag - -import ( - "unicode" -) - -var nameReplaceTable = map[rune]string{ - '@': "At ", - '&': "And ", - '|': "Pipe ", - '$': "Dollar ", - '!': "Bang ", - '-': "", - '_': "", -} - -type ( - splitter struct { - postSplitInitialismCheck bool - initialisms []string - } - - splitterOption func(*splitter) *splitter -) - -// split calls the splitter; splitter provides more control and post options -func split(str string) []string { - lexems := newSplitter().split(str) - result := make([]string, 0, len(lexems)) - - for _, lexem := range lexems { - result = append(result, lexem.GetOriginal()) - } - - return result - -} - -func (s *splitter) split(str string) []nameLexem { - return s.toNameLexems(str) -} - -func newSplitter(options ...splitterOption) *splitter { - splitter := &splitter{ - postSplitInitialismCheck: false, - initialisms: initialisms, - } - - for _, option := range options { - splitter = option(splitter) - } - - return splitter -} - -// withPostSplitInitialismCheck allows to catch initialisms after main split process -func withPostSplitInitialismCheck(s *splitter) *splitter { - s.postSplitInitialismCheck = true - return s -} - -type ( - initialismMatch struct { - start, end int - body []rune - complete bool - } - initialismMatches []*initialismMatch -) - -func (s *splitter) toNameLexems(name string) []nameLexem { - nameRunes := []rune(name) - matches := s.gatherInitialismMatches(nameRunes) - return s.mapMatchesToNameLexems(nameRunes, matches) -} - -func (s *splitter) gatherInitialismMatches(nameRunes []rune) initialismMatches { - matches := make(initialismMatches, 0) - - for currentRunePosition, currentRune := range nameRunes { - newMatches := make(initialismMatches, 0, len(matches)) - - // check current initialism matches - for _, match := range matches { - if keepCompleteMatch := match.complete; keepCompleteMatch { - newMatches = append(newMatches, match) - continue - } - - // drop failed match - currentMatchRune := match.body[currentRunePosition-match.start] - if !s.initialismRuneEqual(currentMatchRune, currentRune) { - continue - } - - // try to complete ongoing match - if currentRunePosition-match.start == len(match.body)-1 { - // we are close; the next step is to check the symbol ahead - // if it is a small letter, then it is not the end of match - // but beginning of the next word - - if currentRunePosition < len(nameRunes)-1 { - nextRune := nameRunes[currentRunePosition+1] - if newWord := unicode.IsLower(nextRune); newWord { - // oh ok, it was the start of a new word - continue - } - } - - match.complete = true - match.end = currentRunePosition - } - - newMatches = append(newMatches, match) - } - - // check for new initialism matches - for _, initialism := range s.initialisms { - initialismRunes := []rune(initialism) - if s.initialismRuneEqual(initialismRunes[0], currentRune) { - newMatches = append(newMatches, &initialismMatch{ - start: currentRunePosition, - body: initialismRunes, - complete: false, - }) - } - } - - matches = newMatches - } - - return matches -} - -func (s *splitter) mapMatchesToNameLexems(nameRunes []rune, matches initialismMatches) []nameLexem { - nameLexems := make([]nameLexem, 0) - - var lastAcceptedMatch *initialismMatch - for _, match := range matches { - if !match.complete { - continue - } - - if firstMatch := lastAcceptedMatch == nil; firstMatch { - nameLexems = append(nameLexems, s.breakCasualString(nameRunes[:match.start])...) - nameLexems = append(nameLexems, s.breakInitialism(string(match.body))) - - lastAcceptedMatch = match - - continue - } - - if overlappedMatch := match.start <= lastAcceptedMatch.end; overlappedMatch { - continue - } - - middle := nameRunes[lastAcceptedMatch.end+1 : match.start] - nameLexems = append(nameLexems, s.breakCasualString(middle)...) - nameLexems = append(nameLexems, s.breakInitialism(string(match.body))) - - lastAcceptedMatch = match - } - - // we have not found any accepted matches - if lastAcceptedMatch == nil { - return s.breakCasualString(nameRunes) - } - - if lastAcceptedMatch.end+1 != len(nameRunes) { - rest := nameRunes[lastAcceptedMatch.end+1:] - nameLexems = append(nameLexems, s.breakCasualString(rest)...) - } - - return nameLexems -} - -func (s *splitter) initialismRuneEqual(a, b rune) bool { - return a == b -} - -func (s *splitter) breakInitialism(original string) nameLexem { - return newInitialismNameLexem(original, original) -} - -func (s *splitter) breakCasualString(str []rune) []nameLexem { - segments := make([]nameLexem, 0) - currentSegment := "" - - addCasualNameLexem := func(original string) { - segments = append(segments, newCasualNameLexem(original)) - } - - addInitialismNameLexem := func(original, match string) { - segments = append(segments, newInitialismNameLexem(original, match)) - } - - addNameLexem := func(original string) { - if s.postSplitInitialismCheck { - for _, initialism := range s.initialisms { - if upper(initialism) == upper(original) { - addInitialismNameLexem(original, initialism) - return - } - } - } - - addCasualNameLexem(original) - } - - for _, rn := range string(str) { - if replace, found := nameReplaceTable[rn]; found { - if currentSegment != "" { - addNameLexem(currentSegment) - currentSegment = "" - } - - if replace != "" { - addNameLexem(replace) - } - - continue - } - - if !unicode.In(rn, unicode.L, unicode.M, unicode.N, unicode.Pc) { - if currentSegment != "" { - addNameLexem(currentSegment) - currentSegment = "" - } - - continue - } - - if unicode.IsUpper(rn) { - if currentSegment != "" { - addNameLexem(currentSegment) - } - currentSegment = "" - } - - currentSegment += string(rn) - } - - if currentSegment != "" { - addNameLexem(currentSegment) - } - - return segments -} diff --git a/vendor/github.com/go-openapi/swag/util.go b/vendor/github.com/go-openapi/swag/util.go index 87488273d..87c54df80 100644 --- a/vendor/github.com/go-openapi/swag/util.go +++ b/vendor/github.com/go-openapi/swag/util.go @@ -15,8 +15,11 @@ package swag import ( + "math" "reflect" + "regexp" "strings" + "sync" "unicode" ) @@ -26,8 +29,16 @@ var commonInitialisms *indexOfInitialisms // initialisms is a slice of sorted initialisms var initialisms []string +var once sync.Once + var isInitialism func(string) bool +var ( + splitRex1 *regexp.Regexp + splitRex2 *regexp.Regexp + splitReplacer *strings.Replacer +) + func init() { // Taken from https://github.com/golang/lint/blob/3390df4df2787994aea98de825b964ac7944b817/lint.go#L732-L769 var configuredInitialisms = map[string]bool{ @@ -44,8 +55,6 @@ func init() { "HTTP": true, "ID": true, "IP": true, - "IPv4": true, - "IPv6": true, "JSON": true, "LHS": true, "OAI": true, @@ -76,12 +85,15 @@ func init() { // a thread-safe index of initialisms commonInitialisms = newIndexOfInitialisms().load(configuredInitialisms) - initialisms = commonInitialisms.sorted() // a test function isInitialism = commonInitialisms.isInitialism } +func ensureSorted() { + initialisms = commonInitialisms.sorted() +} + const ( //collectionFormatComma = "csv" collectionFormatSpace = "ssv" @@ -163,6 +175,40 @@ func (s byInitialism) Less(i, j int) bool { return strings.Compare(s[i], s[j]) > 0 } +// Prepares strings by splitting by caps, spaces, dashes, and underscore +func split(str string) []string { + // check if consecutive single char things make up an initialism + once.Do(func() { + splitRex1 = regexp.MustCompile(`(\p{Lu})`) + splitRex2 = regexp.MustCompile(`(\pL|\pM|\pN|\p{Pc})+`) + splitReplacer = strings.NewReplacer( + "@", "At ", + "&", "And ", + "|", "Pipe ", + "$", "Dollar ", + "!", "Bang ", + "-", " ", + "_", " ", + ) + ensureSorted() + }) + + str = trim(str) + + // Convert dash and underscore to spaces + str = splitReplacer.Replace(str) + + // Split when uppercase is found (needed for Snake) + str = splitRex1.ReplaceAllString(str, " $1") + + for _, k := range initialisms { + str = strings.Replace(str, splitRex1.ReplaceAllString(k, " $1"), " "+k, -1) + } + // Get the final list of words + //words = rex2.FindAllString(str, -1) + return splitRex2.FindAllString(str, -1) +} + // Removes leading whitespaces func trim(str string) string { return strings.Trim(str, " ") @@ -215,31 +261,30 @@ func ToCommandName(name string) string { // ToHumanNameLower represents a code name as a human series of words func ToHumanNameLower(name string) string { - in := newSplitter(withPostSplitInitialismCheck).split(name) + in := split(name) out := make([]string, 0, len(in)) for _, w := range in { - if !w.IsInitialism() { - out = append(out, lower(w.GetOriginal())) + if !isInitialism(upper(w)) { + out = append(out, lower(w)) } else { - out = append(out, w.GetOriginal()) + out = append(out, w) } } - return strings.Join(out, " ") } // ToHumanNameTitle represents a code name as a human series of words with the first letters titleized func ToHumanNameTitle(name string) string { - in := newSplitter(withPostSplitInitialismCheck).split(name) - + in := split(name) out := make([]string, 0, len(in)) + for _, w := range in { - original := w.GetOriginal() - if !w.IsInitialism() { - out = append(out, Camelize(original)) + uw := upper(w) + if !isInitialism(uw) { + out = append(out, Camelize(w)) } else { - out = append(out, original) + out = append(out, w) } } return strings.Join(out, " ") @@ -274,25 +319,24 @@ func ToVarName(name string) string { // ToGoName translates a swagger name which can be underscored or camel cased to a name that golint likes func ToGoName(name string) string { - lexems := newSplitter(withPostSplitInitialismCheck).split(name) + in := split(name) + out := make([]string, 0, len(in)) - result := "" - for _, lexem := range lexems { - goName := lexem.GetUnsafeGoName() - - // to support old behavior - if lexem.IsInitialism() { - goName = upper(goName) + for _, w := range in { + uw := upper(w) + mod := int(math.Min(float64(len(uw)), 2)) + if !isInitialism(uw) && !isInitialism(uw[:len(uw)-mod]) { + uw = Camelize(w) } - result += goName + out = append(out, uw) } + result := strings.Join(out, "") if len(result) > 0 { if !unicode.IsUpper([]rune(result)[0]) { result = "X" + result } } - return result } diff --git a/vendor/github.com/gogo/protobuf/LICENSE b/vendor/github.com/gogo/protobuf/LICENSE index 7be0cc7b6..f57de90da 100644 --- a/vendor/github.com/gogo/protobuf/LICENSE +++ b/vendor/github.com/gogo/protobuf/LICENSE @@ -1,7 +1,6 @@ -Protocol Buffers for Go with Gadgets - Copyright (c) 2013, The GoGo Authors. All rights reserved. -http://github.com/gogo/protobuf + +Protocol Buffers for Go with Gadgets Go support for Protocol Buffers - Google's data interchange format diff --git a/vendor/github.com/gogo/protobuf/gogoproto/doc.go b/vendor/github.com/gogo/protobuf/gogoproto/doc.go index 147b5ecc6..081c86fa8 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/doc.go +++ b/vendor/github.com/gogo/protobuf/gogoproto/doc.go @@ -162,7 +162,7 @@ The most complete way to see examples is to look at github.com/gogo/protobuf/test/thetest.proto Gogoprototest is a seperate project, -because we want to keep gogoprotobuf independant of goprotobuf, +because we want to keep gogoprotobuf independent of goprotobuf, but we still want to test it thoroughly. */ diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go index 97843b244..0057f8e1b 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go @@ -343,6 +343,24 @@ var E_MessagenameAll = &proto.ExtensionDesc{ Filename: "gogo.proto", } +var E_GoprotoSizecacheAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63034, + Name: "gogoproto.goproto_sizecache_all", + Tag: "varint,63034,opt,name=goproto_sizecache_all,json=goprotoSizecacheAll", + Filename: "gogo.proto", +} + +var E_GoprotoUnkeyedAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63035, + Name: "gogoproto.goproto_unkeyed_all", + Tag: "varint,63035,opt,name=goproto_unkeyed_all,json=goprotoUnkeyedAll", + Filename: "gogo.proto", +} + var E_GoprotoGetters = &proto.ExtensionDesc{ ExtendedType: (*descriptor.MessageOptions)(nil), ExtensionType: (*bool)(nil), @@ -559,6 +577,24 @@ var E_Messagename = &proto.ExtensionDesc{ Filename: "gogo.proto", } +var E_GoprotoSizecache = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64034, + Name: "gogoproto.goproto_sizecache", + Tag: "varint,64034,opt,name=goproto_sizecache,json=goprotoSizecache", + Filename: "gogo.proto", +} + +var E_GoprotoUnkeyed = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64035, + Name: "gogoproto.goproto_unkeyed", + Tag: "varint,64035,opt,name=goproto_unkeyed,json=goprotoUnkeyed", + Filename: "gogo.proto", +} + var E_Nullable = &proto.ExtensionDesc{ ExtendedType: (*descriptor.FieldOptions)(nil), ExtensionType: (*bool)(nil), @@ -658,6 +694,15 @@ var E_Stdduration = &proto.ExtensionDesc{ Filename: "gogo.proto", } +var E_Wktpointer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65012, + Name: "gogoproto.wktpointer", + Tag: "varint,65012,opt,name=wktpointer", + Filename: "gogo.proto", +} + func init() { proto.RegisterExtension(E_GoprotoEnumPrefix) proto.RegisterExtension(E_GoprotoEnumStringer) @@ -695,6 +740,8 @@ func init() { proto.RegisterExtension(E_EnumdeclAll) proto.RegisterExtension(E_GoprotoRegistration) proto.RegisterExtension(E_MessagenameAll) + proto.RegisterExtension(E_GoprotoSizecacheAll) + proto.RegisterExtension(E_GoprotoUnkeyedAll) proto.RegisterExtension(E_GoprotoGetters) proto.RegisterExtension(E_GoprotoStringer) proto.RegisterExtension(E_VerboseEqual) @@ -719,6 +766,8 @@ func init() { proto.RegisterExtension(E_Compare) proto.RegisterExtension(E_Typedecl) proto.RegisterExtension(E_Messagename) + proto.RegisterExtension(E_GoprotoSizecache) + proto.RegisterExtension(E_GoprotoUnkeyed) proto.RegisterExtension(E_Nullable) proto.RegisterExtension(E_Embed) proto.RegisterExtension(E_Customtype) @@ -730,88 +779,94 @@ func init() { proto.RegisterExtension(E_Castvalue) proto.RegisterExtension(E_Stdtime) proto.RegisterExtension(E_Stdduration) + proto.RegisterExtension(E_Wktpointer) } -func init() { proto.RegisterFile("gogo.proto", fileDescriptor_gogo_68790841c0f79064) } +func init() { proto.RegisterFile("gogo.proto", fileDescriptor_gogo_b95f77e237336c7c) } -var fileDescriptor_gogo_68790841c0f79064 = []byte{ - // 1246 bytes of a gzipped FileDescriptorProto +var fileDescriptor_gogo_b95f77e237336c7c = []byte{ + // 1328 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0x49, 0x6f, 0x1c, 0x45, - 0x14, 0x80, 0x85, 0x70, 0x64, 0xcf, 0xf3, 0x86, 0xc7, 0xc6, 0x84, 0x08, 0x44, 0xe0, 0xc4, 0xc9, - 0x3e, 0x45, 0x28, 0x65, 0x45, 0x96, 0x63, 0x39, 0x56, 0x10, 0x06, 0x63, 0xe2, 0xb0, 0x1d, 0x46, - 0x3d, 0x33, 0xe5, 0x76, 0x43, 0x77, 0xd7, 0xd0, 0x5d, 0x1d, 0xc5, 0xb9, 0xa1, 0xb0, 0x08, 0x21, - 0x76, 0x24, 0x48, 0x48, 0x02, 0x39, 0xb0, 0xaf, 0x61, 0xe7, 0xc6, 0x85, 0xe5, 0xca, 0x7f, 0xe0, - 0x02, 0x98, 0xdd, 0x37, 0x5f, 0xa2, 0xd7, 0xfd, 0x5e, 0x4f, 0xcd, 0x78, 0xa4, 0xaa, 0xb9, 0xb5, - 0xed, 0xfa, 0x3e, 0x57, 0xbf, 0x57, 0xf5, 0xde, 0x9b, 0x01, 0xf0, 0x95, 0xaf, 0x66, 0x5a, 0x89, - 0xd2, 0xaa, 0x5a, 0xc1, 0xe7, 0xfc, 0xf1, 0xc0, 0x41, 0x5f, 0x29, 0x3f, 0x94, 0xb3, 0xf9, 0x4f, - 0xf5, 0x6c, 0x63, 0xb6, 0x29, 0xd3, 0x46, 0x12, 0xb4, 0xb4, 0x4a, 0x8a, 0xc5, 0xe2, 0x6e, 0x98, - 0xa4, 0xc5, 0x35, 0x19, 0x67, 0x51, 0xad, 0x95, 0xc8, 0x8d, 0xe0, 0x74, 0xf5, 0xa6, 0x99, 0x82, - 0x9c, 0x61, 0x72, 0x66, 0x29, 0xce, 0xa2, 0x7b, 0x5a, 0x3a, 0x50, 0x71, 0xba, 0xff, 0xca, 0xaf, - 0xd7, 0x1e, 0xbc, 0xe6, 0xf6, 0xa1, 0xb5, 0x09, 0x42, 0xf1, 0x6f, 0xab, 0x39, 0x28, 0xd6, 0xe0, - 0xfa, 0x0e, 0x5f, 0xaa, 0x93, 0x20, 0xf6, 0x65, 0x62, 0x31, 0xfe, 0x40, 0xc6, 0x49, 0xc3, 0x78, - 0x1f, 0xa1, 0x62, 0x11, 0x46, 0xfb, 0x71, 0xfd, 0x48, 0xae, 0x11, 0x69, 0x4a, 0x96, 0x61, 0x3c, - 0x97, 0x34, 0xb2, 0x54, 0xab, 0x28, 0xf6, 0x22, 0x69, 0xd1, 0xfc, 0x94, 0x6b, 0x2a, 0x6b, 0x63, - 0x88, 0x2d, 0x96, 0x94, 0x10, 0x30, 0x84, 0xbf, 0x69, 0xca, 0x46, 0x68, 0x31, 0xfc, 0x4c, 0x1b, - 0x29, 0xd7, 0x8b, 0x93, 0x30, 0x85, 0xcf, 0xa7, 0xbc, 0x30, 0x93, 0xe6, 0x4e, 0x6e, 0xed, 0xe9, - 0x39, 0x89, 0xcb, 0x58, 0xf6, 0xcb, 0xd9, 0x81, 0x7c, 0x3b, 0x93, 0xa5, 0xc0, 0xd8, 0x93, 0x91, - 0x45, 0x5f, 0x6a, 0x2d, 0x93, 0xb4, 0xe6, 0x85, 0xbd, 0xb6, 0x77, 0x2c, 0x08, 0x4b, 0xe3, 0xb9, - 0xed, 0xce, 0x2c, 0x2e, 0x17, 0xe4, 0x42, 0x18, 0x8a, 0x75, 0xb8, 0xa1, 0xc7, 0xa9, 0x70, 0x70, - 0x9e, 0x27, 0xe7, 0xd4, 0x9e, 0x93, 0x81, 0xda, 0x55, 0xe0, 0xdf, 0x97, 0xb9, 0x74, 0x70, 0xbe, - 0x41, 0xce, 0x2a, 0xb1, 0x9c, 0x52, 0x34, 0xde, 0x09, 0x13, 0xa7, 0x64, 0x52, 0x57, 0xa9, 0xac, - 0xc9, 0xc7, 0x32, 0x2f, 0x74, 0xd0, 0x5d, 0x20, 0xdd, 0x38, 0x81, 0x4b, 0xc8, 0xa1, 0xeb, 0x30, - 0x0c, 0x6d, 0x78, 0x0d, 0xe9, 0xa0, 0xb8, 0x48, 0x8a, 0x41, 0x5c, 0x8f, 0xe8, 0x02, 0x8c, 0xf8, - 0xaa, 0x78, 0x25, 0x07, 0xfc, 0x12, 0xe1, 0xc3, 0xcc, 0x90, 0xa2, 0xa5, 0x5a, 0x59, 0xe8, 0x69, - 0x97, 0x1d, 0xbc, 0xc9, 0x0a, 0x66, 0x48, 0xd1, 0x47, 0x58, 0xdf, 0x62, 0x45, 0x6a, 0xc4, 0x73, - 0x1e, 0x86, 0x55, 0x1c, 0x6e, 0xa9, 0xd8, 0x65, 0x13, 0x97, 0xc9, 0x00, 0x84, 0xa0, 0x60, 0x0e, - 0x2a, 0xae, 0x89, 0x78, 0x7b, 0x9b, 0xaf, 0x07, 0x67, 0x60, 0x19, 0xc6, 0xb9, 0x40, 0x05, 0x2a, - 0x76, 0x50, 0xbc, 0x43, 0x8a, 0x31, 0x03, 0xa3, 0xd7, 0xd0, 0x32, 0xd5, 0xbe, 0x74, 0x91, 0xbc, - 0xcb, 0xaf, 0x41, 0x08, 0x85, 0xb2, 0x2e, 0xe3, 0xc6, 0xa6, 0x9b, 0xe1, 0x3d, 0x0e, 0x25, 0x33, - 0xa8, 0x58, 0x84, 0xd1, 0xc8, 0x4b, 0xd2, 0x4d, 0x2f, 0x74, 0x4a, 0xc7, 0xfb, 0xe4, 0x18, 0x29, - 0x21, 0x8a, 0x48, 0x16, 0xf7, 0xa3, 0xf9, 0x80, 0x23, 0x62, 0x60, 0x74, 0xf5, 0x52, 0xed, 0xd5, - 0x43, 0x59, 0xeb, 0xc7, 0xf6, 0x21, 0x5f, 0xbd, 0x82, 0x5d, 0x31, 0x8d, 0x73, 0x50, 0x49, 0x83, - 0x33, 0x4e, 0x9a, 0x8f, 0x38, 0xd3, 0x39, 0x80, 0xf0, 0x83, 0x70, 0x63, 0xcf, 0x36, 0xe1, 0x20, - 0xfb, 0x98, 0x64, 0xd3, 0x3d, 0x5a, 0x05, 0x95, 0x84, 0x7e, 0x95, 0x9f, 0x70, 0x49, 0x90, 0x5d, - 0xae, 0x55, 0x98, 0xca, 0xe2, 0xd4, 0xdb, 0xe8, 0x2f, 0x6a, 0x9f, 0x72, 0xd4, 0x0a, 0xb6, 0x23, - 0x6a, 0x27, 0x60, 0x9a, 0x8c, 0xfd, 0xe5, 0xf5, 0x33, 0x2e, 0xac, 0x05, 0xbd, 0xde, 0x99, 0xdd, - 0x87, 0xe1, 0x40, 0x19, 0xce, 0xd3, 0x5a, 0xc6, 0x29, 0x32, 0xb5, 0xc8, 0x6b, 0x39, 0x98, 0xaf, - 0x90, 0x99, 0x2b, 0xfe, 0x52, 0x29, 0x58, 0xf1, 0x5a, 0x28, 0x7f, 0x00, 0xf6, 0xb3, 0x3c, 0x8b, - 0x13, 0xd9, 0x50, 0x7e, 0x1c, 0x9c, 0x91, 0x4d, 0x07, 0xf5, 0xe7, 0x5d, 0xa9, 0x5a, 0x37, 0x70, - 0x34, 0x1f, 0x87, 0xeb, 0xca, 0x59, 0xa5, 0x16, 0x44, 0x2d, 0x95, 0x68, 0x8b, 0xf1, 0x0b, 0xce, - 0x54, 0xc9, 0x1d, 0xcf, 0x31, 0xb1, 0x04, 0x63, 0xf9, 0x8f, 0xae, 0x47, 0xf2, 0x4b, 0x12, 0x8d, - 0xb6, 0x29, 0x2a, 0x1c, 0x0d, 0x15, 0xb5, 0xbc, 0xc4, 0xa5, 0xfe, 0x7d, 0xc5, 0x85, 0x83, 0x10, - 0x2a, 0x1c, 0x7a, 0xab, 0x25, 0xb1, 0xdb, 0x3b, 0x18, 0xbe, 0xe6, 0xc2, 0xc1, 0x0c, 0x29, 0x78, - 0x60, 0x70, 0x50, 0x7c, 0xc3, 0x0a, 0x66, 0x50, 0x71, 0x6f, 0xbb, 0xd1, 0x26, 0xd2, 0x0f, 0x52, - 0x9d, 0x78, 0xb8, 0xda, 0xa2, 0xfa, 0x76, 0xbb, 0x73, 0x08, 0x5b, 0x33, 0x50, 0xac, 0x44, 0x91, - 0x4c, 0x53, 0xcf, 0x97, 0x38, 0x71, 0x38, 0x6c, 0xec, 0x3b, 0xae, 0x44, 0x06, 0x56, 0xdc, 0xcf, - 0xf1, 0xae, 0x59, 0xa5, 0x7a, 0xcb, 0x1e, 0xd1, 0x4a, 0xc1, 0xb0, 0xeb, 0xf1, 0x1d, 0x72, 0x75, - 0x8e, 0x2a, 0xe2, 0x2e, 0x3c, 0x40, 0x9d, 0x03, 0x85, 0x5d, 0x76, 0x76, 0xa7, 0x3c, 0x43, 0x1d, - 0xf3, 0x84, 0x38, 0x06, 0xa3, 0x1d, 0xc3, 0x84, 0x5d, 0xf5, 0x04, 0xa9, 0x46, 0xcc, 0x59, 0x42, - 0x1c, 0x82, 0x01, 0x1c, 0x0c, 0xec, 0xf8, 0x93, 0x84, 0xe7, 0xcb, 0xc5, 0x11, 0x18, 0xe2, 0x81, - 0xc0, 0x8e, 0x3e, 0x45, 0x68, 0x89, 0x20, 0xce, 0xc3, 0x80, 0x1d, 0x7f, 0x9a, 0x71, 0x46, 0x10, - 0x77, 0x0f, 0xe1, 0xf7, 0xcf, 0x0e, 0x50, 0x41, 0xe7, 0xd8, 0xcd, 0xc1, 0x20, 0x4d, 0x01, 0x76, - 0xfa, 0x19, 0xfa, 0xe7, 0x4c, 0x88, 0x3b, 0x60, 0x9f, 0x63, 0xc0, 0x9f, 0x23, 0xb4, 0x58, 0x2f, - 0x16, 0x61, 0xd8, 0xe8, 0xfc, 0x76, 0xfc, 0x79, 0xc2, 0x4d, 0x0a, 0xb7, 0x4e, 0x9d, 0xdf, 0x2e, - 0x78, 0x81, 0xb7, 0x4e, 0x04, 0x86, 0x8d, 0x9b, 0xbe, 0x9d, 0x7e, 0x91, 0xa3, 0xce, 0x88, 0x98, - 0x87, 0x4a, 0x59, 0xc8, 0xed, 0xfc, 0x4b, 0xc4, 0xb7, 0x19, 0x8c, 0x80, 0xd1, 0x48, 0xec, 0x8a, - 0x97, 0x39, 0x02, 0x06, 0x85, 0xd7, 0xa8, 0x7b, 0x38, 0xb0, 0x9b, 0x5e, 0xe1, 0x6b, 0xd4, 0x35, - 0x1b, 0x60, 0x36, 0xf3, 0x7a, 0x6a, 0x57, 0xbc, 0xca, 0xd9, 0xcc, 0xd7, 0xe3, 0x36, 0xba, 0xbb, - 0xad, 0xdd, 0xf1, 0x1a, 0x6f, 0xa3, 0xab, 0xd9, 0x8a, 0x55, 0xa8, 0xee, 0xed, 0xb4, 0x76, 0xdf, - 0xeb, 0xe4, 0x9b, 0xd8, 0xd3, 0x68, 0xc5, 0xfd, 0x30, 0xdd, 0xbb, 0xcb, 0xda, 0xad, 0xe7, 0x76, - 0xba, 0x3e, 0x17, 0x99, 0x4d, 0x56, 0x9c, 0x68, 0x97, 0x6b, 0xb3, 0xc3, 0xda, 0xb5, 0xe7, 0x77, - 0x3a, 0x2b, 0xb6, 0xd9, 0x60, 0xc5, 0x02, 0x40, 0xbb, 0xb9, 0xd9, 0x5d, 0x17, 0xc8, 0x65, 0x40, - 0x78, 0x35, 0xa8, 0xb7, 0xd9, 0xf9, 0x8b, 0x7c, 0x35, 0x88, 0xc0, 0xab, 0xc1, 0x6d, 0xcd, 0x4e, - 0x5f, 0xe2, 0xab, 0xc1, 0x08, 0x9e, 0x6c, 0xa3, 0x73, 0xd8, 0x0d, 0x97, 0xf9, 0x64, 0x1b, 0x94, - 0x98, 0x83, 0xa1, 0x38, 0x0b, 0x43, 0x3c, 0xa0, 0xd5, 0x9b, 0x7b, 0xb4, 0x2b, 0x19, 0x36, 0x99, - 0xff, 0x6d, 0x97, 0x76, 0xc0, 0x80, 0x38, 0x04, 0xfb, 0x64, 0x54, 0x97, 0x4d, 0x1b, 0xf9, 0xfb, - 0x2e, 0x17, 0x25, 0x5c, 0x2d, 0xe6, 0x01, 0x8a, 0x8f, 0xf6, 0xf8, 0x2a, 0x36, 0xf6, 0x8f, 0xdd, - 0xe2, 0x5b, 0x06, 0x03, 0x69, 0x0b, 0xf2, 0x17, 0xb7, 0x08, 0xb6, 0x3b, 0x05, 0xf9, 0x5b, 0x1f, - 0x86, 0xc1, 0x47, 0x52, 0x15, 0x6b, 0xcf, 0xb7, 0xd1, 0x7f, 0x12, 0xcd, 0xeb, 0x31, 0x60, 0x91, - 0x4a, 0xa4, 0xf6, 0xfc, 0xd4, 0xc6, 0xfe, 0x45, 0x6c, 0x09, 0x20, 0xdc, 0xf0, 0x52, 0xed, 0xf2, - 0xde, 0x7f, 0x33, 0xcc, 0x00, 0x6e, 0x1a, 0x9f, 0x1f, 0x95, 0x5b, 0x36, 0xf6, 0x1f, 0xde, 0x34, - 0xad, 0x17, 0x47, 0xa0, 0x82, 0x8f, 0xf9, 0xb7, 0x22, 0x36, 0xf8, 0x5f, 0x82, 0xdb, 0x04, 0xfe, - 0xe7, 0x54, 0x37, 0x75, 0x60, 0x0f, 0xf6, 0x7f, 0x94, 0x69, 0x5e, 0x2f, 0x16, 0x60, 0x38, 0xd5, - 0xcd, 0x66, 0x46, 0xf3, 0x95, 0x05, 0xff, 0x7f, 0xb7, 0xfc, 0xc8, 0x5d, 0x32, 0x47, 0x97, 0x60, - 0xb2, 0xa1, 0xa2, 0x6e, 0xf0, 0x28, 0x2c, 0xab, 0x65, 0xb5, 0x9a, 0x5f, 0xc5, 0x87, 0x6e, 0xf3, - 0x03, 0xbd, 0x99, 0xd5, 0x67, 0x1a, 0x2a, 0x9a, 0xc5, 0xc1, 0xb7, 0xfd, 0x7d, 0x5e, 0x39, 0x06, - 0x5f, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x51, 0xf0, 0xa5, 0x95, 0x02, 0x14, 0x00, 0x00, + 0x14, 0x80, 0x85, 0x48, 0x64, 0x4f, 0x79, 0x8b, 0xc7, 0xc6, 0x84, 0x08, 0x44, 0xe0, 0xc4, 0xc9, + 0x3e, 0x45, 0x28, 0x65, 0x45, 0x96, 0x63, 0x39, 0x56, 0x10, 0x0e, 0xc6, 0x89, 0xc3, 0x76, 0x18, + 0xf5, 0xf4, 0x94, 0xdb, 0x8d, 0xbb, 0xbb, 0x9a, 0xee, 0xea, 0x10, 0xe7, 0x86, 0xc2, 0x22, 0x84, + 0xd8, 0x91, 0x20, 0x21, 0x09, 0x04, 0xc4, 0xbe, 0x86, 0x7d, 0xb9, 0x70, 0x61, 0xb9, 0xf2, 0x1f, + 0xb8, 0x00, 0x66, 0xf7, 0xcd, 0x17, 0xf4, 0xba, 0xdf, 0xeb, 0xa9, 0x69, 0x8f, 0x54, 0x35, 0xb7, + 0xf6, 0xb8, 0xbe, 0x6f, 0xaa, 0xdf, 0xeb, 0x7a, 0xef, 0x4d, 0x33, 0xe6, 0x49, 0x4f, 0x4e, 0xc6, + 0x89, 0x54, 0xb2, 0x5e, 0x83, 0xeb, 0xfc, 0x72, 0xdf, 0x7e, 0x4f, 0x4a, 0x2f, 0x10, 0x53, 0xf9, + 0x5f, 0xcd, 0x6c, 0x75, 0xaa, 0x25, 0x52, 0x37, 0xf1, 0x63, 0x25, 0x93, 0x62, 0x31, 0x3f, 0xc6, + 0xc6, 0x70, 0x71, 0x43, 0x44, 0x59, 0xd8, 0x88, 0x13, 0xb1, 0xea, 0x9f, 0xae, 0x5f, 0x3f, 0x59, + 0x90, 0x93, 0x44, 0x4e, 0xce, 0x47, 0x59, 0x78, 0x47, 0xac, 0x7c, 0x19, 0xa5, 0x7b, 0xaf, 0xfc, + 0x72, 0xf5, 0xfe, 0xab, 0x6e, 0xe9, 0x5f, 0x1e, 0x45, 0x14, 0xfe, 0xb7, 0x94, 0x83, 0x7c, 0x99, + 0x5d, 0xd3, 0xe1, 0x4b, 0x55, 0xe2, 0x47, 0x9e, 0x48, 0x0c, 0xc6, 0xef, 0xd1, 0x38, 0xa6, 0x19, + 0x8f, 0x23, 0xca, 0xe7, 0xd8, 0x50, 0x2f, 0xae, 0x1f, 0xd0, 0x35, 0x28, 0x74, 0xc9, 0x02, 0x1b, + 0xc9, 0x25, 0x6e, 0x96, 0x2a, 0x19, 0x46, 0x4e, 0x28, 0x0c, 0x9a, 0x1f, 0x73, 0x4d, 0x6d, 0x79, + 0x18, 0xb0, 0xb9, 0x92, 0xe2, 0x9c, 0xf5, 0xc3, 0x27, 0x2d, 0xe1, 0x06, 0x06, 0xc3, 0x4f, 0xb8, + 0x91, 0x72, 0x3d, 0x3f, 0xc9, 0xc6, 0xe1, 0xfa, 0x94, 0x13, 0x64, 0x42, 0xdf, 0xc9, 0x4d, 0x5d, + 0x3d, 0x27, 0x61, 0x19, 0xc9, 0x7e, 0x3e, 0xbb, 0x2b, 0xdf, 0xce, 0x58, 0x29, 0xd0, 0xf6, 0xa4, + 0x65, 0xd1, 0x13, 0x4a, 0x89, 0x24, 0x6d, 0x38, 0x41, 0xb7, 0xed, 0x1d, 0xf1, 0x83, 0xd2, 0x78, + 0x6e, 0xb3, 0x33, 0x8b, 0x0b, 0x05, 0x39, 0x1b, 0x04, 0x7c, 0x85, 0x5d, 0xdb, 0xe5, 0xa9, 0xb0, + 0x70, 0x9e, 0x47, 0xe7, 0xf8, 0x8e, 0x27, 0x03, 0xb4, 0x4b, 0x8c, 0x3e, 0x2f, 0x73, 0x69, 0xe1, + 0x7c, 0x19, 0x9d, 0x75, 0x64, 0x29, 0xa5, 0x60, 0xbc, 0x8d, 0x8d, 0x9e, 0x12, 0x49, 0x53, 0xa6, + 0xa2, 0x21, 0x1e, 0xc8, 0x9c, 0xc0, 0x42, 0x77, 0x01, 0x75, 0x23, 0x08, 0xce, 0x03, 0x07, 0xae, + 0x83, 0xac, 0x7f, 0xd5, 0x71, 0x85, 0x85, 0xe2, 0x22, 0x2a, 0xfa, 0x60, 0x3d, 0xa0, 0xb3, 0x6c, + 0xd0, 0x93, 0xc5, 0x2d, 0x59, 0xe0, 0x97, 0x10, 0x1f, 0x20, 0x06, 0x15, 0xb1, 0x8c, 0xb3, 0xc0, + 0x51, 0x36, 0x3b, 0x78, 0x85, 0x14, 0xc4, 0xa0, 0xa2, 0x87, 0xb0, 0xbe, 0x4a, 0x8a, 0x54, 0x8b, + 0xe7, 0x0c, 0x1b, 0x90, 0x51, 0xb0, 0x21, 0x23, 0x9b, 0x4d, 0x5c, 0x46, 0x03, 0x43, 0x04, 0x04, + 0xd3, 0xac, 0x66, 0x9b, 0x88, 0x37, 0x36, 0xe9, 0x78, 0x50, 0x06, 0x16, 0xd8, 0x08, 0x15, 0x28, + 0x5f, 0x46, 0x16, 0x8a, 0x37, 0x51, 0x31, 0xac, 0x61, 0x78, 0x1b, 0x4a, 0xa4, 0xca, 0x13, 0x36, + 0x92, 0xb7, 0xe8, 0x36, 0x10, 0xc1, 0x50, 0x36, 0x45, 0xe4, 0xae, 0xd9, 0x19, 0xde, 0xa6, 0x50, + 0x12, 0x03, 0x8a, 0x39, 0x36, 0x14, 0x3a, 0x49, 0xba, 0xe6, 0x04, 0x56, 0xe9, 0x78, 0x07, 0x1d, + 0x83, 0x25, 0x84, 0x11, 0xc9, 0xa2, 0x5e, 0x34, 0xef, 0x52, 0x44, 0x34, 0x0c, 0x8f, 0x5e, 0xaa, + 0x9c, 0x66, 0x20, 0x1a, 0xbd, 0xd8, 0xde, 0xa3, 0xa3, 0x57, 0xb0, 0x8b, 0xba, 0x71, 0x9a, 0xd5, + 0x52, 0xff, 0x8c, 0x95, 0xe6, 0x7d, 0xca, 0x74, 0x0e, 0x00, 0x7c, 0x0f, 0xbb, 0xae, 0x6b, 0x9b, + 0xb0, 0x90, 0x7d, 0x80, 0xb2, 0x89, 0x2e, 0xad, 0x02, 0x4b, 0x42, 0xaf, 0xca, 0x0f, 0xa9, 0x24, + 0x88, 0x8a, 0x6b, 0x89, 0x8d, 0x67, 0x51, 0xea, 0xac, 0xf6, 0x16, 0xb5, 0x8f, 0x28, 0x6a, 0x05, + 0xdb, 0x11, 0xb5, 0x13, 0x6c, 0x02, 0x8d, 0xbd, 0xe5, 0xf5, 0x63, 0x2a, 0xac, 0x05, 0xbd, 0xd2, + 0x99, 0xdd, 0xfb, 0xd8, 0xbe, 0x32, 0x9c, 0xa7, 0x95, 0x88, 0x52, 0x60, 0x1a, 0xa1, 0x13, 0x5b, + 0x98, 0xaf, 0xa0, 0x99, 0x2a, 0xfe, 0x7c, 0x29, 0x58, 0x74, 0x62, 0x90, 0xdf, 0xcd, 0xf6, 0x92, + 0x3c, 0x8b, 0x12, 0xe1, 0x4a, 0x2f, 0xf2, 0xcf, 0x88, 0x96, 0x85, 0xfa, 0x93, 0x4a, 0xaa, 0x56, + 0x34, 0x1c, 0xcc, 0x47, 0xd9, 0x9e, 0x72, 0x56, 0x69, 0xf8, 0x61, 0x2c, 0x13, 0x65, 0x30, 0x7e, + 0x4a, 0x99, 0x2a, 0xb9, 0xa3, 0x39, 0xc6, 0xe7, 0xd9, 0x70, 0xfe, 0xa7, 0xed, 0x23, 0xf9, 0x19, + 0x8a, 0x86, 0xda, 0x14, 0x16, 0x0e, 0x57, 0x86, 0xb1, 0x93, 0xd8, 0xd4, 0xbf, 0xcf, 0xa9, 0x70, + 0x20, 0x82, 0x85, 0x43, 0x6d, 0xc4, 0x02, 0xba, 0xbd, 0x85, 0xe1, 0x0b, 0x2a, 0x1c, 0xc4, 0xa0, + 0x82, 0x06, 0x06, 0x0b, 0xc5, 0x97, 0xa4, 0x20, 0x06, 0x14, 0x77, 0xb6, 0x1b, 0x6d, 0x22, 0x3c, + 0x3f, 0x55, 0x89, 0x03, 0xab, 0x0d, 0xaa, 0xaf, 0x36, 0x3b, 0x87, 0xb0, 0x65, 0x0d, 0x85, 0x4a, + 0x14, 0x8a, 0x34, 0x75, 0x3c, 0x01, 0x13, 0x87, 0xc5, 0xc6, 0xbe, 0xa6, 0x4a, 0xa4, 0x61, 0xb0, + 0x37, 0x6d, 0x42, 0x84, 0xb0, 0xbb, 0x8e, 0xbb, 0x66, 0xa3, 0xfb, 0xa6, 0xb2, 0xb9, 0xe3, 0xc4, + 0x82, 0x53, 0x9b, 0x7f, 0xb2, 0x68, 0x5d, 0x6c, 0x58, 0x3d, 0x9d, 0xdf, 0x56, 0xe6, 0x9f, 0x95, + 0x82, 0x2c, 0x6a, 0xc8, 0x48, 0x65, 0x9e, 0xaa, 0xdf, 0xb8, 0xc3, 0xb5, 0x58, 0xdc, 0x17, 0xe9, + 0x1e, 0xda, 0xc2, 0xfb, 0xed, 0x1c, 0xa7, 0xf8, 0xed, 0xf0, 0x90, 0x77, 0x0e, 0x3d, 0x66, 0xd9, + 0xd9, 0xad, 0xf2, 0x39, 0xef, 0x98, 0x79, 0xf8, 0x11, 0x36, 0xd4, 0x31, 0xf0, 0x98, 0x55, 0x0f, + 0xa3, 0x6a, 0x50, 0x9f, 0x77, 0xf8, 0x01, 0xb6, 0x0b, 0x86, 0x17, 0x33, 0xfe, 0x08, 0xe2, 0xf9, + 0x72, 0x7e, 0x88, 0xf5, 0xd3, 0xd0, 0x62, 0x46, 0x1f, 0x45, 0xb4, 0x44, 0x00, 0xa7, 0x81, 0xc5, + 0x8c, 0x3f, 0x46, 0x38, 0x21, 0x80, 0xdb, 0x87, 0xf0, 0xbb, 0x27, 0x76, 0x61, 0xd3, 0xa1, 0xd8, + 0x4d, 0xb3, 0x3e, 0x9c, 0x54, 0xcc, 0xf4, 0xe3, 0xf8, 0xe5, 0x44, 0xf0, 0x5b, 0xd9, 0x6e, 0xcb, + 0x80, 0x3f, 0x89, 0x68, 0xb1, 0x9e, 0xcf, 0xb1, 0x01, 0x6d, 0x3a, 0x31, 0xe3, 0x4f, 0x21, 0xae, + 0x53, 0xb0, 0x75, 0x9c, 0x4e, 0xcc, 0x82, 0xa7, 0x69, 0xeb, 0x48, 0x40, 0xd8, 0x68, 0x30, 0x31, + 0xd3, 0xcf, 0x50, 0xd4, 0x09, 0xe1, 0x33, 0xac, 0x56, 0x36, 0x1b, 0x33, 0xff, 0x2c, 0xf2, 0x6d, + 0x06, 0x22, 0xa0, 0x35, 0x3b, 0xb3, 0xe2, 0x39, 0x8a, 0x80, 0x46, 0xc1, 0x31, 0xaa, 0x0e, 0x30, + 0x66, 0xd3, 0xf3, 0x74, 0x8c, 0x2a, 0xf3, 0x0b, 0x64, 0x33, 0xaf, 0xf9, 0x66, 0xc5, 0x0b, 0x94, + 0xcd, 0x7c, 0x3d, 0x6c, 0xa3, 0x3a, 0x11, 0x98, 0x1d, 0x2f, 0xd2, 0x36, 0x2a, 0x03, 0x01, 0x5f, + 0x62, 0xf5, 0x9d, 0xd3, 0x80, 0xd9, 0xf7, 0x12, 0xfa, 0x46, 0x77, 0x0c, 0x03, 0xfc, 0x2e, 0x36, + 0xd1, 0x7d, 0x12, 0x30, 0x5b, 0xcf, 0x6d, 0x55, 0x7e, 0xbb, 0xe9, 0x83, 0x00, 0x3f, 0xd1, 0x6e, + 0x29, 0xfa, 0x14, 0x60, 0xd6, 0x9e, 0xdf, 0xea, 0x2c, 0xdc, 0xfa, 0x10, 0xc0, 0x67, 0x19, 0x6b, + 0x37, 0x60, 0xb3, 0xeb, 0x02, 0xba, 0x34, 0x08, 0x8e, 0x06, 0xf6, 0x5f, 0x33, 0x7f, 0x91, 0x8e, + 0x06, 0x12, 0x70, 0x34, 0xa8, 0xf5, 0x9a, 0xe9, 0x4b, 0x74, 0x34, 0x08, 0x81, 0x27, 0x5b, 0xeb, + 0x6e, 0x66, 0xc3, 0x65, 0x7a, 0xb2, 0x35, 0x8a, 0x1f, 0x63, 0xa3, 0x3b, 0x1a, 0xa2, 0x59, 0xf5, + 0x1a, 0xaa, 0xf6, 0x54, 0xfb, 0xa1, 0xde, 0xbc, 0xb0, 0x19, 0x9a, 0x6d, 0xaf, 0x57, 0x9a, 0x17, + 0xf6, 0x42, 0x3e, 0xcd, 0xfa, 0xa3, 0x2c, 0x08, 0xe0, 0xf0, 0xd4, 0x6f, 0xe8, 0xd2, 0x4d, 0x45, + 0xd0, 0x22, 0xc5, 0xaf, 0xdb, 0x18, 0x1d, 0x02, 0xf8, 0x01, 0xb6, 0x5b, 0x84, 0x4d, 0xd1, 0x32, + 0x91, 0xbf, 0x6d, 0x53, 0xc1, 0x84, 0xd5, 0x7c, 0x86, 0xb1, 0xe2, 0xd5, 0x08, 0x84, 0xd9, 0xc4, + 0xfe, 0xbe, 0x5d, 0xbc, 0xa5, 0xd1, 0x90, 0xb6, 0x20, 0x4f, 0x8a, 0x41, 0xb0, 0xd9, 0x29, 0xc8, + 0x33, 0x72, 0x90, 0xf5, 0xdd, 0x9f, 0xca, 0x48, 0x39, 0x9e, 0x89, 0xfe, 0x03, 0x69, 0x5a, 0x0f, + 0x01, 0x0b, 0x65, 0x22, 0x94, 0xe3, 0xa5, 0x26, 0xf6, 0x4f, 0x64, 0x4b, 0x00, 0x60, 0xd7, 0x49, + 0x95, 0xcd, 0x7d, 0xff, 0x45, 0x30, 0x01, 0xb0, 0x69, 0xb8, 0x5e, 0x17, 0x1b, 0x26, 0xf6, 0x6f, + 0xda, 0x34, 0xae, 0xe7, 0x87, 0x58, 0x0d, 0x2e, 0xf3, 0xb7, 0x4a, 0x26, 0xf8, 0x1f, 0x84, 0xdb, + 0x04, 0x7c, 0x73, 0xaa, 0x5a, 0xca, 0x37, 0x07, 0xfb, 0x5f, 0xcc, 0x34, 0xad, 0xe7, 0xb3, 0x6c, + 0x20, 0x55, 0xad, 0x56, 0x86, 0xf3, 0xa9, 0x01, 0xff, 0x6f, 0xbb, 0x7c, 0x65, 0x51, 0x32, 0x90, + 0xed, 0x07, 0xd7, 0x55, 0x2c, 0xfd, 0x48, 0x89, 0xc4, 0x64, 0xd8, 0x42, 0x83, 0x86, 0x1c, 0x9e, + 0x67, 0x63, 0xae, 0x0c, 0xab, 0xdc, 0x61, 0xb6, 0x20, 0x17, 0xe4, 0x52, 0x5e, 0x67, 0xee, 0xbd, + 0xd9, 0xf3, 0xd5, 0x5a, 0xd6, 0x9c, 0x74, 0x65, 0x38, 0x05, 0xbf, 0x3c, 0xda, 0x2f, 0x54, 0xcb, + 0xdf, 0x21, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xaf, 0x70, 0x4e, 0x83, 0x15, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto index bc8d889f1..b80c85653 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto @@ -84,6 +84,9 @@ extend google.protobuf.FileOptions { optional bool goproto_registration = 63032; optional bool messagename_all = 63033; + + optional bool goproto_sizecache_all = 63034; + optional bool goproto_unkeyed_all = 63035; } extend google.protobuf.MessageOptions { @@ -118,6 +121,9 @@ extend google.protobuf.MessageOptions { optional bool typedecl = 64030; optional bool messagename = 64033; + + optional bool goproto_sizecache = 64034; + optional bool goproto_unkeyed = 64035; } extend google.protobuf.FieldOptions { @@ -133,4 +139,6 @@ extend google.protobuf.FieldOptions { optional bool stdtime = 65010; optional bool stdduration = 65011; + optional bool wktpointer = 65012; + } diff --git a/vendor/github.com/gogo/protobuf/gogoproto/helper.go b/vendor/github.com/gogo/protobuf/gogoproto/helper.go index 22910c6d4..390d4e4be 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/helper.go +++ b/vendor/github.com/gogo/protobuf/gogoproto/helper.go @@ -47,6 +47,55 @@ func IsStdDuration(field *google_protobuf.FieldDescriptorProto) bool { return proto.GetBoolExtension(field.Options, E_Stdduration, false) } +func IsStdDouble(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.DoubleValue" +} + +func IsStdFloat(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.FloatValue" +} + +func IsStdInt64(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.Int64Value" +} + +func IsStdUInt64(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.UInt64Value" +} + +func IsStdInt32(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.Int32Value" +} + +func IsStdUInt32(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.UInt32Value" +} + +func IsStdBool(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.BoolValue" +} + +func IsStdString(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.StringValue" +} + +func IsStdBytes(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.BytesValue" +} + +func IsStdType(field *google_protobuf.FieldDescriptorProto) bool { + return (IsStdTime(field) || IsStdDuration(field) || + IsStdDouble(field) || IsStdFloat(field) || + IsStdInt64(field) || IsStdUInt64(field) || + IsStdInt32(field) || IsStdUInt32(field) || + IsStdBool(field) || + IsStdString(field) || IsStdBytes(field)) +} + +func IsWktPtr(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) +} + func NeedsNilCheck(proto3 bool, field *google_protobuf.FieldDescriptorProto) bool { nullable := IsNullable(field) if field.IsMessage() || IsCustomType(field) { @@ -356,3 +405,11 @@ func RegistersGolangProto(file *google_protobuf.FileDescriptorProto) bool { func HasMessageName(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { return proto.GetBoolExtension(message.Options, E_Messagename, proto.GetBoolExtension(file.Options, E_MessagenameAll, false)) } + +func HasSizecache(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoSizecache, proto.GetBoolExtension(file.Options, E_GoprotoSizecacheAll, true)) +} + +func HasUnkeyed(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoUnkeyed, proto.GetBoolExtension(file.Options, E_GoprotoUnkeyedAll, true)) +} diff --git a/vendor/github.com/gogo/protobuf/proto/encode.go b/vendor/github.com/gogo/protobuf/proto/encode.go index c27d35f86..3abfed2cf 100644 --- a/vendor/github.com/gogo/protobuf/proto/encode.go +++ b/vendor/github.com/gogo/protobuf/proto/encode.go @@ -37,27 +37,9 @@ package proto import ( "errors" - "fmt" "reflect" ) -// RequiredNotSetError is the error returned if Marshal is called with -// a protocol buffer struct whose required fields have not -// all been initialized. It is also the error returned if Unmarshal is -// called with an encoded protocol buffer that does not include all the -// required fields. -// -// When printed, RequiredNotSetError reports the first unset required field in a -// message. If the field cannot be precisely determined, it is reported as -// "{Unknown}". -type RequiredNotSetError struct { - field string -} - -func (e *RequiredNotSetError) Error() string { - return fmt.Sprintf("proto: required field %q not set", e.field) -} - var ( // errRepeatedHasNil is the error returned if Marshal is called with // a struct with a repeated field containing a nil element. diff --git a/vendor/github.com/gogo/protobuf/proto/lib.go b/vendor/github.com/gogo/protobuf/proto/lib.go index 0f1950c67..b2271d0b7 100644 --- a/vendor/github.com/gogo/protobuf/proto/lib.go +++ b/vendor/github.com/gogo/protobuf/proto/lib.go @@ -265,7 +265,6 @@ package proto import ( "encoding/json" - "errors" "fmt" "log" "reflect" @@ -274,7 +273,66 @@ import ( "sync" ) -var errInvalidUTF8 = errors.New("proto: invalid UTF-8 string") +// RequiredNotSetError is an error type returned by either Marshal or Unmarshal. +// Marshal reports this when a required field is not initialized. +// Unmarshal reports this when a required field is missing from the wire data. +type RequiredNotSetError struct{ field string } + +func (e *RequiredNotSetError) Error() string { + if e.field == "" { + return fmt.Sprintf("proto: required field not set") + } + return fmt.Sprintf("proto: required field %q not set", e.field) +} +func (e *RequiredNotSetError) RequiredNotSet() bool { + return true +} + +type invalidUTF8Error struct{ field string } + +func (e *invalidUTF8Error) Error() string { + if e.field == "" { + return "proto: invalid UTF-8 detected" + } + return fmt.Sprintf("proto: field %q contains invalid UTF-8", e.field) +} +func (e *invalidUTF8Error) InvalidUTF8() bool { + return true +} + +// errInvalidUTF8 is a sentinel error to identify fields with invalid UTF-8. +// This error should not be exposed to the external API as such errors should +// be recreated with the field information. +var errInvalidUTF8 = &invalidUTF8Error{} + +// isNonFatal reports whether the error is either a RequiredNotSet error +// or a InvalidUTF8 error. +func isNonFatal(err error) bool { + if re, ok := err.(interface{ RequiredNotSet() bool }); ok && re.RequiredNotSet() { + return true + } + if re, ok := err.(interface{ InvalidUTF8() bool }); ok && re.InvalidUTF8() { + return true + } + return false +} + +type nonFatal struct{ E error } + +// Merge merges err into nf and reports whether it was successful. +// Otherwise it returns false for any fatal non-nil errors. +func (nf *nonFatal) Merge(err error) (ok bool) { + if err == nil { + return true // not an error + } + if !isNonFatal(err) { + return false // fatal error + } + if nf.E == nil { + nf.E = err // store first instance of non-fatal error + } + return true +} // Message is implemented by generated protocol buffer messages. type Message interface { @@ -570,9 +628,11 @@ func SetDefaults(pb Message) { setDefaults(reflect.ValueOf(pb), true, false) } -// v is a pointer to a struct. +// v is a struct. func setDefaults(v reflect.Value, recur, zeros bool) { - v = v.Elem() + if v.Kind() == reflect.Ptr { + v = v.Elem() + } defaultMu.RLock() dm, ok := defaults[v.Type()] @@ -674,8 +734,11 @@ func setDefaults(v reflect.Value, recur, zeros bool) { for _, ni := range dm.nested { f := v.Field(ni) - // f is *T or []*T or map[T]*T + // f is *T or T or []*T or []T switch f.Kind() { + case reflect.Struct: + setDefaults(f, recur, zeros) + case reflect.Ptr: if f.IsNil() { continue @@ -685,7 +748,7 @@ func setDefaults(v reflect.Value, recur, zeros bool) { case reflect.Slice: for i := 0; i < f.Len(); i++ { e := f.Index(i) - if e.IsNil() { + if e.Kind() == reflect.Ptr && e.IsNil() { continue } setDefaults(e, recur, zeros) @@ -757,6 +820,9 @@ func buildDefaultMessage(t reflect.Type) (dm defaultMessage) { func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) { var canHaveDefault bool switch ft.Kind() { + case reflect.Struct: + nestedMessage = true // non-nullable + case reflect.Ptr: if ft.Elem().Kind() == reflect.Struct { nestedMessage = true @@ -766,7 +832,7 @@ func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMes case reflect.Slice: switch ft.Elem().Kind() { - case reflect.Ptr: + case reflect.Ptr, reflect.Struct: nestedMessage = true // repeated message case reflect.Uint8: canHaveDefault = true // bytes field diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go index b354101b9..aca8eed02 100644 --- a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go @@ -26,7 +26,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// +build !purego !appengine,!js +// +build !purego,!appengine,!js // This file contains the implementation of the proto field accesses using package unsafe. diff --git a/vendor/github.com/gogo/protobuf/proto/properties.go b/vendor/github.com/gogo/protobuf/proto/properties.go index 7a5e28efe..04dcb8d9e 100644 --- a/vendor/github.com/gogo/protobuf/proto/properties.go +++ b/vendor/github.com/gogo/protobuf/proto/properties.go @@ -144,7 +144,7 @@ type Properties struct { Repeated bool Packed bool // relevant for repeated primitives only Enum string // set for enum types only - proto3 bool // whether this is known to be a proto3 field; set for []byte only + proto3 bool // whether this is known to be a proto3 field oneof bool // whether this is a oneof field Default string // default value @@ -153,14 +153,15 @@ type Properties struct { CastType string StdTime bool StdDuration bool + WktPointer bool stype reflect.Type // set for struct types only ctype reflect.Type // set for custom types only sprop *StructProperties // set for struct types only - mtype reflect.Type // set for map types only - mkeyprop *Properties // set for map types only - mvalprop *Properties // set for map types only + mtype reflect.Type // set for map types only + MapKeyProp *Properties // set for map types only + MapValProp *Properties // set for map types only } // String formats the properties in the protobuf struct field tag style. @@ -274,6 +275,8 @@ outer: p.StdTime = true case f == "stdduration": p.StdDuration = true + case f == "wktptr": + p.WktPointer = true } } } @@ -296,6 +299,10 @@ func (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, loc p.setTag(lockGetProp) return } + if p.WktPointer && !isMap { + p.setTag(lockGetProp) + return + } switch t1 := typ; t1.Kind() { case reflect.Struct: p.stype = typ @@ -317,9 +324,9 @@ func (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, loc case reflect.Map: p.mtype = t1 - p.mkeyprop = &Properties{} - p.mkeyprop.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp) - p.mvalprop = &Properties{} + p.MapKeyProp = &Properties{} + p.MapKeyProp.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp) + p.MapValProp = &Properties{} vtype := p.mtype.Elem() if vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice { // The value type is not a message (*T) or bytes ([]byte), @@ -327,10 +334,11 @@ func (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, loc vtype = reflect.PtrTo(vtype) } - p.mvalprop.CustomType = p.CustomType - p.mvalprop.StdDuration = p.StdDuration - p.mvalprop.StdTime = p.StdTime - p.mvalprop.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) + p.MapValProp.CustomType = p.CustomType + p.MapValProp.StdDuration = p.StdDuration + p.MapValProp.StdTime = p.StdTime + p.MapValProp.WktPointer = p.WktPointer + p.MapValProp.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) } p.setTag(lockGetProp) } diff --git a/vendor/github.com/gogo/protobuf/proto/table_marshal.go b/vendor/github.com/gogo/protobuf/proto/table_marshal.go index 255e7b508..ba58c49a4 100644 --- a/vendor/github.com/gogo/protobuf/proto/table_marshal.go +++ b/vendor/github.com/gogo/protobuf/proto/table_marshal.go @@ -97,6 +97,8 @@ type marshalElemInfo struct { var ( marshalInfoMap = map[reflect.Type]*marshalInfo{} marshalInfoLock sync.Mutex + + uint8SliceType = reflect.TypeOf(([]uint8)(nil)).Kind() ) // getMarshalInfo returns the information to marshal a given type of message. @@ -246,16 +248,13 @@ func (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte // If the message can marshal itself, let it do it, for compatibility. // NOTE: This is not efficient. if u.hasmarshaler { - if deterministic { - return nil, errors.New("proto: deterministic not supported by the Marshal method of " + u.typ.String()) - } m := ptr.asPointerTo(u.typ).Interface().(Marshaler) b1, err := m.Marshal() b = append(b, b1...) return b, err } - var err, errreq error + var err, errLater error // The old marshaler encodes extensions at beginning. if u.extensions.IsValid() { e := ptr.offset(u.extensions).toExtensions() @@ -280,11 +279,13 @@ func (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte b = append(b, s...) } for _, f := range u.fields { - if f.required && errreq == nil { - if ptr.offset(f.field).getPointer().isNil() { + if f.required { + if f.isPointer && ptr.offset(f.field).getPointer().isNil() { // Required field is not set. // We record the error but keep going, to give a complete marshaling. - errreq = &RequiredNotSetError{f.name} + if errLater == nil { + errLater = &RequiredNotSetError{f.name} + } continue } } @@ -297,14 +298,21 @@ func (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte if err1, ok := err.(*RequiredNotSetError); ok { // Required field in submessage is not set. // We record the error but keep going, to give a complete marshaling. - if errreq == nil { - errreq = &RequiredNotSetError{f.name + "." + err1.field} + if errLater == nil { + errLater = &RequiredNotSetError{f.name + "." + err1.field} } continue } if err == errRepeatedHasNil { err = errors.New("proto: repeated field " + f.name + " has nil element") } + if err == errInvalidUTF8 { + if errLater == nil { + fullName := revProtoTypes[reflect.PtrTo(u.typ)] + "." + f.name + errLater = &invalidUTF8Error{fullName} + } + continue + } return b, err } } @@ -312,7 +320,7 @@ func (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte s := *ptr.offset(u.unrecognized).toBytes() b = append(b, s...) } - return b, errreq + return b, errLater } // computeMarshalInfo initializes the marshal info. @@ -577,6 +585,8 @@ func typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, ma ctype := false isTime := false isDuration := false + isWktPointer := false + validateUTF8 := true for i := 2; i < len(tags); i++ { if tags[i] == "packed" { packed = true @@ -593,7 +603,11 @@ func typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, ma if tags[i] == "stdduration" { isDuration = true } + if tags[i] == "wktptr" { + isWktPointer = true + } } + validateUTF8 = validateUTF8 && proto3 if !proto3 && !pointer && !slice { nozero = false } @@ -638,6 +652,112 @@ func typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, ma return makeDurationMarshaler(getMarshalInfo(t)) } + if isWktPointer { + switch t.Kind() { + case reflect.Float64: + if pointer { + if slice { + return makeStdDoubleValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdDoubleValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdDoubleValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdDoubleValueMarshaler(getMarshalInfo(t)) + case reflect.Float32: + if pointer { + if slice { + return makeStdFloatValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdFloatValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdFloatValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdFloatValueMarshaler(getMarshalInfo(t)) + case reflect.Int64: + if pointer { + if slice { + return makeStdInt64ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt64ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdInt64ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt64ValueMarshaler(getMarshalInfo(t)) + case reflect.Uint64: + if pointer { + if slice { + return makeStdUInt64ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt64ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdUInt64ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt64ValueMarshaler(getMarshalInfo(t)) + case reflect.Int32: + if pointer { + if slice { + return makeStdInt32ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt32ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdInt32ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt32ValueMarshaler(getMarshalInfo(t)) + case reflect.Uint32: + if pointer { + if slice { + return makeStdUInt32ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt32ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdUInt32ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt32ValueMarshaler(getMarshalInfo(t)) + case reflect.Bool: + if pointer { + if slice { + return makeStdBoolValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBoolValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdBoolValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBoolValueMarshaler(getMarshalInfo(t)) + case reflect.String: + if pointer { + if slice { + return makeStdStringValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdStringValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdStringValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdStringValueMarshaler(getMarshalInfo(t)) + case uint8SliceType: + if pointer { + if slice { + return makeStdBytesValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBytesValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdBytesValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBytesValueMarshaler(getMarshalInfo(t)) + default: + panic(fmt.Sprintf("unknown wktpointer type %#v", t)) + } + } + switch t.Kind() { case reflect.Bool: if pointer { @@ -834,6 +954,18 @@ func typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, ma } return sizeFloat64Value, appendFloat64Value case reflect.String: + if validateUTF8 { + if pointer { + return sizeStringPtr, appendUTF8StringPtr + } + if slice { + return sizeStringSlice, appendUTF8StringSlice + } + if nozero { + return sizeStringValueNoZero, appendUTF8StringValueNoZero + } + return sizeStringValue, appendUTF8StringValue + } if pointer { return sizeStringPtr, appendStringPtr } @@ -2090,9 +2222,6 @@ func appendBoolPackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byt } func appendStringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { v := *ptr.toString() - if !utf8.ValidString(v) { - return nil, errInvalidUTF8 - } b = appendVarint(b, wiretag) b = appendVarint(b, uint64(len(v))) b = append(b, v...) @@ -2103,9 +2232,6 @@ func appendStringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]b if v == "" { return b, nil } - if !utf8.ValidString(v) { - return nil, errInvalidUTF8 - } b = appendVarint(b, wiretag) b = appendVarint(b, uint64(len(v))) b = append(b, v...) @@ -2117,24 +2243,83 @@ func appendStringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, err return b, nil } v := *p - if !utf8.ValidString(v) { - return nil, errInvalidUTF8 - } b = appendVarint(b, wiretag) b = appendVarint(b, uint64(len(v))) b = append(b, v...) return b, nil } func appendStringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toStringSlice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + } + return b, nil +} +func appendUTF8StringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + v := *ptr.toString() + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + v := *ptr.toString() + if v == "" { + return b, nil + } + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + p := *ptr.toStringPtr() + if p == nil { + return b, nil + } + v := *p + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool s := *ptr.toStringSlice() for _, v := range s { if !utf8.ValidString(v) { - return nil, errInvalidUTF8 + invalidUTF8 = true } b = appendVarint(b, wiretag) b = appendVarint(b, uint64(len(v))) b = append(b, v...) } + if invalidUTF8 { + return b, errInvalidUTF8 + } return b, nil } func appendBytes(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { @@ -2213,7 +2398,8 @@ func makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) { }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { s := ptr.getPointerSlice() - var err, errreq error + var err error + var nerr nonFatal for _, v := range s { if v.isNil() { return b, errRepeatedHasNil @@ -2221,22 +2407,14 @@ func makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) { b = appendVarint(b, wiretag) // start group b, err = u.marshal(b, v, deterministic) b = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group - if err != nil { - if _, ok := err.(*RequiredNotSetError); ok { - // Required field in submessage is not set. - // We record the error but keep going, to give a complete marshaling. - if errreq == nil { - errreq = err - } - continue - } + if !nerr.Merge(err) { if err == ErrNil { err = errRepeatedHasNil } return b, err } } - return b, errreq + return b, nerr.E } } @@ -2280,7 +2458,8 @@ func makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) { }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { s := ptr.getPointerSlice() - var err, errreq error + var err error + var nerr nonFatal for _, v := range s { if v.isNil() { return b, errRepeatedHasNil @@ -2289,22 +2468,15 @@ func makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) { siz := u.cachedsize(v) b = appendVarint(b, uint64(siz)) b, err = u.marshal(b, v, deterministic) - if err != nil { - if _, ok := err.(*RequiredNotSetError); ok { - // Required field in submessage is not set. - // We record the error but keep going, to give a complete marshaling. - if errreq == nil { - errreq = err - } - continue - } + + if !nerr.Merge(err) { if err == ErrNil { err = errRepeatedHasNil } return b, err } } - return b, errreq + return b, nerr.E } } @@ -2318,15 +2490,21 @@ func makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) { tags := strings.Split(f.Tag.Get("protobuf"), ",") keyTags := strings.Split(f.Tag.Get("protobuf_key"), ",") valTags := strings.Split(f.Tag.Get("protobuf_val"), ",") + stdOptions := false for _, t := range tags { if strings.HasPrefix(t, "customtype=") { valTags = append(valTags, t) } if t == "stdtime" { valTags = append(valTags, t) + stdOptions = true } if t == "stdduration" { valTags = append(valTags, t) + stdOptions = true + } + if t == "wktptr" { + valTags = append(valTags, t) } } keySizer, keyMarshaler := typeMarshaler(keyType, keyTags, false, false) // don't omit zero value in map @@ -2340,6 +2518,25 @@ func makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) { // value. // Key cannot be pointer-typed. valIsPtr := valType.Kind() == reflect.Ptr + + // If value is a message with nested maps, calling + // valSizer in marshal may be quadratic. We should use + // cached version in marshal (but not in size). + // If value is not message type, we don't have size cache, + // but it cannot be nested either. Just use valSizer. + valCachedSizer := valSizer + if valIsPtr && !stdOptions && valType.Elem().Kind() == reflect.Struct { + u := getMarshalInfo(valType.Elem()) + valCachedSizer = func(ptr pointer, tagsize int) int { + // Same as message sizer, but use cache. + p := ptr.getPointer() + if p.isNil() { + return 0 + } + siz := u.cachedsize(p) + return siz + SizeVarint(uint64(siz)) + tagsize + } + } return func(ptr pointer, tagsize int) int { m := ptr.asPointerTo(t).Elem() // the map n := 0 @@ -2360,24 +2557,26 @@ func makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) { if len(keys) > 1 && deterministic { sort.Sort(mapKeys(keys)) } + + var nerr nonFatal for _, k := range keys { ki := k.Interface() vi := m.MapIndex(k).Interface() kaddr := toAddrPointer(&ki, false) // pointer to key vaddr := toAddrPointer(&vi, valIsPtr) // pointer to value b = appendVarint(b, tag) - siz := keySizer(kaddr, 1) + valSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1) + siz := keySizer(kaddr, 1) + valCachedSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1) b = appendVarint(b, uint64(siz)) b, err = keyMarshaler(b, kaddr, keyWireTag, deterministic) - if err != nil { + if !nerr.Merge(err) { return b, err } b, err = valMarshaler(b, vaddr, valWireTag, deterministic) - if err != nil && err != ErrNil { // allow nil value in map + if err != ErrNil && !nerr.Merge(err) { // allow nil value in map return b, err } } - return b, nil + return b, nerr.E } } @@ -2450,6 +2649,7 @@ func (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, de defer mu.Unlock() var err error + var nerr nonFatal // Fast-path for common cases: zero or one extensions. // Don't bother sorting the keys. @@ -2469,11 +2669,11 @@ func (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, de v := e.value p := toAddrPointer(&v, ei.isptr) b, err = ei.marshaler(b, p, ei.wiretag, deterministic) - if err != nil { + if !nerr.Merge(err) { return b, err } } - return b, nil + return b, nerr.E } // Sort the keys to provide a deterministic encoding. @@ -2500,11 +2700,11 @@ func (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, de v := e.value p := toAddrPointer(&v, ei.isptr) b, err = ei.marshaler(b, p, ei.wiretag, deterministic) - if err != nil { + if !nerr.Merge(err) { return b, err } } - return b, nil + return b, nerr.E } // message set format is: @@ -2561,6 +2761,7 @@ func (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, de defer mu.Unlock() var err error + var nerr nonFatal // Fast-path for common cases: zero or one extensions. // Don't bother sorting the keys. @@ -2587,12 +2788,12 @@ func (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, de v := e.value p := toAddrPointer(&v, ei.isptr) b, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic) - if err != nil { + if !nerr.Merge(err) { return b, err } b = append(b, 1<<3|WireEndGroup) } - return b, nil + return b, nerr.E } // Sort the keys to provide a deterministic encoding. @@ -2626,11 +2827,11 @@ func (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, de p := toAddrPointer(&v, ei.isptr) b, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic) b = append(b, 1<<3|WireEndGroup) - if err != nil { + if !nerr.Merge(err) { return b, err } } - return b, nil + return b, nerr.E } // sizeV1Extensions computes the size of encoded data for a V1-API extension field. @@ -2673,6 +2874,7 @@ func (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extension, determ sort.Ints(keys) var err error + var nerr nonFatal for _, k := range keys { e := m[int32(k)] if e.value == nil || e.desc == nil { @@ -2689,11 +2891,11 @@ func (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extension, determ v := e.value p := toAddrPointer(&v, ei.isptr) b, err = ei.marshaler(b, p, ei.wiretag, deterministic) - if err != nil { + if !nerr.Merge(err) { return b, err } } - return b, nil + return b, nerr.E } // newMarshaler is the interface representing objects that can marshal themselves. @@ -2758,6 +2960,11 @@ func Marshal(pb Message) ([]byte, error) { // a Buffer for most applications. func (p *Buffer) Marshal(pb Message) error { var err error + if p.deterministic { + if _, ok := pb.(Marshaler); ok { + return fmt.Errorf("proto: deterministic not supported by the Marshal method of %T", pb) + } + } if m, ok := pb.(newMarshaler); ok { siz := m.XXX_Size() p.grow(siz) // make sure buf has enough capacity diff --git a/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go index 910e2dd6a..e6b15c76c 100644 --- a/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go +++ b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go @@ -99,6 +99,8 @@ type unmarshalFieldInfo struct { // if a required field, contains a single set bit at this field's index in the required field list. reqMask uint64 + + name string // name of the field, for error reporting } var ( @@ -138,8 +140,8 @@ func (u *unmarshalInfo) unmarshal(m pointer, b []byte) error { if u.isMessageSet { return UnmarshalMessageSet(b, m.offset(u.extensions).toExtensions()) } - var reqMask uint64 // bitmask of required fields we've seen. - var rnse *RequiredNotSetError // an instance of a RequiredNotSetError returned by a submessage. + var reqMask uint64 // bitmask of required fields we've seen. + var errLater error for len(b) > 0 { // Read tag and wire type. // Special case 1 and 2 byte varints. @@ -178,11 +180,20 @@ func (u *unmarshalInfo) unmarshal(m pointer, b []byte) error { if r, ok := err.(*RequiredNotSetError); ok { // Remember this error, but keep parsing. We need to produce // a full parse even if a required field is missing. - rnse = r + if errLater == nil { + errLater = r + } reqMask |= f.reqMask continue } if err != errInternalBadWireType { + if err == errInvalidUTF8 { + if errLater == nil { + fullName := revProtoTypes[reflect.PtrTo(u.typ)] + "." + f.name + errLater = &invalidUTF8Error{fullName} + } + continue + } return err } // Fragments with bad wire type are treated as unknown fields. @@ -244,20 +255,16 @@ func (u *unmarshalInfo) unmarshal(m pointer, b []byte) error { emap[int32(tag)] = e } } - if rnse != nil { - // A required field of a submessage/group is missing. Return that error. - return rnse - } - if reqMask != u.reqMask { + if reqMask != u.reqMask && errLater == nil { // A required field of this message is missing. for _, n := range u.reqFields { if reqMask&1 == 0 { - return &RequiredNotSetError{n} + errLater = &RequiredNotSetError{n} } reqMask >>= 1 } } - return nil + return errLater } // computeUnmarshalInfo fills in u with information for use @@ -360,7 +367,7 @@ func (u *unmarshalInfo) computeUnmarshalInfo() { } // Store the info in the correct slot in the message. - u.setTag(tag, toField(&f), unmarshal, reqMask) + u.setTag(tag, toField(&f), unmarshal, reqMask, name) } // Find any types associated with oneof fields. @@ -376,10 +383,17 @@ func (u *unmarshalInfo) computeUnmarshalInfo() { f := typ.Field(0) // oneof implementers have one field baseUnmarshal := fieldUnmarshaler(&f) - tagstr := strings.Split(f.Tag.Get("protobuf"), ",")[1] - tag, err := strconv.Atoi(tagstr) + tags := strings.Split(f.Tag.Get("protobuf"), ",") + fieldNum, err := strconv.Atoi(tags[1]) if err != nil { - panic("protobuf tag field not an integer: " + tagstr) + panic("protobuf tag field not an integer: " + tags[1]) + } + var name string + for _, tag := range tags { + if strings.HasPrefix(tag, "name=") { + name = strings.TrimPrefix(tag, "name=") + break + } } // Find the oneof field that this struct implements. @@ -390,7 +404,7 @@ func (u *unmarshalInfo) computeUnmarshalInfo() { // That lets us know where this struct should be stored // when we encounter it during unmarshaling. unmarshal := makeUnmarshalOneof(typ, of.ityp, baseUnmarshal) - u.setTag(tag, of.field, unmarshal, 0) + u.setTag(fieldNum, of.field, unmarshal, 0, name) } } } @@ -411,7 +425,7 @@ func (u *unmarshalInfo) computeUnmarshalInfo() { // [0 0] is [tag=0/wiretype=varint varint-encoded-0]. u.setTag(0, zeroField, func(b []byte, f pointer, w int) ([]byte, error) { return nil, fmt.Errorf("proto: %s: illegal tag 0 (wire type %d)", t, w) - }, 0) + }, 0, "") // Set mask for required field check. u.reqMask = uint64(1)<= 0 && (tag < 16 || tag < 2*n) { // TODO: what are the right numbers here? for len(u.dense) <= tag { @@ -455,10 +470,16 @@ func typeUnmarshaler(t reflect.Type, tags string) unmarshaler { ctype := false isTime := false isDuration := false + isWktPointer := false + proto3 := false + validateUTF8 := true for _, tag := range tagArray[3:] { if strings.HasPrefix(tag, "name=") { name = tag[5:] } + if tag == "proto3" { + proto3 = true + } if strings.HasPrefix(tag, "customtype=") { ctype = true } @@ -468,7 +489,11 @@ func typeUnmarshaler(t reflect.Type, tags string) unmarshaler { if tag == "stdduration" { isDuration = true } + if tag == "wktptr" { + isWktPointer = true + } } + validateUTF8 = validateUTF8 && proto3 // Figure out packaging (pointer, slice, or both) slice := false @@ -522,6 +547,112 @@ func typeUnmarshaler(t reflect.Type, tags string) unmarshaler { return makeUnmarshalDuration(getUnmarshalInfo(t), name) } + if isWktPointer { + switch t.Kind() { + case reflect.Float64: + if pointer { + if slice { + return makeStdDoubleValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdDoubleValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdDoubleValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdDoubleValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Float32: + if pointer { + if slice { + return makeStdFloatValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdFloatValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdFloatValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdFloatValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Int64: + if pointer { + if slice { + return makeStdInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt64ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Uint64: + if pointer { + if slice { + return makeStdUInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdUInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt64ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Int32: + if pointer { + if slice { + return makeStdInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt32ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Uint32: + if pointer { + if slice { + return makeStdUInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdUInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt32ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Bool: + if pointer { + if slice { + return makeStdBoolValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBoolValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdBoolValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBoolValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.String: + if pointer { + if slice { + return makeStdStringValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdStringValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdStringValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdStringValueUnmarshaler(getUnmarshalInfo(t), name) + case uint8SliceType: + if pointer { + if slice { + return makeStdBytesValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBytesValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdBytesValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBytesValueUnmarshaler(getUnmarshalInfo(t), name) + default: + panic(fmt.Sprintf("unknown wktpointer type %#v", t)) + } + } + // We'll never have both pointer and slice for basic types. if pointer && slice && t.Kind() != reflect.Struct { panic("both pointer and slice for basic type in " + t.Name()) @@ -656,6 +787,15 @@ func typeUnmarshaler(t reflect.Type, tags string) unmarshaler { } return unmarshalBytesValue case reflect.String: + if validateUTF8 { + if pointer { + return unmarshalUTF8StringPtr + } + if slice { + return unmarshalUTF8StringSlice + } + return unmarshalUTF8StringValue + } if pointer { return unmarshalStringPtr } @@ -1516,9 +1656,6 @@ func unmarshalStringValue(b []byte, f pointer, w int) ([]byte, error) { return nil, io.ErrUnexpectedEOF } v := string(b[:x]) - if !utf8.ValidString(v) { - return nil, errInvalidUTF8 - } *f.toString() = v return b[x:], nil } @@ -1536,9 +1673,6 @@ func unmarshalStringPtr(b []byte, f pointer, w int) ([]byte, error) { return nil, io.ErrUnexpectedEOF } v := string(b[:x]) - if !utf8.ValidString(v) { - return nil, errInvalidUTF8 - } *f.toStringPtr() = &v return b[x:], nil } @@ -1556,14 +1690,72 @@ func unmarshalStringSlice(b []byte, f pointer, w int) ([]byte, error) { return nil, io.ErrUnexpectedEOF } v := string(b[:x]) - if !utf8.ValidString(v) { - return nil, errInvalidUTF8 - } s := f.toStringSlice() *s = append(*s, v) return b[x:], nil } +func unmarshalUTF8StringValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toString() = v + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +func unmarshalUTF8StringPtr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toStringPtr() = &v + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +func unmarshalUTF8StringSlice(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + s := f.toStringSlice() + *s = append(*s, v) + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + var emptyBuf [0]byte func unmarshalBytesValue(b []byte, f pointer, w int) ([]byte, error) { @@ -1731,6 +1923,9 @@ func makeUnmarshalMap(f *reflect.StructField) unmarshaler { if t == "stdduration" { valTags = append(valTags, t) } + if t == "wktptr" { + valTags = append(valTags, t) + } } unmarshalKey := typeUnmarshaler(kt, f.Tag.Get("protobuf_key")) unmarshalVal := typeUnmarshaler(vt, strings.Join(valTags, ",")) @@ -1755,6 +1950,7 @@ func makeUnmarshalMap(f *reflect.StructField) unmarshaler { // Maps will be somewhat slow. Oh well. // Read key and value from data. + var nerr nonFatal k := reflect.New(kt) v := reflect.New(vt) for len(b) > 0 { @@ -1775,7 +1971,7 @@ func makeUnmarshalMap(f *reflect.StructField) unmarshaler { err = errInternalBadWireType // skip unknown tag } - if err == nil { + if nerr.Merge(err) { continue } if err != errInternalBadWireType { @@ -1798,7 +1994,7 @@ func makeUnmarshalMap(f *reflect.StructField) unmarshaler { // Insert into map. m.SetMapIndex(k.Elem(), v.Elem()) - return r, nil + return r, nerr.E } } @@ -1824,15 +2020,16 @@ func makeUnmarshalOneof(typ, ityp reflect.Type, unmarshal unmarshaler) unmarshal // Unmarshal data into holder. // We unmarshal into the first field of the holder object. var err error + var nerr nonFatal b, err = unmarshal(b, valToPointer(v).offset(field0), w) - if err != nil { + if !nerr.Merge(err) { return nil, err } // Write pointer to holder into target field. f.asPointerTo(ityp).Elem().Set(v) - return b, nil + return b, nerr.E } } diff --git a/vendor/github.com/gogo/protobuf/proto/text.go b/vendor/github.com/gogo/protobuf/proto/text.go index 4f5706dc5..0407ba85d 100644 --- a/vendor/github.com/gogo/protobuf/proto/text.go +++ b/vendor/github.com/gogo/protobuf/proto/text.go @@ -364,7 +364,7 @@ func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error { return err } } - if err := tm.writeAny(w, key, props.mkeyprop); err != nil { + if err := tm.writeAny(w, key, props.MapKeyProp); err != nil { return err } if err := w.WriteByte('\n'); err != nil { @@ -381,7 +381,7 @@ func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error { return err } } - if err := tm.writeAny(w, val, props.mvalprop); err != nil { + if err := tm.writeAny(w, val, props.MapValProp); err != nil { return err } if err := w.WriteByte('\n'); err != nil { diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser.go b/vendor/github.com/gogo/protobuf/proto/text_parser.go index fbb000d37..1ce0be2fa 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_parser.go +++ b/vendor/github.com/gogo/protobuf/proto/text_parser.go @@ -636,17 +636,17 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { if err := p.consumeToken(":"); err != nil { return err } - if err := p.readAny(key, props.mkeyprop); err != nil { + if err := p.readAny(key, props.MapKeyProp); err != nil { return err } if err := p.consumeOptionalSeparator(); err != nil { return err } case "value": - if err := p.checkForColon(props.mvalprop, dst.Type().Elem()); err != nil { + if err := p.checkForColon(props.MapValProp, dst.Type().Elem()); err != nil { return err } - if err := p.readAny(val, props.mvalprop); err != nil { + if err := p.readAny(val, props.MapValProp); err != nil { return err } if err := p.consumeOptionalSeparator(); err != nil { @@ -923,6 +923,16 @@ func (p *textParser) readAny(v reflect.Value, props *Properties) error { fv.SetFloat(f) return nil } + case reflect.Int8: + if x, err := strconv.ParseInt(tok.value, 0, 8); err == nil { + fv.SetInt(x) + return nil + } + case reflect.Int16: + if x, err := strconv.ParseInt(tok.value, 0, 16); err == nil { + fv.SetInt(x) + return nil + } case reflect.Int32: if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { fv.SetInt(x) @@ -970,6 +980,16 @@ func (p *textParser) readAny(v reflect.Value, props *Properties) error { } // TODO: Handle nested messages which implement encoding.TextUnmarshaler. return p.readStruct(fv, terminator) + case reflect.Uint8: + if x, err := strconv.ParseUint(tok.value, 0, 8); err == nil { + fv.SetUint(x) + return nil + } + case reflect.Uint16: + if x, err := strconv.ParseUint(tok.value, 0, 16); err == nil { + fv.SetUint(x) + return nil + } case reflect.Uint32: if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { fv.SetUint(uint64(x)) diff --git a/vendor/github.com/gogo/protobuf/proto/wrappers.go b/vendor/github.com/gogo/protobuf/proto/wrappers.go new file mode 100644 index 000000000..b175d1b64 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/wrappers.go @@ -0,0 +1,1888 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "io" + "reflect" +) + +func makeStdDoubleValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*float64) + v := &float64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdDoubleValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64) + v := &float64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdDoubleValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float64) + v := &float64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float64) + v := &float64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdDoubleValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdDoubleValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdDoubleValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdDoubleValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdDoubleValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdFloatValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*float32) + v := &float32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdFloatValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32) + v := &float32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdFloatValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float32) + v := &float32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float32) + v := &float32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdFloatValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdFloatValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdFloatValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdFloatValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdFloatValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*int64) + v := &int64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64) + v := &int64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int64) + v := &int64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int64) + v := &int64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*uint64) + v := &uint64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64) + v := &uint64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint64) + v := &uint64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint64) + v := &uint64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdUInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdUInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*int32) + v := &int32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32) + v := &int32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int32) + v := &int32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int32) + v := &int32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*uint32) + v := &uint32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32) + v := &uint32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint32) + v := &uint32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint32) + v := &uint32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdUInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdUInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBoolValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*bool) + v := &boolValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBoolValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool) + v := &boolValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBoolValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(bool) + v := &boolValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(bool) + v := &boolValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBoolValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBoolValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdBoolValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdBoolValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBoolValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdStringValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*string) + v := &stringValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdStringValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string) + v := &stringValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdStringValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(string) + v := &stringValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(string) + v := &stringValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdStringValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdStringValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdStringValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdStringValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdStringValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBytesValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*[]byte) + v := &bytesValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBytesValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte) + v := &bytesValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBytesValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().([]byte) + v := &bytesValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().([]byte) + v := &bytesValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBytesValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBytesValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdBytesValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdBytesValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBytesValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go b/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go new file mode 100644 index 000000000..c1cf7bf85 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go @@ -0,0 +1,113 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +type float64Value struct { + Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *float64Value) Reset() { *m = float64Value{} } +func (*float64Value) ProtoMessage() {} +func (*float64Value) String() string { return "float64" } + +type float32Value struct { + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *float32Value) Reset() { *m = float32Value{} } +func (*float32Value) ProtoMessage() {} +func (*float32Value) String() string { return "float32" } + +type int64Value struct { + Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *int64Value) Reset() { *m = int64Value{} } +func (*int64Value) ProtoMessage() {} +func (*int64Value) String() string { return "int64" } + +type uint64Value struct { + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *uint64Value) Reset() { *m = uint64Value{} } +func (*uint64Value) ProtoMessage() {} +func (*uint64Value) String() string { return "uint64" } + +type int32Value struct { + Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *int32Value) Reset() { *m = int32Value{} } +func (*int32Value) ProtoMessage() {} +func (*int32Value) String() string { return "int32" } + +type uint32Value struct { + Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *uint32Value) Reset() { *m = uint32Value{} } +func (*uint32Value) ProtoMessage() {} +func (*uint32Value) String() string { return "uint32" } + +type boolValue struct { + Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *boolValue) Reset() { *m = boolValue{} } +func (*boolValue) ProtoMessage() {} +func (*boolValue) String() string { return "bool" } + +type stringValue struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *stringValue) Reset() { *m = stringValue{} } +func (*stringValue) ProtoMessage() {} +func (*stringValue) String() string { return "string" } + +type bytesValue struct { + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *bytesValue) Reset() { *m = bytesValue{} } +func (*bytesValue) ProtoMessage() {} +func (*bytesValue) String() string { return "[]byte" } + +func init() { + RegisterType((*float64Value)(nil), "gogo.protobuf.proto.DoubleValue") + RegisterType((*float32Value)(nil), "gogo.protobuf.proto.FloatValue") + RegisterType((*int64Value)(nil), "gogo.protobuf.proto.Int64Value") + RegisterType((*uint64Value)(nil), "gogo.protobuf.proto.UInt64Value") + RegisterType((*int32Value)(nil), "gogo.protobuf.proto.Int32Value") + RegisterType((*uint32Value)(nil), "gogo.protobuf.proto.UInt32Value") + RegisterType((*boolValue)(nil), "gogo.protobuf.proto.BoolValue") + RegisterType((*stringValue)(nil), "gogo.protobuf.proto.StringValue") + RegisterType((*bytesValue)(nil), "gogo.protobuf.proto.BytesValue") +} diff --git a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/openapi_generated.go b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/openapi_generated.go index 386062fd2..96133f39d 100644 --- a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/openapi_generated.go +++ b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/openapi_generated.go @@ -42,6 +42,8 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.Parameter": schema_pkg_apis_devops_v1alpha1_Parameter(ref), "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.ProxyConfig": schema_pkg_apis_devops_v1alpha1_ProxyConfig(ref), "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iAutoScale": schema_pkg_apis_devops_v1alpha1_S2iAutoScale(ref), + "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuildResult": schema_pkg_apis_devops_v1alpha1_S2iBuildResult(ref), + "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuildSource": schema_pkg_apis_devops_v1alpha1_S2iBuildSource(ref), "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuilder": schema_pkg_apis_devops_v1alpha1_S2iBuilder(ref), "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuilderList": schema_pkg_apis_devops_v1alpha1_S2iBuilderList(ref), "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuilderSpec": schema_pkg_apis_devops_v1alpha1_S2iBuilderSpec(ref), @@ -772,6 +774,144 @@ func schema_pkg_apis_devops_v1alpha1_S2iAutoScale(ref common.ReferenceCallback) } } +func schema_pkg_apis_devops_v1alpha1_S2iBuildResult(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "imageName": { + SchemaProps: spec.SchemaProps{ + Description: "ImageName is the name of artifact", + Type: []string{"string"}, + Format: "", + }, + }, + "imageSize": { + SchemaProps: spec.SchemaProps{ + Description: "The size in bytes of the image", + Type: []string{"integer"}, + Format: "int64", + }, + }, + "imageID": { + SchemaProps: spec.SchemaProps{ + Description: "Image ID.", + Type: []string{"string"}, + Format: "", + }, + }, + "imageCreated": { + SchemaProps: spec.SchemaProps{ + Description: "Image created time.", + Type: []string{"string"}, + Format: "", + }, + }, + "imageRepoTags": { + SchemaProps: spec.SchemaProps{ + Description: "image tags.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "commandPull": { + SchemaProps: spec.SchemaProps{ + Description: "Command for pull image.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + } +} + +func schema_pkg_apis_devops_v1alpha1_S2iBuildSource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "sourceUrl": { + SchemaProps: spec.SchemaProps{ + Description: "SourceURL is url of the codes such as https://github.com/a/b.git", + Type: []string{"string"}, + Format: "", + }, + }, + "revisionId": { + SchemaProps: spec.SchemaProps{ + Description: "The RevisionId is a branch name or a SHA-1 hash of every important thing about the commit", + Type: []string{"string"}, + Format: "", + }, + }, + "binaryName": { + SchemaProps: spec.SchemaProps{ + Description: "Binary file Name", + Type: []string{"string"}, + Format: "", + }, + }, + "binarySize": { + SchemaProps: spec.SchemaProps{ + Description: "Binary file Size", + Type: []string{"integer"}, + Format: "int64", + }, + }, + "builderImage": { + SchemaProps: spec.SchemaProps{ + Description: "// BuilderImage describes which image is used for building the result images.", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "Description is a result image description label. The default is no description.", + Type: []string{"string"}, + Format: "", + }, + }, + "commitID": { + SchemaProps: spec.SchemaProps{ + Description: "CommitID represents an arbitrary extended object reference in Git as SHA-1", + Type: []string{"string"}, + Format: "", + }, + }, + "committerName": { + SchemaProps: spec.SchemaProps{ + Description: "CommitterName contains the name of the committer", + Type: []string{"string"}, + Format: "", + }, + }, + "committerEmail": { + SchemaProps: spec.SchemaProps{ + Description: "CommitterEmail contains the e-mail of the committer", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + } +} + func schema_pkg_apis_devops_v1alpha1_S2iBuilder(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -1577,6 +1717,13 @@ func schema_pkg_apis_devops_v1alpha1_S2iConfig(ref common.ReferenceCallback) com }, }, }, + "outputBuildResult": { + SchemaProps: spec.SchemaProps{ + Description: "Whether output build result to status.", + Type: []string{"boolean"}, + Format: "", + }, + }, }, Required: []string{"imageName", "sourceUrl"}, }, @@ -1774,18 +1921,23 @@ func schema_pkg_apis_devops_v1alpha1_S2iRunStatus(ref common.ReferenceCallback) Format: "", }, }, - "imageName": { + "s2iBuildResult": { SchemaProps: spec.SchemaProps{ - Description: "ImageName is the name of artifact", - Type: []string{"string"}, - Format: "", + Description: "S2i build result info.", + Ref: ref("github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuildResult"), + }, + }, + "s2iBuildSource": { + SchemaProps: spec.SchemaProps{ + Description: "S2i build source info.", + Ref: ref("github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuildSource"), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuildResult", "github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1.S2iBuildSource", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } diff --git a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2ibuilder_types.go b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2ibuilder_types.go index 98a8d1bfb..75fecb7d1 100644 --- a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2ibuilder_types.go +++ b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2ibuilder_types.go @@ -419,6 +419,9 @@ type S2iConfig struct { // The values of Node Affinity. NodeAffinityValues []string `json:"nodeAffinityValues,omitempty"` + + // Whether output build result to status. + OutputBuildResult bool `json:"outputBuildResult,omitempty"` } type UserDefineTemplate struct { diff --git a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2irun_types.go b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2irun_types.go index ac5101c51..7adb396b6 100644 --- a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2irun_types.go +++ b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/s2irun_types.go @@ -61,8 +61,50 @@ type S2iRunStatus struct { LogURL string `json:"logURL,omitempty"` //KubernetesJobName is the job name in k8s KubernetesJobName string `json:"kubernetesJobName,omitempty"` + + // S2i build result info. + S2iBuildResult *S2iBuildResult `json:"s2iBuildResult,omitempty"` + // S2i build source info. + S2iBuildSource *S2iBuildSource `json:"s2iBuildSource,omitempty"` +} + +type S2iBuildResult struct { //ImageName is the name of artifact ImageName string `json:"imageName,omitempty"` + //The size in bytes of the image + ImageSize int64 `json:"imageSize,omitempty"` + // Image ID. + ImageID string `json:"imageID,omitempty"` + // Image created time. + ImageCreated string `json:"imageCreated,omitempty"` + // image tags. + ImageRepoTags []string `json:"imageRepoTags,omitempty"` + // Command for pull image. + CommandPull string `json:"commandPull,omitempty"` +} + +type S2iBuildSource struct { + // SourceURL is url of the codes such as https://github.com/a/b.git + SourceUrl string `json:"sourceUrl,omitempty"` + // The RevisionId is a branch name or a SHA-1 hash of every important thing about the commit + RevisionId string `json:"revisionId,omitempty"` + // Binary file Name + BinaryName string `json:"binaryName,omitempty"` + // Binary file Size + BinarySize uint64 `json:"binarySize,omitempty"` + + // // BuilderImage describes which image is used for building the result images. + BuilderImage string `json:"builderImage,omitempty"` + // Description is a result image description label. The default is no + // description. + Description string `json:"description,omitempty"` + + // CommitID represents an arbitrary extended object reference in Git as SHA-1 + CommitID string `json:"commitID,omitempty"` + // CommitterName contains the name of the committer + CommitterName string `json:"committerName,omitempty"` + // CommitterEmail contains the e-mail of the committer + CommitterEmail string `json:"committerEmail,omitempty"` } // +genclient @@ -76,7 +118,7 @@ type S2iRunStatus struct { // +kubebuilder:printcolumn:name="K8sJobName",type="string",JSONPath=".status.kubernetesJobName" // +kubebuilder:printcolumn:name="StartTime",type="date",JSONPath=".status.startTime" // +kubebuilder:printcolumn:name="CompletionTime",type="date",JSONPath=".status.completionTime" -// +kubebuilder:printcolumn:name="ImageName",type="string",JSONPath=".status.imageName" +// +kubebuilder:printcolumn:name="ImageName",type="string",JSONPath=".status.s2iBuildResult.imageName" type S2iRun struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/zz_generated.deepcopy.go index 2f926f6e5..4383eed30 100644 --- a/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1/zz_generated.deepcopy.go @@ -271,6 +271,43 @@ func (in *S2iAutoScale) DeepCopy() *S2iAutoScale { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S2iBuildResult) DeepCopyInto(out *S2iBuildResult) { + *out = *in + if in.ImageRepoTags != nil { + in, out := &in.ImageRepoTags, &out.ImageRepoTags + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S2iBuildResult. +func (in *S2iBuildResult) DeepCopy() *S2iBuildResult { + if in == nil { + return nil + } + out := new(S2iBuildResult) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S2iBuildSource) DeepCopyInto(out *S2iBuildSource) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S2iBuildSource. +func (in *S2iBuildSource) DeepCopy() *S2iBuildSource { + if in == nil { + return nil + } + out := new(S2iBuildSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *S2iBuilder) DeepCopyInto(out *S2iBuilder) { *out = *in @@ -681,6 +718,16 @@ func (in *S2iRunStatus) DeepCopyInto(out *S2iRunStatus) { in, out := &in.CompletionTime, &out.CompletionTime *out = (*in).DeepCopy() } + if in.S2iBuildResult != nil { + in, out := &in.S2iBuildResult, &out.S2iBuildResult + *out = new(S2iBuildResult) + (*in).DeepCopyInto(*out) + } + if in.S2iBuildSource != nil { + in, out := &in.S2iBuildSource, &out.S2iBuildSource + *out = new(S2iBuildSource) + **out = **in + } return } diff --git a/vendor/github.com/mailru/easyjson/jlexer/lexer.go b/vendor/github.com/mailru/easyjson/jlexer/lexer.go index ddd376b84..51f056615 100644 --- a/vendor/github.com/mailru/easyjson/jlexer/lexer.go +++ b/vendor/github.com/mailru/easyjson/jlexer/lexer.go @@ -521,12 +521,11 @@ func (r *Lexer) SkipRecursive() { r.scanToken() var start, end byte - switch r.token.delimValue { - case '{': + if r.token.delimValue == '{' { start, end = '{', '}' - case '[': + } else if r.token.delimValue == '[' { start, end = '[', ']' - default: + } else { r.consume() return } @@ -1152,7 +1151,7 @@ func (r *Lexer) Interface() interface{} { } else if r.token.delimValue == '[' { r.consume() - ret := []interface{}{} + var ret []interface{} for !r.IsDelim(']') { ret = append(ret, r.Interface()) r.WantComma() diff --git a/vendor/github.com/modern-go/reflect2/type_map.go b/vendor/github.com/modern-go/reflect2/type_map.go index 3acfb5580..6d489112f 100644 --- a/vendor/github.com/modern-go/reflect2/type_map.go +++ b/vendor/github.com/modern-go/reflect2/type_map.go @@ -4,7 +4,6 @@ import ( "reflect" "runtime" "strings" - "sync" "unsafe" ) @@ -16,17 +15,10 @@ func typelinks1() [][]unsafe.Pointer //go:linkname typelinks2 reflect.typelinks func typelinks2() (sections []unsafe.Pointer, offset [][]int32) -// initOnce guards initialization of types and packages -var initOnce sync.Once - -var types map[string]reflect.Type -var packages map[string]map[string]reflect.Type - -// discoverTypes initializes types and packages -func discoverTypes() { - types = make(map[string]reflect.Type) - packages = make(map[string]map[string]reflect.Type) +var types = map[string]reflect.Type{} +var packages = map[string]map[string]reflect.Type{} +func init() { ver := runtime.Version() if ver == "go1.5" || strings.HasPrefix(ver, "go1.5.") { loadGo15Types() @@ -98,13 +90,11 @@ type emptyInterface struct { // TypeByName return the type by its name, just like Class.forName in java func TypeByName(typeName string) Type { - initOnce.Do(discoverTypes) return Type2(types[typeName]) } // TypeByPackageName return the type by its package and name func TypeByPackageName(pkgPath string, name string) Type { - initOnce.Do(discoverTypes) pkgTypes := packages[pkgPath] if pkgTypes == nil { return nil diff --git a/vendor/github.com/stretchr/objx/.codeclimate.yml b/vendor/github.com/stretchr/objx/.codeclimate.yml index 559fa399c..010d4ccd5 100644 --- a/vendor/github.com/stretchr/objx/.codeclimate.yml +++ b/vendor/github.com/stretchr/objx/.codeclimate.yml @@ -10,12 +10,4 @@ exclude_patterns: - ".github/" - "vendor/" - "codegen/" -- "*.yml" -- ".*.yml" -- "*.md" -- "Gopkg.*" - "doc.go" -- "type_specific_codegen_test.go" -- "type_specific_codegen.go" -- ".gitignore" -- "LICENSE" diff --git a/vendor/github.com/stretchr/objx/.travis.yml b/vendor/github.com/stretchr/objx/.travis.yml index cde6eb2af..a63efa59d 100644 --- a/vendor/github.com/stretchr/objx/.travis.yml +++ b/vendor/github.com/stretchr/objx/.travis.yml @@ -1,14 +1,8 @@ language: go go: - - "1.10.x" - - "1.11.x" - - "1.12.x" - - master - -matrix: - allow_failures: - - go: master -fast_finish: true + - 1.8 + - 1.9 + - tip env: global: @@ -20,11 +14,12 @@ before_script: - ./cc-test-reporter before-build install: - - curl -sL https://taskfile.dev/install.sh | sh +- go get github.com/go-task/task/cmd/task script: - - diff -u <(echo -n) <(./bin/task lint) - - ./bin/task test-coverage +- task dl-deps +- task lint +- task test-coverage after_script: - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT diff --git a/vendor/github.com/stretchr/objx/Gopkg.lock b/vendor/github.com/stretchr/objx/Gopkg.lock new file mode 100644 index 000000000..eebe342a9 --- /dev/null +++ b/vendor/github.com/stretchr/objx/Gopkg.lock @@ -0,0 +1,30 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + name = "github.com/davecgh/go-spew" + packages = ["spew"] + revision = "346938d642f2ec3594ed81d874461961cd0faa76" + version = "v1.1.0" + +[[projects]] + name = "github.com/pmezard/go-difflib" + packages = ["difflib"] + revision = "792786c7400a136282c1664665ae0a8db921c6c2" + version = "v1.0.0" + +[[projects]] + name = "github.com/stretchr/testify" + packages = [ + "assert", + "require" + ] + revision = "b91bfb9ebec76498946beb6af7c0230c7cc7ba6c" + version = "v1.2.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-digest = "2d160a7dea4ffd13c6c31dab40373822f9d78c73beba016d662bef8f7a998876" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/vendor/github.com/stretchr/objx/Gopkg.toml b/vendor/github.com/stretchr/objx/Gopkg.toml new file mode 100644 index 000000000..d70f1570b --- /dev/null +++ b/vendor/github.com/stretchr/objx/Gopkg.toml @@ -0,0 +1,8 @@ +[prune] + unused-packages = true + non-go = true + go-tests = true + +[[constraint]] + name = "github.com/stretchr/testify" + version = "~1.2.0" diff --git a/vendor/github.com/stretchr/objx/README.md b/vendor/github.com/stretchr/objx/README.md index 246660b21..be5750c94 100644 --- a/vendor/github.com/stretchr/objx/README.md +++ b/vendor/github.com/stretchr/objx/README.md @@ -74,7 +74,7 @@ To update Objx to the latest version, run: go get -u github.com/stretchr/objx ### Supported go versions -We support the lastest three major Go versions, which are 1.10, 1.11 and 1.12 at the moment. +We support the lastest two major Go versions, which are 1.8 and 1.9 at the moment. ## Contributing Please feel free to submit issues, fork the repository and send pull requests! diff --git a/vendor/github.com/stretchr/objx/Taskfile.yml b/vendor/github.com/stretchr/objx/Taskfile.yml index a749ac549..f8035641f 100644 --- a/vendor/github.com/stretchr/objx/Taskfile.yml +++ b/vendor/github.com/stretchr/objx/Taskfile.yml @@ -1,30 +1,32 @@ -version: '2' +default: + deps: [test] -env: - GOFLAGS: -mod=vendor +dl-deps: + desc: Downloads cli dependencies + cmds: + - go get -u github.com/golang/lint/golint + - go get -u github.com/golang/dep/cmd/dep -tasks: - default: - deps: [test] +update-deps: + desc: Updates dependencies + cmds: + - dep ensure + - dep ensure -update - lint: - desc: Checks code style - cmds: - - gofmt -d -s *.go - - go vet ./... - silent: true +lint: + desc: Runs golint + cmds: + - go fmt $(go list ./... | grep -v /vendor/) + - go vet $(go list ./... | grep -v /vendor/) + - golint $(ls *.go | grep -v "doc.go") + silent: true - lint-fix: - desc: Fixes code style - cmds: - - gofmt -w -s *.go +test: + desc: Runs go tests + cmds: + - go test -race . - test: - desc: Runs go tests - cmds: - - go test -race ./... - - test-coverage: - desc: Runs go tests and calucates test coverage - cmds: - - go test -race -coverprofile=c.out ./... +test-coverage: + desc: Runs go tests and calucates test coverage + cmds: + - go test -coverprofile=c.out . diff --git a/vendor/github.com/stretchr/objx/accessors.go b/vendor/github.com/stretchr/objx/accessors.go index 676316281..204356a22 100644 --- a/vendor/github.com/stretchr/objx/accessors.go +++ b/vendor/github.com/stretchr/objx/accessors.go @@ -6,17 +6,9 @@ import ( "strings" ) -const ( - // PathSeparator is the character used to separate the elements - // of the keypath. - // - // For example, `location.address.city` - PathSeparator string = "." - - // arrayAccesRegexString is the regex used to extract the array number - // from the access path - arrayAccesRegexString = `^(.+)\[([0-9]+)\]$` -) +// arrayAccesRegexString is the regex used to extract the array number +// from the access path +const arrayAccesRegexString = `^(.+)\[([0-9]+)\]$` // arrayAccesRegex is the compiled arrayAccesRegexString var arrayAccesRegex = regexp.MustCompile(arrayAccesRegexString) @@ -54,66 +46,103 @@ func (m Map) Set(selector string, value interface{}) Map { return m } -// getIndex returns the index, which is hold in s by two braches. -// It also returns s withour the index part, e.g. name[1] will return (1, name). -// If no index is found, -1 is returned -func getIndex(s string) (int, string) { - arrayMatches := arrayAccesRegex.FindStringSubmatch(s) - if len(arrayMatches) > 0 { - // Get the key into the map - selector := arrayMatches[1] - // Get the index into the array at the key - // We know this cannt fail because arrayMatches[2] is an int for sure - index, _ := strconv.Atoi(arrayMatches[2]) - return index, selector - } - return -1, s -} - // access accesses the object using the selector and performs the // appropriate action. -func access(current interface{}, selector string, value interface{}, isSet bool) interface{} { - selSegs := strings.SplitN(selector, PathSeparator, 2) - thisSel := selSegs[0] - index := -1 - - if strings.Contains(thisSel, "[") { - index, thisSel = getIndex(thisSel) - } - - if curMap, ok := current.(Map); ok { - current = map[string]interface{}(curMap) - } - // get the object in question - switch current.(type) { - case map[string]interface{}: - curMSI := current.(map[string]interface{}) - if len(selSegs) <= 1 && isSet { - curMSI[thisSel] = value - return nil - } - - _, ok := curMSI[thisSel].(map[string]interface{}) - if (curMSI[thisSel] == nil || !ok) && index == -1 && isSet { - curMSI[thisSel] = map[string]interface{}{} - } - - current = curMSI[thisSel] - default: - current = nil - } - // do we need to access the item of an array? - if index > -1 { +func access(current, selector, value interface{}, isSet bool) interface{} { + switch selector.(type) { + case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64: if array, ok := current.([]interface{}); ok { - if index < len(array) { - current = array[index] - } else { - current = nil + index := intFromInterface(selector) + if index >= len(array) { + return nil + } + return array[index] + } + return nil + + case string: + selStr := selector.(string) + selSegs := strings.SplitN(selStr, PathSeparator, 2) + thisSel := selSegs[0] + index := -1 + var err error + + if strings.Contains(thisSel, "[") { + arrayMatches := arrayAccesRegex.FindStringSubmatch(thisSel) + if len(arrayMatches) > 0 { + // Get the key into the map + thisSel = arrayMatches[1] + + // Get the index into the array at the key + index, err = strconv.Atoi(arrayMatches[2]) + + if err != nil { + // This should never happen. If it does, something has gone + // seriously wrong. Panic. + panic("objx: Array index is not an integer. Must use array[int].") + } } } - } - if len(selSegs) > 1 { - current = access(current, selSegs[1], value, isSet) + if curMap, ok := current.(Map); ok { + current = map[string]interface{}(curMap) + } + // get the object in question + switch current.(type) { + case map[string]interface{}: + curMSI := current.(map[string]interface{}) + if len(selSegs) <= 1 && isSet { + curMSI[thisSel] = value + return nil + } + current = curMSI[thisSel] + default: + current = nil + } + // do we need to access the item of an array? + if index > -1 { + if array, ok := current.([]interface{}); ok { + if index < len(array) { + current = array[index] + } else { + current = nil + } + } + } + if len(selSegs) > 1 { + current = access(current, selSegs[1], value, isSet) + } } return current } + +// intFromInterface converts an interface object to the largest +// representation of an unsigned integer using a type switch and +// assertions +func intFromInterface(selector interface{}) int { + var value int + switch selector.(type) { + case int: + value = selector.(int) + case int8: + value = int(selector.(int8)) + case int16: + value = int(selector.(int16)) + case int32: + value = int(selector.(int32)) + case int64: + value = int(selector.(int64)) + case uint: + value = int(selector.(uint)) + case uint8: + value = int(selector.(uint8)) + case uint16: + value = int(selector.(uint16)) + case uint32: + value = int(selector.(uint32)) + case uint64: + value = int(selector.(uint64)) + default: + return 0 + } + return value +} diff --git a/vendor/github.com/stretchr/objx/constants.go b/vendor/github.com/stretchr/objx/constants.go new file mode 100644 index 000000000..f9eb42a25 --- /dev/null +++ b/vendor/github.com/stretchr/objx/constants.go @@ -0,0 +1,13 @@ +package objx + +const ( + // PathSeparator is the character used to separate the elements + // of the keypath. + // + // For example, `location.address.city` + PathSeparator string = "." + + // SignatureSeparator is the character that is used to + // separate the Base64 string from the security signature. + SignatureSeparator = "_" +) diff --git a/vendor/github.com/stretchr/objx/conversions.go b/vendor/github.com/stretchr/objx/conversions.go index 080aa46e4..5e020f310 100644 --- a/vendor/github.com/stretchr/objx/conversions.go +++ b/vendor/github.com/stretchr/objx/conversions.go @@ -7,51 +7,11 @@ import ( "errors" "fmt" "net/url" - "strconv" ) -// SignatureSeparator is the character that is used to -// separate the Base64 string from the security signature. -const SignatureSeparator = "_" - -// URLValuesSliceKeySuffix is the character that is used to -// specify a suffic for slices parsed by URLValues. -// If the suffix is set to "[i]", then the index of the slice -// is used in place of i -// Ex: Suffix "[]" would have the form a[]=b&a[]=c -// OR Suffix "[i]" would have the form a[0]=b&a[1]=c -// OR Suffix "" would have the form a=b&a=c -var urlValuesSliceKeySuffix = "[]" - -const ( - URLValuesSliceKeySuffixEmpty = "" - URLValuesSliceKeySuffixArray = "[]" - URLValuesSliceKeySuffixIndex = "[i]" -) - -// SetURLValuesSliceKeySuffix sets the character that is used to -// specify a suffic for slices parsed by URLValues. -// If the suffix is set to "[i]", then the index of the slice -// is used in place of i -// Ex: Suffix "[]" would have the form a[]=b&a[]=c -// OR Suffix "[i]" would have the form a[0]=b&a[1]=c -// OR Suffix "" would have the form a=b&a=c -func SetURLValuesSliceKeySuffix(s string) error { - if s == URLValuesSliceKeySuffixEmpty || s == URLValuesSliceKeySuffixArray || s == URLValuesSliceKeySuffixIndex { - urlValuesSliceKeySuffix = s - return nil - } - - return errors.New("objx: Invalid URLValuesSliceKeySuffix provided.") -} - // JSON converts the contained object to a JSON string // representation func (m Map) JSON() (string, error) { - for k, v := range m { - m[k] = cleanUp(v) - } - result, err := json.Marshal(m) if err != nil { err = errors.New("objx: JSON encode failed with: " + err.Error()) @@ -59,63 +19,6 @@ func (m Map) JSON() (string, error) { return string(result), err } -func cleanUpInterfaceArray(in []interface{}) []interface{} { - result := make([]interface{}, len(in)) - for i, v := range in { - result[i] = cleanUp(v) - } - return result -} - -func cleanUpInterfaceMap(in map[interface{}]interface{}) Map { - result := Map{} - for k, v := range in { - result[fmt.Sprintf("%v", k)] = cleanUp(v) - } - return result -} - -func cleanUpStringMap(in map[string]interface{}) Map { - result := Map{} - for k, v := range in { - result[k] = cleanUp(v) - } - return result -} - -func cleanUpMSIArray(in []map[string]interface{}) []Map { - result := make([]Map, len(in)) - for i, v := range in { - result[i] = cleanUpStringMap(v) - } - return result -} - -func cleanUpMapArray(in []Map) []Map { - result := make([]Map, len(in)) - for i, v := range in { - result[i] = cleanUpStringMap(v) - } - return result -} - -func cleanUp(v interface{}) interface{} { - switch v := v.(type) { - case []interface{}: - return cleanUpInterfaceArray(v) - case []map[string]interface{}: - return cleanUpMSIArray(v) - case map[interface{}]interface{}: - return cleanUpInterfaceMap(v) - case Map: - return cleanUpStringMap(v) - case []Map: - return cleanUpMapArray(v) - default: - return v - } -} - // MustJSON converts the contained object to a JSON string // representation and panics if there is an error func (m Map) MustJSON() string { @@ -137,7 +40,10 @@ func (m Map) Base64() (string, error) { } encoder := base64.NewEncoder(base64.StdEncoding, &buf) - _, _ = encoder.Write([]byte(jsonData)) + _, err = encoder.Write([]byte(jsonData)) + if err != nil { + return "", err + } _ = encoder.Close() return buf.String(), nil @@ -187,91 +93,13 @@ func (m Map) MustSignedBase64(key string) string { // function requires that the wrapped object be a map[string]interface{} func (m Map) URLValues() url.Values { vals := make(url.Values) - - m.parseURLValues(m, vals, "") - + for k, v := range m { + //TODO: can this be done without sprintf? + vals.Set(k, fmt.Sprintf("%v", v)) + } return vals } -func (m Map) parseURLValues(queryMap Map, vals url.Values, key string) { - useSliceIndex := false - if urlValuesSliceKeySuffix == "[i]" { - useSliceIndex = true - } - - for k, v := range queryMap { - val := &Value{data: v} - switch { - case val.IsObjxMap(): - if key == "" { - m.parseURLValues(val.ObjxMap(), vals, k) - } else { - m.parseURLValues(val.ObjxMap(), vals, key+"["+k+"]") - } - case val.IsObjxMapSlice(): - sliceKey := k - if key != "" { - sliceKey = key + "[" + k + "]" - } - - if useSliceIndex { - for i, sv := range val.MustObjxMapSlice() { - sk := sliceKey + "[" + strconv.FormatInt(int64(i), 10) + "]" - m.parseURLValues(sv, vals, sk) - } - } else { - sliceKey = sliceKey + urlValuesSliceKeySuffix - for _, sv := range val.MustObjxMapSlice() { - m.parseURLValues(sv, vals, sliceKey) - } - } - case val.IsMSISlice(): - sliceKey := k - if key != "" { - sliceKey = key + "[" + k + "]" - } - - if useSliceIndex { - for i, sv := range val.MustMSISlice() { - sk := sliceKey + "[" + strconv.FormatInt(int64(i), 10) + "]" - m.parseURLValues(New(sv), vals, sk) - } - } else { - sliceKey = sliceKey + urlValuesSliceKeySuffix - for _, sv := range val.MustMSISlice() { - m.parseURLValues(New(sv), vals, sliceKey) - } - } - case val.IsStrSlice(), val.IsBoolSlice(), - val.IsFloat32Slice(), val.IsFloat64Slice(), - val.IsIntSlice(), val.IsInt8Slice(), val.IsInt16Slice(), val.IsInt32Slice(), val.IsInt64Slice(), - val.IsUintSlice(), val.IsUint8Slice(), val.IsUint16Slice(), val.IsUint32Slice(), val.IsUint64Slice(): - - sliceKey := k - if key != "" { - sliceKey = key + "[" + k + "]" - } - - if useSliceIndex { - for i, sv := range val.StringSlice() { - sk := sliceKey + "[" + strconv.FormatInt(int64(i), 10) + "]" - vals.Set(sk, sv) - } - } else { - sliceKey = sliceKey + urlValuesSliceKeySuffix - vals[sliceKey] = val.StringSlice() - } - - default: - if key == "" { - vals.Set(k, val.String()) - } else { - vals.Set(key+"["+k+"]", val.String()) - } - } - } -} - // URLQuery gets an encoded URL query representing the given // Obj. This function requires that the wrapped object be a // map[string]interface{} diff --git a/vendor/github.com/stretchr/objx/go.mod b/vendor/github.com/stretchr/objx/go.mod deleted file mode 100644 index 31ec5a7d9..000000000 --- a/vendor/github.com/stretchr/objx/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module github.com/stretchr/objx - -go 1.12 - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/stretchr/testify v1.3.0 -) diff --git a/vendor/github.com/stretchr/objx/go.sum b/vendor/github.com/stretchr/objx/go.sum deleted file mode 100644 index 4f8984150..000000000 --- a/vendor/github.com/stretchr/objx/go.sum +++ /dev/null @@ -1,8 +0,0 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= diff --git a/vendor/github.com/stretchr/objx/map.go b/vendor/github.com/stretchr/objx/map.go index 95149c06a..406bc8926 100644 --- a/vendor/github.com/stretchr/objx/map.go +++ b/vendor/github.com/stretchr/objx/map.go @@ -97,50 +97,12 @@ func MustFromJSON(jsonString string) Map { // // Returns an error if the JSON is invalid. func FromJSON(jsonString string) (Map, error) { - var m Map - err := json.Unmarshal([]byte(jsonString), &m) + var data interface{} + err := json.Unmarshal([]byte(jsonString), &data) if err != nil { return Nil, err } - m.tryConvertFloat64() - return m, nil -} - -func (m Map) tryConvertFloat64() { - for k, v := range m { - switch v.(type) { - case float64: - f := v.(float64) - if float64(int(f)) == f { - m[k] = int(f) - } - case map[string]interface{}: - t := New(v) - t.tryConvertFloat64() - m[k] = t - case []interface{}: - m[k] = tryConvertFloat64InSlice(v.([]interface{})) - } - } -} - -func tryConvertFloat64InSlice(s []interface{}) []interface{} { - for k, v := range s { - switch v.(type) { - case float64: - f := v.(float64) - if float64(int(f)) == f { - s[k] = int(f) - } - case map[string]interface{}: - t := New(v) - t.tryConvertFloat64() - s[k] = t - case []interface{}: - s[k] = tryConvertFloat64InSlice(v.([]interface{})) - } - } - return s + return New(data), nil } // FromBase64 creates a new Obj containing the data specified diff --git a/vendor/github.com/stretchr/objx/type_specific.go b/vendor/github.com/stretchr/objx/type_specific.go deleted file mode 100644 index 80f88d9fa..000000000 --- a/vendor/github.com/stretchr/objx/type_specific.go +++ /dev/null @@ -1,346 +0,0 @@ -package objx - -/* - MSI (map[string]interface{} and []map[string]interface{}) -*/ - -// MSI gets the value as a map[string]interface{}, returns the optionalDefault -// value or a system default object if the value is the wrong type. -func (v *Value) MSI(optionalDefault ...map[string]interface{}) map[string]interface{} { - if s, ok := v.data.(map[string]interface{}); ok { - return s - } - if s, ok := v.data.(Map); ok { - return map[string]interface{}(s) - } - if len(optionalDefault) == 1 { - return optionalDefault[0] - } - return nil -} - -// MustMSI gets the value as a map[string]interface{}. -// -// Panics if the object is not a map[string]interface{}. -func (v *Value) MustMSI() map[string]interface{} { - if s, ok := v.data.(Map); ok { - return map[string]interface{}(s) - } - return v.data.(map[string]interface{}) -} - -// MSISlice gets the value as a []map[string]interface{}, returns the optionalDefault -// value or nil if the value is not a []map[string]interface{}. -func (v *Value) MSISlice(optionalDefault ...[]map[string]interface{}) []map[string]interface{} { - if s, ok := v.data.([]map[string]interface{}); ok { - return s - } - - s := v.ObjxMapSlice() - if s == nil { - if len(optionalDefault) == 1 { - return optionalDefault[0] - } - return nil - } - - result := make([]map[string]interface{}, len(s)) - for i := range s { - result[i] = s[i].Value().MSI() - } - return result -} - -// MustMSISlice gets the value as a []map[string]interface{}. -// -// Panics if the object is not a []map[string]interface{}. -func (v *Value) MustMSISlice() []map[string]interface{} { - if s := v.MSISlice(); s != nil { - return s - } - - return v.data.([]map[string]interface{}) -} - -// IsMSI gets whether the object contained is a map[string]interface{} or not. -func (v *Value) IsMSI() bool { - _, ok := v.data.(map[string]interface{}) - if !ok { - _, ok = v.data.(Map) - } - return ok -} - -// IsMSISlice gets whether the object contained is a []map[string]interface{} or not. -func (v *Value) IsMSISlice() bool { - _, ok := v.data.([]map[string]interface{}) - if !ok { - _, ok = v.data.([]Map) - if !ok { - s, ok := v.data.([]interface{}) - if ok { - for i := range s { - switch s[i].(type) { - case Map: - case map[string]interface{}: - default: - return false - } - } - return true - } - } - } - return ok -} - -// EachMSI calls the specified callback for each object -// in the []map[string]interface{}. -// -// Panics if the object is the wrong type. -func (v *Value) EachMSI(callback func(int, map[string]interface{}) bool) *Value { - for index, val := range v.MustMSISlice() { - carryon := callback(index, val) - if !carryon { - break - } - } - return v -} - -// WhereMSI uses the specified decider function to select items -// from the []map[string]interface{}. The object contained in the result will contain -// only the selected items. -func (v *Value) WhereMSI(decider func(int, map[string]interface{}) bool) *Value { - var selected []map[string]interface{} - v.EachMSI(func(index int, val map[string]interface{}) bool { - shouldSelect := decider(index, val) - if !shouldSelect { - selected = append(selected, val) - } - return true - }) - return &Value{data: selected} -} - -// GroupMSI uses the specified grouper function to group the items -// keyed by the return of the grouper. The object contained in the -// result will contain a map[string][]map[string]interface{}. -func (v *Value) GroupMSI(grouper func(int, map[string]interface{}) string) *Value { - groups := make(map[string][]map[string]interface{}) - v.EachMSI(func(index int, val map[string]interface{}) bool { - group := grouper(index, val) - if _, ok := groups[group]; !ok { - groups[group] = make([]map[string]interface{}, 0) - } - groups[group] = append(groups[group], val) - return true - }) - return &Value{data: groups} -} - -// ReplaceMSI uses the specified function to replace each map[string]interface{}s -// by iterating each item. The data in the returned result will be a -// []map[string]interface{} containing the replaced items. -func (v *Value) ReplaceMSI(replacer func(int, map[string]interface{}) map[string]interface{}) *Value { - arr := v.MustMSISlice() - replaced := make([]map[string]interface{}, len(arr)) - v.EachMSI(func(index int, val map[string]interface{}) bool { - replaced[index] = replacer(index, val) - return true - }) - return &Value{data: replaced} -} - -// CollectMSI uses the specified collector function to collect a value -// for each of the map[string]interface{}s in the slice. The data returned will be a -// []interface{}. -func (v *Value) CollectMSI(collector func(int, map[string]interface{}) interface{}) *Value { - arr := v.MustMSISlice() - collected := make([]interface{}, len(arr)) - v.EachMSI(func(index int, val map[string]interface{}) bool { - collected[index] = collector(index, val) - return true - }) - return &Value{data: collected} -} - -/* - ObjxMap ((Map) and [](Map)) -*/ - -// ObjxMap gets the value as a (Map), returns the optionalDefault -// value or a system default object if the value is the wrong type. -func (v *Value) ObjxMap(optionalDefault ...(Map)) Map { - if s, ok := v.data.((Map)); ok { - return s - } - if s, ok := v.data.(map[string]interface{}); ok { - return s - } - if len(optionalDefault) == 1 { - return optionalDefault[0] - } - return New(nil) -} - -// MustObjxMap gets the value as a (Map). -// -// Panics if the object is not a (Map). -func (v *Value) MustObjxMap() Map { - if s, ok := v.data.(map[string]interface{}); ok { - return s - } - return v.data.((Map)) -} - -// ObjxMapSlice gets the value as a [](Map), returns the optionalDefault -// value or nil if the value is not a [](Map). -func (v *Value) ObjxMapSlice(optionalDefault ...[](Map)) [](Map) { - if s, ok := v.data.([]Map); ok { - return s - } - - if s, ok := v.data.([]map[string]interface{}); ok { - result := make([]Map, len(s)) - for i := range s { - result[i] = s[i] - } - return result - } - - s, ok := v.data.([]interface{}) - if !ok { - if len(optionalDefault) == 1 { - return optionalDefault[0] - } - return nil - } - - result := make([]Map, len(s)) - for i := range s { - switch s[i].(type) { - case Map: - result[i] = s[i].(Map) - case map[string]interface{}: - result[i] = New(s[i]) - default: - return nil - } - } - return result -} - -// MustObjxMapSlice gets the value as a [](Map). -// -// Panics if the object is not a [](Map). -func (v *Value) MustObjxMapSlice() [](Map) { - if s := v.ObjxMapSlice(); s != nil { - return s - } - return v.data.([](Map)) -} - -// IsObjxMap gets whether the object contained is a (Map) or not. -func (v *Value) IsObjxMap() bool { - _, ok := v.data.((Map)) - if !ok { - _, ok = v.data.(map[string]interface{}) - } - return ok -} - -// IsObjxMapSlice gets whether the object contained is a [](Map) or not. -func (v *Value) IsObjxMapSlice() bool { - _, ok := v.data.([](Map)) - if !ok { - _, ok = v.data.([]map[string]interface{}) - if !ok { - s, ok := v.data.([]interface{}) - if ok { - for i := range s { - switch s[i].(type) { - case Map: - case map[string]interface{}: - default: - return false - } - } - return true - } - } - } - - return ok -} - -// EachObjxMap calls the specified callback for each object -// in the [](Map). -// -// Panics if the object is the wrong type. -func (v *Value) EachObjxMap(callback func(int, Map) bool) *Value { - for index, val := range v.MustObjxMapSlice() { - carryon := callback(index, val) - if !carryon { - break - } - } - return v -} - -// WhereObjxMap uses the specified decider function to select items -// from the [](Map). The object contained in the result will contain -// only the selected items. -func (v *Value) WhereObjxMap(decider func(int, Map) bool) *Value { - var selected [](Map) - v.EachObjxMap(func(index int, val Map) bool { - shouldSelect := decider(index, val) - if !shouldSelect { - selected = append(selected, val) - } - return true - }) - return &Value{data: selected} -} - -// GroupObjxMap uses the specified grouper function to group the items -// keyed by the return of the grouper. The object contained in the -// result will contain a map[string][](Map). -func (v *Value) GroupObjxMap(grouper func(int, Map) string) *Value { - groups := make(map[string][](Map)) - v.EachObjxMap(func(index int, val Map) bool { - group := grouper(index, val) - if _, ok := groups[group]; !ok { - groups[group] = make([](Map), 0) - } - groups[group] = append(groups[group], val) - return true - }) - return &Value{data: groups} -} - -// ReplaceObjxMap uses the specified function to replace each (Map)s -// by iterating each item. The data in the returned result will be a -// [](Map) containing the replaced items. -func (v *Value) ReplaceObjxMap(replacer func(int, Map) Map) *Value { - arr := v.MustObjxMapSlice() - replaced := make([](Map), len(arr)) - v.EachObjxMap(func(index int, val Map) bool { - replaced[index] = replacer(index, val) - return true - }) - return &Value{data: replaced} -} - -// CollectObjxMap uses the specified collector function to collect a value -// for each of the (Map)s in the slice. The data returned will be a -// []interface{}. -func (v *Value) CollectObjxMap(collector func(int, Map) interface{}) *Value { - arr := v.MustObjxMapSlice() - collected := make([]interface{}, len(arr)) - v.EachObjxMap(func(index int, val Map) bool { - collected[index] = collector(index, val) - return true - }) - return &Value{data: collected} -} diff --git a/vendor/github.com/stretchr/objx/type_specific_codegen.go b/vendor/github.com/stretchr/objx/type_specific_codegen.go index 9859b407f..202a91f8c 100644 --- a/vendor/github.com/stretchr/objx/type_specific_codegen.go +++ b/vendor/github.com/stretchr/objx/type_specific_codegen.go @@ -1,7 +1,7 @@ package objx /* - Inter (interface{} and []interface{}) + Inter (interface{} and []interface{}) */ // Inter gets the value as a interface{}, returns the optionalDefault @@ -126,7 +126,257 @@ func (v *Value) CollectInter(collector func(int, interface{}) interface{}) *Valu } /* - Bool (bool and []bool) + MSI (map[string]interface{} and []map[string]interface{}) +*/ + +// MSI gets the value as a map[string]interface{}, returns the optionalDefault +// value or a system default object if the value is the wrong type. +func (v *Value) MSI(optionalDefault ...map[string]interface{}) map[string]interface{} { + if s, ok := v.data.(map[string]interface{}); ok { + return s + } + if len(optionalDefault) == 1 { + return optionalDefault[0] + } + return nil +} + +// MustMSI gets the value as a map[string]interface{}. +// +// Panics if the object is not a map[string]interface{}. +func (v *Value) MustMSI() map[string]interface{} { + return v.data.(map[string]interface{}) +} + +// MSISlice gets the value as a []map[string]interface{}, returns the optionalDefault +// value or nil if the value is not a []map[string]interface{}. +func (v *Value) MSISlice(optionalDefault ...[]map[string]interface{}) []map[string]interface{} { + if s, ok := v.data.([]map[string]interface{}); ok { + return s + } + if len(optionalDefault) == 1 { + return optionalDefault[0] + } + return nil +} + +// MustMSISlice gets the value as a []map[string]interface{}. +// +// Panics if the object is not a []map[string]interface{}. +func (v *Value) MustMSISlice() []map[string]interface{} { + return v.data.([]map[string]interface{}) +} + +// IsMSI gets whether the object contained is a map[string]interface{} or not. +func (v *Value) IsMSI() bool { + _, ok := v.data.(map[string]interface{}) + return ok +} + +// IsMSISlice gets whether the object contained is a []map[string]interface{} or not. +func (v *Value) IsMSISlice() bool { + _, ok := v.data.([]map[string]interface{}) + return ok +} + +// EachMSI calls the specified callback for each object +// in the []map[string]interface{}. +// +// Panics if the object is the wrong type. +func (v *Value) EachMSI(callback func(int, map[string]interface{}) bool) *Value { + for index, val := range v.MustMSISlice() { + carryon := callback(index, val) + if !carryon { + break + } + } + return v +} + +// WhereMSI uses the specified decider function to select items +// from the []map[string]interface{}. The object contained in the result will contain +// only the selected items. +func (v *Value) WhereMSI(decider func(int, map[string]interface{}) bool) *Value { + var selected []map[string]interface{} + v.EachMSI(func(index int, val map[string]interface{}) bool { + shouldSelect := decider(index, val) + if !shouldSelect { + selected = append(selected, val) + } + return true + }) + return &Value{data: selected} +} + +// GroupMSI uses the specified grouper function to group the items +// keyed by the return of the grouper. The object contained in the +// result will contain a map[string][]map[string]interface{}. +func (v *Value) GroupMSI(grouper func(int, map[string]interface{}) string) *Value { + groups := make(map[string][]map[string]interface{}) + v.EachMSI(func(index int, val map[string]interface{}) bool { + group := grouper(index, val) + if _, ok := groups[group]; !ok { + groups[group] = make([]map[string]interface{}, 0) + } + groups[group] = append(groups[group], val) + return true + }) + return &Value{data: groups} +} + +// ReplaceMSI uses the specified function to replace each map[string]interface{}s +// by iterating each item. The data in the returned result will be a +// []map[string]interface{} containing the replaced items. +func (v *Value) ReplaceMSI(replacer func(int, map[string]interface{}) map[string]interface{}) *Value { + arr := v.MustMSISlice() + replaced := make([]map[string]interface{}, len(arr)) + v.EachMSI(func(index int, val map[string]interface{}) bool { + replaced[index] = replacer(index, val) + return true + }) + return &Value{data: replaced} +} + +// CollectMSI uses the specified collector function to collect a value +// for each of the map[string]interface{}s in the slice. The data returned will be a +// []interface{}. +func (v *Value) CollectMSI(collector func(int, map[string]interface{}) interface{}) *Value { + arr := v.MustMSISlice() + collected := make([]interface{}, len(arr)) + v.EachMSI(func(index int, val map[string]interface{}) bool { + collected[index] = collector(index, val) + return true + }) + return &Value{data: collected} +} + +/* + ObjxMap ((Map) and [](Map)) +*/ + +// ObjxMap gets the value as a (Map), returns the optionalDefault +// value or a system default object if the value is the wrong type. +func (v *Value) ObjxMap(optionalDefault ...(Map)) Map { + if s, ok := v.data.((Map)); ok { + return s + } + if len(optionalDefault) == 1 { + return optionalDefault[0] + } + return New(nil) +} + +// MustObjxMap gets the value as a (Map). +// +// Panics if the object is not a (Map). +func (v *Value) MustObjxMap() Map { + return v.data.((Map)) +} + +// ObjxMapSlice gets the value as a [](Map), returns the optionalDefault +// value or nil if the value is not a [](Map). +func (v *Value) ObjxMapSlice(optionalDefault ...[](Map)) [](Map) { + if s, ok := v.data.([](Map)); ok { + return s + } + if len(optionalDefault) == 1 { + return optionalDefault[0] + } + return nil +} + +// MustObjxMapSlice gets the value as a [](Map). +// +// Panics if the object is not a [](Map). +func (v *Value) MustObjxMapSlice() [](Map) { + return v.data.([](Map)) +} + +// IsObjxMap gets whether the object contained is a (Map) or not. +func (v *Value) IsObjxMap() bool { + _, ok := v.data.((Map)) + return ok +} + +// IsObjxMapSlice gets whether the object contained is a [](Map) or not. +func (v *Value) IsObjxMapSlice() bool { + _, ok := v.data.([](Map)) + return ok +} + +// EachObjxMap calls the specified callback for each object +// in the [](Map). +// +// Panics if the object is the wrong type. +func (v *Value) EachObjxMap(callback func(int, Map) bool) *Value { + for index, val := range v.MustObjxMapSlice() { + carryon := callback(index, val) + if !carryon { + break + } + } + return v +} + +// WhereObjxMap uses the specified decider function to select items +// from the [](Map). The object contained in the result will contain +// only the selected items. +func (v *Value) WhereObjxMap(decider func(int, Map) bool) *Value { + var selected [](Map) + v.EachObjxMap(func(index int, val Map) bool { + shouldSelect := decider(index, val) + if !shouldSelect { + selected = append(selected, val) + } + return true + }) + return &Value{data: selected} +} + +// GroupObjxMap uses the specified grouper function to group the items +// keyed by the return of the grouper. The object contained in the +// result will contain a map[string][](Map). +func (v *Value) GroupObjxMap(grouper func(int, Map) string) *Value { + groups := make(map[string][](Map)) + v.EachObjxMap(func(index int, val Map) bool { + group := grouper(index, val) + if _, ok := groups[group]; !ok { + groups[group] = make([](Map), 0) + } + groups[group] = append(groups[group], val) + return true + }) + return &Value{data: groups} +} + +// ReplaceObjxMap uses the specified function to replace each (Map)s +// by iterating each item. The data in the returned result will be a +// [](Map) containing the replaced items. +func (v *Value) ReplaceObjxMap(replacer func(int, Map) Map) *Value { + arr := v.MustObjxMapSlice() + replaced := make([](Map), len(arr)) + v.EachObjxMap(func(index int, val Map) bool { + replaced[index] = replacer(index, val) + return true + }) + return &Value{data: replaced} +} + +// CollectObjxMap uses the specified collector function to collect a value +// for each of the (Map)s in the slice. The data returned will be a +// []interface{}. +func (v *Value) CollectObjxMap(collector func(int, Map) interface{}) *Value { + arr := v.MustObjxMapSlice() + collected := make([]interface{}, len(arr)) + v.EachObjxMap(func(index int, val Map) bool { + collected[index] = collector(index, val) + return true + }) + return &Value{data: collected} +} + +/* + Bool (bool and []bool) */ // Bool gets the value as a bool, returns the optionalDefault @@ -251,7 +501,7 @@ func (v *Value) CollectBool(collector func(int, bool) interface{}) *Value { } /* - Str (string and []string) + Str (string and []string) */ // Str gets the value as a string, returns the optionalDefault @@ -376,7 +626,7 @@ func (v *Value) CollectStr(collector func(int, string) interface{}) *Value { } /* - Int (int and []int) + Int (int and []int) */ // Int gets the value as a int, returns the optionalDefault @@ -501,7 +751,7 @@ func (v *Value) CollectInt(collector func(int, int) interface{}) *Value { } /* - Int8 (int8 and []int8) + Int8 (int8 and []int8) */ // Int8 gets the value as a int8, returns the optionalDefault @@ -626,7 +876,7 @@ func (v *Value) CollectInt8(collector func(int, int8) interface{}) *Value { } /* - Int16 (int16 and []int16) + Int16 (int16 and []int16) */ // Int16 gets the value as a int16, returns the optionalDefault @@ -751,7 +1001,7 @@ func (v *Value) CollectInt16(collector func(int, int16) interface{}) *Value { } /* - Int32 (int32 and []int32) + Int32 (int32 and []int32) */ // Int32 gets the value as a int32, returns the optionalDefault @@ -876,7 +1126,7 @@ func (v *Value) CollectInt32(collector func(int, int32) interface{}) *Value { } /* - Int64 (int64 and []int64) + Int64 (int64 and []int64) */ // Int64 gets the value as a int64, returns the optionalDefault @@ -1001,7 +1251,7 @@ func (v *Value) CollectInt64(collector func(int, int64) interface{}) *Value { } /* - Uint (uint and []uint) + Uint (uint and []uint) */ // Uint gets the value as a uint, returns the optionalDefault @@ -1126,7 +1376,7 @@ func (v *Value) CollectUint(collector func(int, uint) interface{}) *Value { } /* - Uint8 (uint8 and []uint8) + Uint8 (uint8 and []uint8) */ // Uint8 gets the value as a uint8, returns the optionalDefault @@ -1251,7 +1501,7 @@ func (v *Value) CollectUint8(collector func(int, uint8) interface{}) *Value { } /* - Uint16 (uint16 and []uint16) + Uint16 (uint16 and []uint16) */ // Uint16 gets the value as a uint16, returns the optionalDefault @@ -1376,7 +1626,7 @@ func (v *Value) CollectUint16(collector func(int, uint16) interface{}) *Value { } /* - Uint32 (uint32 and []uint32) + Uint32 (uint32 and []uint32) */ // Uint32 gets the value as a uint32, returns the optionalDefault @@ -1501,7 +1751,7 @@ func (v *Value) CollectUint32(collector func(int, uint32) interface{}) *Value { } /* - Uint64 (uint64 and []uint64) + Uint64 (uint64 and []uint64) */ // Uint64 gets the value as a uint64, returns the optionalDefault @@ -1626,7 +1876,7 @@ func (v *Value) CollectUint64(collector func(int, uint64) interface{}) *Value { } /* - Uintptr (uintptr and []uintptr) + Uintptr (uintptr and []uintptr) */ // Uintptr gets the value as a uintptr, returns the optionalDefault @@ -1751,7 +2001,7 @@ func (v *Value) CollectUintptr(collector func(int, uintptr) interface{}) *Value } /* - Float32 (float32 and []float32) + Float32 (float32 and []float32) */ // Float32 gets the value as a float32, returns the optionalDefault @@ -1876,7 +2126,7 @@ func (v *Value) CollectFloat32(collector func(int, float32) interface{}) *Value } /* - Float64 (float64 and []float64) + Float64 (float64 and []float64) */ // Float64 gets the value as a float64, returns the optionalDefault @@ -2001,7 +2251,7 @@ func (v *Value) CollectFloat64(collector func(int, float64) interface{}) *Value } /* - Complex64 (complex64 and []complex64) + Complex64 (complex64 and []complex64) */ // Complex64 gets the value as a complex64, returns the optionalDefault @@ -2126,7 +2376,7 @@ func (v *Value) CollectComplex64(collector func(int, complex64) interface{}) *Va } /* - Complex128 (complex128 and []complex128) + Complex128 (complex128 and []complex128) */ // Complex128 gets the value as a complex128, returns the optionalDefault diff --git a/vendor/github.com/stretchr/objx/value.go b/vendor/github.com/stretchr/objx/value.go index 4e5f9b77e..e4b4a1433 100644 --- a/vendor/github.com/stretchr/objx/value.go +++ b/vendor/github.com/stretchr/objx/value.go @@ -20,8 +20,6 @@ func (v *Value) Data() interface{} { // String returns the value always as a string func (v *Value) String() string { switch { - case v.IsNil(): - return "" case v.IsStr(): return v.Str() case v.IsBool(): @@ -53,107 +51,3 @@ func (v *Value) String() string { } return fmt.Sprintf("%#v", v.Data()) } - -// StringSlice returns the value always as a []string -func (v *Value) StringSlice(optionalDefault ...[]string) []string { - switch { - case v.IsStrSlice(): - return v.MustStrSlice() - case v.IsBoolSlice(): - slice := v.MustBoolSlice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatBool(iv) - } - return vals - case v.IsFloat32Slice(): - slice := v.MustFloat32Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatFloat(float64(iv), 'f', -1, 32) - } - return vals - case v.IsFloat64Slice(): - slice := v.MustFloat64Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatFloat(iv, 'f', -1, 64) - } - return vals - case v.IsIntSlice(): - slice := v.MustIntSlice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatInt(int64(iv), 10) - } - return vals - case v.IsInt8Slice(): - slice := v.MustInt8Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatInt(int64(iv), 10) - } - return vals - case v.IsInt16Slice(): - slice := v.MustInt16Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatInt(int64(iv), 10) - } - return vals - case v.IsInt32Slice(): - slice := v.MustInt32Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatInt(int64(iv), 10) - } - return vals - case v.IsInt64Slice(): - slice := v.MustInt64Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatInt(iv, 10) - } - return vals - case v.IsUintSlice(): - slice := v.MustUintSlice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatUint(uint64(iv), 10) - } - return vals - case v.IsUint8Slice(): - slice := v.MustUint8Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatUint(uint64(iv), 10) - } - return vals - case v.IsUint16Slice(): - slice := v.MustUint16Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatUint(uint64(iv), 10) - } - return vals - case v.IsUint32Slice(): - slice := v.MustUint32Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatUint(uint64(iv), 10) - } - return vals - case v.IsUint64Slice(): - slice := v.MustUint64Slice() - vals := make([]string, len(slice)) - for i, iv := range slice { - vals[i] = strconv.FormatUint(iv, 10) - } - return vals - } - if len(optionalDefault) == 1 { - return optionalDefault[0] - } - - return []string{} -} diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s index 9dd5d7a97..af76bbcc9 100644 --- a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s +++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s @@ -200,7 +200,7 @@ GLOBL ·andMask<>(SB), (NOPTR+RODATA), $240 #define polyMulStage1 MOVQ (0*8)(BP), AX; MOVQ AX, t2; MULQ acc0; MOVQ AX, t0; MOVQ DX, t1; MOVQ (0*8)(BP), AX; MULQ acc1; IMULQ acc2, t2; ADDQ AX, t1; ADCQ DX, t2 #define polyMulStage2 MOVQ (1*8)(BP), AX; MOVQ AX, t3; MULQ acc0; ADDQ AX, t1; ADCQ $0, DX; MOVQ DX, acc0; MOVQ (1*8)(BP), AX; MULQ acc1; ADDQ AX, t2; ADCQ $0, DX #define polyMulStage3 IMULQ acc2, t3; ADDQ acc0, t2; ADCQ DX, t3 -#define polyMulReduceStage MOVQ t0, acc0; MOVQ t1, acc1; MOVQ t2, acc2; ANDQ $3, acc2; MOVQ t2, t0; ANDQ $-4, t0; MOVQ t3, t1; SHRQ $2, t3, t2; SHRQ $2, t3; ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $0, acc2; ADDQ t2, acc0; ADCQ t3, acc1; ADCQ $0, acc2 +#define polyMulReduceStage MOVQ t0, acc0; MOVQ t1, acc1; MOVQ t2, acc2; ANDQ $3, acc2; MOVQ t2, t0; ANDQ $-4, t0; MOVQ t3, t1; SHRQ $2, t2:t3; SHRQ $2, t3; ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $0, acc2; ADDQ t2, acc0; ADCQ t3, acc1; ADCQ $0, acc2 #define polyMulStage1_AVX2 MOVQ (0*8)(BP), DX; MOVQ DX, t2; MULXQ acc0, t0, t1; IMULQ acc2, t2; MULXQ acc1, AX, DX; ADDQ AX, t1; ADCQ DX, t2 #define polyMulStage2_AVX2 MOVQ (1*8)(BP), DX; MULXQ acc0, acc0, AX; ADDQ acc0, t1; MULXQ acc1, acc1, t3; ADCQ acc1, t2; ADCQ $0, t3 @@ -248,7 +248,7 @@ hashADTail: ADDQ itr2, adp hashADTailLoop: - SHLQ $8, t0, t1 + SHLQ $8, t1:t0 SHLQ $8, t0 MOVB -1(adp), t2 XORQ t2, t0 diff --git a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s index e0ac30c70..9e9040b25 100644 --- a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s +++ b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s @@ -121,18 +121,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -236,18 +236,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -441,18 +441,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -591,18 +591,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -731,18 +731,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -846,18 +846,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -996,18 +996,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -1146,18 +1146,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX @@ -1332,18 +1332,18 @@ TEXT ·ladderstep(SB),0,$296-8 ADDQ AX,R12 ADCQ DX,R13 MOVQ $REDMASK51,DX - SHLQ $13,SI,CX + SHLQ $13,CX:SI ANDQ DX,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ DX,R8 ADDQ CX,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ DX,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ DX,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ DX,R14 ADDQ R13,R14 IMUL3Q $19,R15,CX diff --git a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s index 1f76d1a3f..5ce80a2e5 100644 --- a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s +++ b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s @@ -124,18 +124,18 @@ TEXT ·mul(SB),0,$16-24 ADDQ AX,R14 ADCQ DX,R15 MOVQ $REDMASK51,SI - SHLQ $13,R8,R9 + SHLQ $13,R9:R8 ANDQ SI,R8 - SHLQ $13,R10,R11 + SHLQ $13,R11:R10 ANDQ SI,R10 ADDQ R9,R10 - SHLQ $13,R12,R13 + SHLQ $13,R13:R12 ANDQ SI,R12 ADDQ R11,R12 - SHLQ $13,R14,R15 + SHLQ $13,R15:R14 ANDQ SI,R14 ADDQ R13,R14 - SHLQ $13,BX,BP + SHLQ $13,BP:BX ANDQ SI,BX ADDQ R15,BX IMUL3Q $19,BP,DX diff --git a/vendor/golang.org/x/crypto/curve25519/square_amd64.s b/vendor/golang.org/x/crypto/curve25519/square_amd64.s index 07511a45a..12f73734f 100644 --- a/vendor/golang.org/x/crypto/curve25519/square_amd64.s +++ b/vendor/golang.org/x/crypto/curve25519/square_amd64.s @@ -87,18 +87,18 @@ TEXT ·square(SB),7,$0-16 ADDQ AX,R13 ADCQ DX,R14 MOVQ $REDMASK51,SI - SHLQ $13,CX,R8 + SHLQ $13,R8:CX ANDQ SI,CX - SHLQ $13,R9,R10 + SHLQ $13,R10:R9 ANDQ SI,R9 ADDQ R8,R9 - SHLQ $13,R11,R12 + SHLQ $13,R12:R11 ANDQ SI,R11 ADDQ R10,R11 - SHLQ $13,R13,R14 + SHLQ $13,R14:R13 ANDQ SI,R13 ADDQ R12,R13 - SHLQ $13,R15,BX + SHLQ $13,BX:R15 ANDQ SI,R15 ADDQ R14,R15 IMUL3Q $19,BX,DX diff --git a/vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s b/vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s deleted file mode 100644 index cde3fc989..000000000 --- a/vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s +++ /dev/null @@ -1,668 +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. - -// Based on CRYPTOGAMS code with the following comment: -// # ==================================================================== -// # Written by Andy Polyakov for the OpenSSL -// # project. The module is, however, dual licensed under OpenSSL and -// # CRYPTOGAMS licenses depending on where you obtain it. For further -// # details see http://www.openssl.org/~appro/cryptogams/. -// # ==================================================================== - -// Original code can be found at the link below: -// https://github.com/dot-asm/cryptogams/commit/a60f5b50ed908e91e5c39ca79126a4a876d5d8ff - -// There are some differences between CRYPTOGAMS code and this one. The round -// loop for "_int" isn't the same as the original. Some adjustments were -// necessary because there are less vector registers available. For example, some -// X variables (r12, r13, r14, and r15) share the same register used by the -// counter. The original code uses ctr to name the counter. Here we use CNT -// because golang uses CTR as the counter register name. - -// +build ppc64le,!gccgo,!appengine - -#include "textflag.h" - -#define OUT R3 -#define INP R4 -#define LEN R5 -#define KEY R6 -#define CNT R7 - -#define TEMP R8 - -#define X0 R11 -#define X1 R12 -#define X2 R14 -#define X3 R15 -#define X4 R16 -#define X5 R17 -#define X6 R18 -#define X7 R19 -#define X8 R20 -#define X9 R21 -#define X10 R22 -#define X11 R23 -#define X12 R24 -#define X13 R25 -#define X14 R26 -#define X15 R27 - -#define CON0 X0 -#define CON1 X1 -#define CON2 X2 -#define CON3 X3 - -#define KEY0 X4 -#define KEY1 X5 -#define KEY2 X6 -#define KEY3 X7 -#define KEY4 X8 -#define KEY5 X9 -#define KEY6 X10 -#define KEY7 X11 - -#define CNT0 X12 -#define CNT1 X13 -#define CNT2 X14 -#define CNT3 X15 - -#define TMP0 R9 -#define TMP1 R10 -#define TMP2 R28 -#define TMP3 R29 - -#define CONSTS R8 - -#define A0 V0 -#define B0 V1 -#define C0 V2 -#define D0 V3 -#define A1 V4 -#define B1 V5 -#define C1 V6 -#define D1 V7 -#define A2 V8 -#define B2 V9 -#define C2 V10 -#define D2 V11 -#define T0 V12 -#define T1 V13 -#define T2 V14 - -#define K0 V15 -#define K1 V16 -#define K2 V17 -#define K3 V18 -#define K4 V19 -#define K5 V20 - -#define FOUR V21 -#define SIXTEEN V22 -#define TWENTY4 V23 -#define TWENTY V24 -#define TWELVE V25 -#define TWENTY5 V26 -#define SEVEN V27 - -#define INPPERM V28 -#define OUTPERM V29 -#define OUTMASK V30 - -#define DD0 V31 -#define DD1 SEVEN -#define DD2 T0 -#define DD3 T1 -#define DD4 T2 - -DATA ·consts+0x00(SB)/8, $0x3320646e61707865 -DATA ·consts+0x08(SB)/8, $0x6b20657479622d32 -DATA ·consts+0x10(SB)/8, $0x0000000000000001 -DATA ·consts+0x18(SB)/8, $0x0000000000000000 -DATA ·consts+0x20(SB)/8, $0x0000000000000004 -DATA ·consts+0x28(SB)/8, $0x0000000000000000 -DATA ·consts+0x30(SB)/8, $0x0a0b08090e0f0c0d -DATA ·consts+0x38(SB)/8, $0x0203000106070405 -DATA ·consts+0x40(SB)/8, $0x090a0b080d0e0f0c -DATA ·consts+0x48(SB)/8, $0x0102030005060704 -GLOBL ·consts(SB), RODATA, $80 - -//func chaCha20_ctr32_vmx(out, inp *byte, len int, key *[32]byte, counter *[16]byte) -TEXT ·chaCha20_ctr32_vmx(SB),NOSPLIT|NOFRAME,$0 - // Load the arguments inside the registers - MOVD out+0(FP), OUT - MOVD inp+8(FP), INP - MOVD len+16(FP), LEN - MOVD key+24(FP), KEY - MOVD counter+32(FP), CNT - - MOVD $·consts(SB), CONSTS // point to consts addr - - MOVD $16, X0 - MOVD $32, X1 - MOVD $48, X2 - MOVD $64, X3 - MOVD $31, X4 - MOVD $15, X5 - - // Load key - LVX (KEY)(R0), K1 - LVSR (KEY)(R0), T0 - LVX (KEY)(X0), K2 - LVX (KEY)(X4), DD0 - - // Load counter - LVX (CNT)(R0), K3 - LVSR (CNT)(R0), T1 - LVX (CNT)(X5), DD1 - - // Load constants - LVX (CONSTS)(R0), K0 - LVX (CONSTS)(X0), K5 - LVX (CONSTS)(X1), FOUR - LVX (CONSTS)(X2), SIXTEEN - LVX (CONSTS)(X3), TWENTY4 - - // Align key and counter - VPERM K2, K1, T0, K1 - VPERM DD0, K2, T0, K2 - VPERM DD1, K3, T1, K3 - - // Load counter to GPR - MOVWZ 0(CNT), CNT0 - MOVWZ 4(CNT), CNT1 - MOVWZ 8(CNT), CNT2 - MOVWZ 12(CNT), CNT3 - - // Adjust vectors for the initial state - VADDUWM K3, K5, K3 - VADDUWM K3, K5, K4 - VADDUWM K4, K5, K5 - - // Synthesized constants - VSPLTISW $-12, TWENTY - VSPLTISW $12, TWELVE - VSPLTISW $-7, TWENTY5 - - VXOR T0, T0, T0 - VSPLTISW $-1, OUTMASK - LVSR (INP)(R0), INPPERM - LVSL (OUT)(R0), OUTPERM - VPERM OUTMASK, T0, OUTPERM, OUTMASK - -loop_outer_vmx: - // Load constant - MOVD $0x61707865, CON0 - MOVD $0x3320646e, CON1 - MOVD $0x79622d32, CON2 - MOVD $0x6b206574, CON3 - - VOR K0, K0, A0 - VOR K0, K0, A1 - VOR K0, K0, A2 - VOR K1, K1, B0 - - MOVD $10, TEMP - - // Load key to GPR - MOVWZ 0(KEY), X4 - MOVWZ 4(KEY), X5 - MOVWZ 8(KEY), X6 - MOVWZ 12(KEY), X7 - VOR K1, K1, B1 - VOR K1, K1, B2 - MOVWZ 16(KEY), X8 - MOVWZ 0(CNT), X12 - MOVWZ 20(KEY), X9 - MOVWZ 4(CNT), X13 - VOR K2, K2, C0 - VOR K2, K2, C1 - MOVWZ 24(KEY), X10 - MOVWZ 8(CNT), X14 - VOR K2, K2, C2 - VOR K3, K3, D0 - MOVWZ 28(KEY), X11 - MOVWZ 12(CNT), X15 - VOR K4, K4, D1 - VOR K5, K5, D2 - - MOVD X4, TMP0 - MOVD X5, TMP1 - MOVD X6, TMP2 - MOVD X7, TMP3 - VSPLTISW $7, SEVEN - - MOVD TEMP, CTR - -loop_vmx: - // CRYPTOGAMS uses a macro to create a loop using perl. This isn't possible - // using assembly macros. Therefore, the macro expansion result was used - // in order to maintain the algorithm efficiency. - // This loop generates three keystream blocks using VMX instructions and, - // in parallel, one keystream block using scalar instructions. - ADD X4, X0, X0 - ADD X5, X1, X1 - VADDUWM A0, B0, A0 - VADDUWM A1, B1, A1 - ADD X6, X2, X2 - ADD X7, X3, X3 - VADDUWM A2, B2, A2 - VXOR D0, A0, D0 - XOR X0, X12, X12 - XOR X1, X13, X13 - VXOR D1, A1, D1 - VXOR D2, A2, D2 - XOR X2, X14, X14 - XOR X3, X15, X15 - VPERM D0, D0, SIXTEEN, D0 - VPERM D1, D1, SIXTEEN, D1 - ROTLW $16, X12, X12 - ROTLW $16, X13, X13 - VPERM D2, D2, SIXTEEN, D2 - VADDUWM C0, D0, C0 - ROTLW $16, X14, X14 - ROTLW $16, X15, X15 - VADDUWM C1, D1, C1 - VADDUWM C2, D2, C2 - ADD X12, X8, X8 - ADD X13, X9, X9 - VXOR B0, C0, T0 - VXOR B1, C1, T1 - ADD X14, X10, X10 - ADD X15, X11, X11 - VXOR B2, C2, T2 - VRLW T0, TWELVE, B0 - XOR X8, X4, X4 - XOR X9, X5, X5 - VRLW T1, TWELVE, B1 - VRLW T2, TWELVE, B2 - XOR X10, X6, X6 - XOR X11, X7, X7 - VADDUWM A0, B0, A0 - VADDUWM A1, B1, A1 - ROTLW $12, X4, X4 - ROTLW $12, X5, X5 - VADDUWM A2, B2, A2 - VXOR D0, A0, D0 - ROTLW $12, X6, X6 - ROTLW $12, X7, X7 - VXOR D1, A1, D1 - VXOR D2, A2, D2 - ADD X4, X0, X0 - ADD X5, X1, X1 - VPERM D0, D0, TWENTY4, D0 - VPERM D1, D1, TWENTY4, D1 - ADD X6, X2, X2 - ADD X7, X3, X3 - VPERM D2, D2, TWENTY4, D2 - VADDUWM C0, D0, C0 - XOR X0, X12, X12 - XOR X1, X13, X13 - VADDUWM C1, D1, C1 - VADDUWM C2, D2, C2 - XOR X2, X14, X14 - XOR X3, X15, X15 - VXOR B0, C0, T0 - VXOR B1, C1, T1 - ROTLW $8, X12, X12 - ROTLW $8, X13, X13 - VXOR B2, C2, T2 - VRLW T0, SEVEN, B0 - ROTLW $8, X14, X14 - ROTLW $8, X15, X15 - VRLW T1, SEVEN, B1 - VRLW T2, SEVEN, B2 - ADD X12, X8, X8 - ADD X13, X9, X9 - VSLDOI $8, C0, C0, C0 - VSLDOI $8, C1, C1, C1 - ADD X14, X10, X10 - ADD X15, X11, X11 - VSLDOI $8, C2, C2, C2 - VSLDOI $12, B0, B0, B0 - XOR X8, X4, X4 - XOR X9, X5, X5 - VSLDOI $12, B1, B1, B1 - VSLDOI $12, B2, B2, B2 - XOR X10, X6, X6 - XOR X11, X7, X7 - VSLDOI $4, D0, D0, D0 - VSLDOI $4, D1, D1, D1 - ROTLW $7, X4, X4 - ROTLW $7, X5, X5 - VSLDOI $4, D2, D2, D2 - VADDUWM A0, B0, A0 - ROTLW $7, X6, X6 - ROTLW $7, X7, X7 - VADDUWM A1, B1, A1 - VADDUWM A2, B2, A2 - ADD X5, X0, X0 - ADD X6, X1, X1 - VXOR D0, A0, D0 - VXOR D1, A1, D1 - ADD X7, X2, X2 - ADD X4, X3, X3 - VXOR D2, A2, D2 - VPERM D0, D0, SIXTEEN, D0 - XOR X0, X15, X15 - XOR X1, X12, X12 - VPERM D1, D1, SIXTEEN, D1 - VPERM D2, D2, SIXTEEN, D2 - XOR X2, X13, X13 - XOR X3, X14, X14 - VADDUWM C0, D0, C0 - VADDUWM C1, D1, C1 - ROTLW $16, X15, X15 - ROTLW $16, X12, X12 - VADDUWM C2, D2, C2 - VXOR B0, C0, T0 - ROTLW $16, X13, X13 - ROTLW $16, X14, X14 - VXOR B1, C1, T1 - VXOR B2, C2, T2 - ADD X15, X10, X10 - ADD X12, X11, X11 - VRLW T0, TWELVE, B0 - VRLW T1, TWELVE, B1 - ADD X13, X8, X8 - ADD X14, X9, X9 - VRLW T2, TWELVE, B2 - VADDUWM A0, B0, A0 - XOR X10, X5, X5 - XOR X11, X6, X6 - VADDUWM A1, B1, A1 - VADDUWM A2, B2, A2 - XOR X8, X7, X7 - XOR X9, X4, X4 - VXOR D0, A0, D0 - VXOR D1, A1, D1 - ROTLW $12, X5, X5 - ROTLW $12, X6, X6 - VXOR D2, A2, D2 - VPERM D0, D0, TWENTY4, D0 - ROTLW $12, X7, X7 - ROTLW $12, X4, X4 - VPERM D1, D1, TWENTY4, D1 - VPERM D2, D2, TWENTY4, D2 - ADD X5, X0, X0 - ADD X6, X1, X1 - VADDUWM C0, D0, C0 - VADDUWM C1, D1, C1 - ADD X7, X2, X2 - ADD X4, X3, X3 - VADDUWM C2, D2, C2 - VXOR B0, C0, T0 - XOR X0, X15, X15 - XOR X1, X12, X12 - VXOR B1, C1, T1 - VXOR B2, C2, T2 - XOR X2, X13, X13 - XOR X3, X14, X14 - VRLW T0, SEVEN, B0 - VRLW T1, SEVEN, B1 - ROTLW $8, X15, X15 - ROTLW $8, X12, X12 - VRLW T2, SEVEN, B2 - VSLDOI $8, C0, C0, C0 - ROTLW $8, X13, X13 - ROTLW $8, X14, X14 - VSLDOI $8, C1, C1, C1 - VSLDOI $8, C2, C2, C2 - ADD X15, X10, X10 - ADD X12, X11, X11 - VSLDOI $4, B0, B0, B0 - VSLDOI $4, B1, B1, B1 - ADD X13, X8, X8 - ADD X14, X9, X9 - VSLDOI $4, B2, B2, B2 - VSLDOI $12, D0, D0, D0 - XOR X10, X5, X5 - XOR X11, X6, X6 - VSLDOI $12, D1, D1, D1 - VSLDOI $12, D2, D2, D2 - XOR X8, X7, X7 - XOR X9, X4, X4 - ROTLW $7, X5, X5 - ROTLW $7, X6, X6 - ROTLW $7, X7, X7 - ROTLW $7, X4, X4 - BC 0x10, 0, loop_vmx - - SUB $256, LEN, LEN - - // Accumulate key block - ADD $0x61707865, X0, X0 - ADD $0x3320646e, X1, X1 - ADD $0x79622d32, X2, X2 - ADD $0x6b206574, X3, X3 - ADD TMP0, X4, X4 - ADD TMP1, X5, X5 - ADD TMP2, X6, X6 - ADD TMP3, X7, X7 - MOVWZ 16(KEY), TMP0 - MOVWZ 20(KEY), TMP1 - MOVWZ 24(KEY), TMP2 - MOVWZ 28(KEY), TMP3 - ADD TMP0, X8, X8 - ADD TMP1, X9, X9 - ADD TMP2, X10, X10 - ADD TMP3, X11, X11 - - MOVWZ 12(CNT), TMP0 - MOVWZ 8(CNT), TMP1 - MOVWZ 4(CNT), TMP2 - MOVWZ 0(CNT), TEMP - ADD TMP0, X15, X15 - ADD TMP1, X14, X14 - ADD TMP2, X13, X13 - ADD TEMP, X12, X12 - - // Accumulate key block - VADDUWM A0, K0, A0 - VADDUWM A1, K0, A1 - VADDUWM A2, K0, A2 - VADDUWM B0, K1, B0 - VADDUWM B1, K1, B1 - VADDUWM B2, K1, B2 - VADDUWM C0, K2, C0 - VADDUWM C1, K2, C1 - VADDUWM C2, K2, C2 - VADDUWM D0, K3, D0 - VADDUWM D1, K4, D1 - VADDUWM D2, K5, D2 - - // Increment counter - ADD $4, TEMP, TEMP - MOVW TEMP, 0(CNT) - - VADDUWM K3, FOUR, K3 - VADDUWM K4, FOUR, K4 - VADDUWM K5, FOUR, K5 - - // XOR the input slice (INP) with the keystream, which is stored in GPRs (X0-X3). - - // Load input (aligned or not) - MOVWZ 0(INP), TMP0 - MOVWZ 4(INP), TMP1 - MOVWZ 8(INP), TMP2 - MOVWZ 12(INP), TMP3 - - // XOR with input - XOR TMP0, X0, X0 - XOR TMP1, X1, X1 - XOR TMP2, X2, X2 - XOR TMP3, X3, X3 - MOVWZ 16(INP), TMP0 - MOVWZ 20(INP), TMP1 - MOVWZ 24(INP), TMP2 - MOVWZ 28(INP), TMP3 - XOR TMP0, X4, X4 - XOR TMP1, X5, X5 - XOR TMP2, X6, X6 - XOR TMP3, X7, X7 - MOVWZ 32(INP), TMP0 - MOVWZ 36(INP), TMP1 - MOVWZ 40(INP), TMP2 - MOVWZ 44(INP), TMP3 - XOR TMP0, X8, X8 - XOR TMP1, X9, X9 - XOR TMP2, X10, X10 - XOR TMP3, X11, X11 - MOVWZ 48(INP), TMP0 - MOVWZ 52(INP), TMP1 - MOVWZ 56(INP), TMP2 - MOVWZ 60(INP), TMP3 - XOR TMP0, X12, X12 - XOR TMP1, X13, X13 - XOR TMP2, X14, X14 - XOR TMP3, X15, X15 - - // Store output (aligned or not) - MOVW X0, 0(OUT) - MOVW X1, 4(OUT) - MOVW X2, 8(OUT) - MOVW X3, 12(OUT) - - ADD $64, INP, INP // INP points to the end of the slice for the alignment code below - - MOVW X4, 16(OUT) - MOVD $16, TMP0 - MOVW X5, 20(OUT) - MOVD $32, TMP1 - MOVW X6, 24(OUT) - MOVD $48, TMP2 - MOVW X7, 28(OUT) - MOVD $64, TMP3 - MOVW X8, 32(OUT) - MOVW X9, 36(OUT) - MOVW X10, 40(OUT) - MOVW X11, 44(OUT) - MOVW X12, 48(OUT) - MOVW X13, 52(OUT) - MOVW X14, 56(OUT) - MOVW X15, 60(OUT) - ADD $64, OUT, OUT - - // Load input - LVX (INP)(R0), DD0 - LVX (INP)(TMP0), DD1 - LVX (INP)(TMP1), DD2 - LVX (INP)(TMP2), DD3 - LVX (INP)(TMP3), DD4 - ADD $64, INP, INP - - VPERM DD1, DD0, INPPERM, DD0 // Align input - VPERM DD2, DD1, INPPERM, DD1 - VPERM DD3, DD2, INPPERM, DD2 - VPERM DD4, DD3, INPPERM, DD3 - VXOR A0, DD0, A0 // XOR with input - VXOR B0, DD1, B0 - LVX (INP)(TMP0), DD1 // Keep loading input - VXOR C0, DD2, C0 - LVX (INP)(TMP1), DD2 - VXOR D0, DD3, D0 - LVX (INP)(TMP2), DD3 - LVX (INP)(TMP3), DD0 - ADD $64, INP, INP - MOVD $63, TMP3 // 63 is not a typo - VPERM A0, A0, OUTPERM, A0 - VPERM B0, B0, OUTPERM, B0 - VPERM C0, C0, OUTPERM, C0 - VPERM D0, D0, OUTPERM, D0 - - VPERM DD1, DD4, INPPERM, DD4 // Align input - VPERM DD2, DD1, INPPERM, DD1 - VPERM DD3, DD2, INPPERM, DD2 - VPERM DD0, DD3, INPPERM, DD3 - VXOR A1, DD4, A1 - VXOR B1, DD1, B1 - LVX (INP)(TMP0), DD1 // Keep loading - VXOR C1, DD2, C1 - LVX (INP)(TMP1), DD2 - VXOR D1, DD3, D1 - LVX (INP)(TMP2), DD3 - - // Note that the LVX address is always rounded down to the nearest 16-byte - // boundary, and that it always points to at most 15 bytes beyond the end of - // the slice, so we cannot cross a page boundary. - LVX (INP)(TMP3), DD4 // Redundant in aligned case. - ADD $64, INP, INP - VPERM A1, A1, OUTPERM, A1 // Pre-misalign output - VPERM B1, B1, OUTPERM, B1 - VPERM C1, C1, OUTPERM, C1 - VPERM D1, D1, OUTPERM, D1 - - VPERM DD1, DD0, INPPERM, DD0 // Align Input - VPERM DD2, DD1, INPPERM, DD1 - VPERM DD3, DD2, INPPERM, DD2 - VPERM DD4, DD3, INPPERM, DD3 - VXOR A2, DD0, A2 - VXOR B2, DD1, B2 - VXOR C2, DD2, C2 - VXOR D2, DD3, D2 - VPERM A2, A2, OUTPERM, A2 - VPERM B2, B2, OUTPERM, B2 - VPERM C2, C2, OUTPERM, C2 - VPERM D2, D2, OUTPERM, D2 - - ANDCC $15, OUT, X1 // Is out aligned? - MOVD OUT, X0 - - VSEL A0, B0, OUTMASK, DD0 // Collect pre-misaligned output - VSEL B0, C0, OUTMASK, DD1 - VSEL C0, D0, OUTMASK, DD2 - VSEL D0, A1, OUTMASK, DD3 - VSEL A1, B1, OUTMASK, B0 - VSEL B1, C1, OUTMASK, C0 - VSEL C1, D1, OUTMASK, D0 - VSEL D1, A2, OUTMASK, A1 - VSEL A2, B2, OUTMASK, B1 - VSEL B2, C2, OUTMASK, C1 - VSEL C2, D2, OUTMASK, D1 - - STVX DD0, (OUT+TMP0) - STVX DD1, (OUT+TMP1) - STVX DD2, (OUT+TMP2) - ADD $64, OUT, OUT - STVX DD3, (OUT+R0) - STVX B0, (OUT+TMP0) - STVX C0, (OUT+TMP1) - STVX D0, (OUT+TMP2) - ADD $64, OUT, OUT - STVX A1, (OUT+R0) - STVX B1, (OUT+TMP0) - STVX C1, (OUT+TMP1) - STVX D1, (OUT+TMP2) - ADD $64, OUT, OUT - - BEQ aligned_vmx - - SUB X1, OUT, X2 // in misaligned case edges - MOVD $0, X3 // are written byte-by-byte - -unaligned_tail_vmx: - STVEBX D2, (X2+X3) - ADD $1, X3, X3 - CMPW X3, X1 - BNE unaligned_tail_vmx - SUB X1, X0, X2 - -unaligned_head_vmx: - STVEBX A0, (X2+X1) - CMPW X1, $15 - ADD $1, X1, X1 - BNE unaligned_head_vmx - - CMPU LEN, $255 // done with 256-byte block yet? - BGT loop_outer_vmx - - JMP done_vmx - -aligned_vmx: - STVX A0, (X0+R0) - CMPU LEN, $255 // done with 256-byte block yet? - BGT loop_outer_vmx - -done_vmx: - RET diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go index bf8beba67..47eac0314 100644 --- a/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go +++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !ppc64le,!arm64,!s390x arm64,!go1.11 gccgo appengine +// +build !arm64,!s390x arm64,!go1.11 gccgo appengine package chacha20 diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go deleted file mode 100644 index 638cb5e5d..000000000 --- a/vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go +++ /dev/null @@ -1,52 +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 ppc64le,!gccgo,!appengine - -package chacha20 - -import "encoding/binary" - -const ( - bufSize = 256 - haveAsm = true -) - -//go:noescape -func chaCha20_ctr32_vmx(out, inp *byte, len int, key *[8]uint32, counter *uint32) - -func (c *Cipher) xorKeyStreamAsm(dst, src []byte) { - if len(src) >= bufSize { - chaCha20_ctr32_vmx(&dst[0], &src[0], len(src)-len(src)%bufSize, &c.key, &c.counter) - } - if len(src)%bufSize != 0 { - chaCha20_ctr32_vmx(&c.buf[0], &c.buf[0], bufSize, &c.key, &c.counter) - start := len(src) - len(src)%bufSize - ts, td, tb := src[start:], dst[start:], c.buf[:] - // Unroll loop to XOR 32 bytes per iteration. - for i := 0; i < len(ts)-32; i += 32 { - td, tb = td[:len(ts)], tb[:len(ts)] // bounds check elimination - s0 := binary.LittleEndian.Uint64(ts[0:8]) - s1 := binary.LittleEndian.Uint64(ts[8:16]) - s2 := binary.LittleEndian.Uint64(ts[16:24]) - s3 := binary.LittleEndian.Uint64(ts[24:32]) - b0 := binary.LittleEndian.Uint64(tb[0:8]) - b1 := binary.LittleEndian.Uint64(tb[8:16]) - b2 := binary.LittleEndian.Uint64(tb[16:24]) - b3 := binary.LittleEndian.Uint64(tb[24:32]) - binary.LittleEndian.PutUint64(td[0:8], s0^b0) - binary.LittleEndian.PutUint64(td[8:16], s1^b1) - binary.LittleEndian.PutUint64(td[16:24], s2^b2) - binary.LittleEndian.PutUint64(td[24:32], s3^b3) - ts, td, tb = ts[32:], td[32:], tb[32:] - } - td, tb = td[:len(ts)], tb[:len(ts)] // bounds check elimination - for i, v := range ts { - td[i] = tb[i] ^ v - } - c.len = bufSize - (len(src) % bufSize) - - } - -} diff --git a/vendor/golang.org/x/crypto/openpgp/keys.go b/vendor/golang.org/x/crypto/openpgp/keys.go index faa2fb369..3e2518600 100644 --- a/vendor/golang.org/x/crypto/openpgp/keys.go +++ b/vendor/golang.org/x/crypto/openpgp/keys.go @@ -504,7 +504,7 @@ const defaultRSAKeyBits = 2048 // which may be empty but must not contain any of "()<>\x00". // If config is nil, sensible defaults will be used. func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) { - creationTime := config.Now() + currentTime := config.Now() bits := defaultRSAKeyBits if config != nil && config.RSABits != 0 { @@ -525,8 +525,8 @@ func NewEntity(name, comment, email string, config *packet.Config) (*Entity, err } e := &Entity{ - PrimaryKey: packet.NewRSAPublicKey(creationTime, &signingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(creationTime, signingPriv), + PrimaryKey: packet.NewRSAPublicKey(currentTime, &signingPriv.PublicKey), + PrivateKey: packet.NewRSAPrivateKey(currentTime, signingPriv), Identities: make(map[string]*Identity), } isPrimaryId := true @@ -534,7 +534,7 @@ func NewEntity(name, comment, email string, config *packet.Config) (*Entity, err Name: uid.Id, UserId: uid, SelfSignature: &packet.Signature{ - CreationTime: creationTime, + CreationTime: currentTime, SigType: packet.SigTypePositiveCert, PubKeyAlgo: packet.PubKeyAlgoRSA, Hash: config.Hash(), @@ -563,10 +563,10 @@ func NewEntity(name, comment, email string, config *packet.Config) (*Entity, err e.Subkeys = make([]Subkey, 1) e.Subkeys[0] = Subkey{ - PublicKey: packet.NewRSAPublicKey(creationTime, &encryptingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(creationTime, encryptingPriv), + PublicKey: packet.NewRSAPublicKey(currentTime, &encryptingPriv.PublicKey), + PrivateKey: packet.NewRSAPrivateKey(currentTime, encryptingPriv), Sig: &packet.Signature{ - CreationTime: creationTime, + CreationTime: currentTime, SigType: packet.SigTypeSubkeyBinding, PubKeyAlgo: packet.PubKeyAlgoRSA, Hash: config.Hash(), diff --git a/vendor/golang.org/x/crypto/openpgp/packet/private_key.go b/vendor/golang.org/x/crypto/openpgp/packet/private_key.go index 6f8ec0938..bd31cceac 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/private_key.go +++ b/vendor/golang.org/x/crypto/openpgp/packet/private_key.go @@ -36,49 +36,49 @@ type PrivateKey struct { iv []byte } -func NewRSAPrivateKey(creationTime time.Time, priv *rsa.PrivateKey) *PrivateKey { +func NewRSAPrivateKey(currentTime time.Time, priv *rsa.PrivateKey) *PrivateKey { pk := new(PrivateKey) - pk.PublicKey = *NewRSAPublicKey(creationTime, &priv.PublicKey) + pk.PublicKey = *NewRSAPublicKey(currentTime, &priv.PublicKey) pk.PrivateKey = priv return pk } -func NewDSAPrivateKey(creationTime time.Time, priv *dsa.PrivateKey) *PrivateKey { +func NewDSAPrivateKey(currentTime time.Time, priv *dsa.PrivateKey) *PrivateKey { pk := new(PrivateKey) - pk.PublicKey = *NewDSAPublicKey(creationTime, &priv.PublicKey) + pk.PublicKey = *NewDSAPublicKey(currentTime, &priv.PublicKey) pk.PrivateKey = priv return pk } -func NewElGamalPrivateKey(creationTime time.Time, priv *elgamal.PrivateKey) *PrivateKey { +func NewElGamalPrivateKey(currentTime time.Time, priv *elgamal.PrivateKey) *PrivateKey { pk := new(PrivateKey) - pk.PublicKey = *NewElGamalPublicKey(creationTime, &priv.PublicKey) + pk.PublicKey = *NewElGamalPublicKey(currentTime, &priv.PublicKey) pk.PrivateKey = priv return pk } -func NewECDSAPrivateKey(creationTime time.Time, priv *ecdsa.PrivateKey) *PrivateKey { +func NewECDSAPrivateKey(currentTime time.Time, priv *ecdsa.PrivateKey) *PrivateKey { pk := new(PrivateKey) - pk.PublicKey = *NewECDSAPublicKey(creationTime, &priv.PublicKey) + pk.PublicKey = *NewECDSAPublicKey(currentTime, &priv.PublicKey) pk.PrivateKey = priv return pk } // NewSignerPrivateKey creates a PrivateKey from a crypto.Signer that // implements RSA or ECDSA. -func NewSignerPrivateKey(creationTime time.Time, signer crypto.Signer) *PrivateKey { +func NewSignerPrivateKey(currentTime time.Time, signer crypto.Signer) *PrivateKey { pk := new(PrivateKey) // In general, the public Keys should be used as pointers. We still // type-switch on the values, for backwards-compatibility. switch pubkey := signer.Public().(type) { case *rsa.PublicKey: - pk.PublicKey = *NewRSAPublicKey(creationTime, pubkey) + pk.PublicKey = *NewRSAPublicKey(currentTime, pubkey) case rsa.PublicKey: - pk.PublicKey = *NewRSAPublicKey(creationTime, &pubkey) + pk.PublicKey = *NewRSAPublicKey(currentTime, &pubkey) case *ecdsa.PublicKey: - pk.PublicKey = *NewECDSAPublicKey(creationTime, pubkey) + pk.PublicKey = *NewECDSAPublicKey(currentTime, pubkey) case ecdsa.PublicKey: - pk.PublicKey = *NewECDSAPublicKey(creationTime, &pubkey) + pk.PublicKey = *NewECDSAPublicKey(currentTime, &pubkey) default: panic("openpgp: unknown crypto.Signer type in NewSignerPrivateKey") } diff --git a/vendor/golang.org/x/crypto/poly1305/mac_noasm.go b/vendor/golang.org/x/crypto/poly1305/mac_noasm.go index a8dd589ae..8387d2999 100644 --- a/vendor/golang.org/x/crypto/poly1305/mac_noasm.go +++ b/vendor/golang.org/x/crypto/poly1305/mac_noasm.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!ppc64le gccgo appengine +// +build !amd64 gccgo appengine package poly1305 diff --git a/vendor/golang.org/x/crypto/poly1305/sum_noasm.go b/vendor/golang.org/x/crypto/poly1305/sum_noasm.go index 8a9c2070b..fcdef46ab 100644 --- a/vendor/golang.org/x/crypto/poly1305/sum_noasm.go +++ b/vendor/golang.org/x/crypto/poly1305/sum_noasm.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build s390x,!go1.11 !arm,!amd64,!s390x,!ppc64le gccgo appengine nacl +// +build s390x,!go1.11 !arm,!amd64,!s390x gccgo appengine nacl package poly1305 diff --git a/vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go b/vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go deleted file mode 100644 index 2402b6371..000000000 --- a/vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go +++ /dev/null @@ -1,68 +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 ppc64le,!gccgo,!appengine - -package poly1305 - -//go:noescape -func initialize(state *[7]uint64, key *[32]byte) - -//go:noescape -func update(state *[7]uint64, msg []byte) - -//go:noescape -func finalize(tag *[TagSize]byte, state *[7]uint64) - -// Sum generates an authenticator for m using a one-time key and puts the -// 16-byte result into out. Authenticating two different messages with the same -// key allows an attacker to forge messages at will. -func Sum(out *[16]byte, m []byte, key *[32]byte) { - h := newMAC(key) - h.Write(m) - h.Sum(out) -} - -func newMAC(key *[32]byte) (h mac) { - initialize(&h.state, key) - return -} - -type mac struct { - state [7]uint64 // := uint64{ h0, h1, h2, r0, r1, pad0, pad1 } - - buffer [TagSize]byte - offset int -} - -func (h *mac) Write(p []byte) (n int, err error) { - n = len(p) - if h.offset > 0 { - remaining := TagSize - h.offset - if n < remaining { - h.offset += copy(h.buffer[h.offset:], p) - return n, nil - } - copy(h.buffer[h.offset:], p[:remaining]) - p = p[remaining:] - h.offset = 0 - update(&h.state, h.buffer[:]) - } - if nn := len(p) - (len(p) % TagSize); nn > 0 { - update(&h.state, p[:nn]) - p = p[nn:] - } - if len(p) > 0 { - h.offset += copy(h.buffer[h.offset:], p) - } - return n, nil -} - -func (h *mac) Sum(out *[16]byte) { - state := h.state - if h.offset > 0 { - update(&state, h.buffer[:h.offset]) - } - finalize(out, &state) -} diff --git a/vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s b/vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s deleted file mode 100644 index 55c7167ec..000000000 --- a/vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s +++ /dev/null @@ -1,247 +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 ppc64le,!gccgo,!appengine - -#include "textflag.h" - -// This was ported from the amd64 implementation. - -#define POLY1305_ADD(msg, h0, h1, h2, t0, t1, t2) \ - MOVD (msg), t0; \ - MOVD 8(msg), t1; \ - MOVD $1, t2; \ - ADDC t0, h0, h0; \ - ADDE t1, h1, h1; \ - ADDE t2, h2; \ - ADD $16, msg - -#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3, t4, t5) \ - MULLD r0, h0, t0; \ - MULLD r0, h1, t4; \ - MULHDU r0, h0, t1; \ - MULHDU r0, h1, t5; \ - ADDC t4, t1, t1; \ - MULLD r0, h2, t2; \ - ADDZE t5; \ - MULHDU r1, h0, t4; \ - MULLD r1, h0, h0; \ - ADD t5, t2, t2; \ - ADDC h0, t1, t1; \ - MULLD h2, r1, t3; \ - ADDZE t4, h0; \ - MULHDU r1, h1, t5; \ - MULLD r1, h1, t4; \ - ADDC t4, t2, t2; \ - ADDE t5, t3, t3; \ - ADDC h0, t2, t2; \ - MOVD $-4, t4; \ - MOVD t0, h0; \ - MOVD t1, h1; \ - ADDZE t3; \ - ANDCC $3, t2, h2; \ - AND t2, t4, t0; \ - ADDC t0, h0, h0; \ - ADDE t3, h1, h1; \ - SLD $62, t3, t4; \ - SRD $2, t2; \ - ADDZE h2; \ - OR t4, t2, t2; \ - SRD $2, t3; \ - ADDC t2, h0, h0; \ - ADDE t3, h1, h1; \ - ADDZE h2 - -DATA ·poly1305Mask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF -DATA ·poly1305Mask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC -GLOBL ·poly1305Mask<>(SB), RODATA, $16 - -// func update(state *[7]uint64, msg []byte) - -TEXT ·update(SB), $0-32 - MOVD state+0(FP), R3 - MOVD msg_base+8(FP), R4 - MOVD msg_len+16(FP), R5 - - MOVD 0(R3), R8 // h0 - MOVD 8(R3), R9 // h1 - MOVD 16(R3), R10 // h2 - MOVD 24(R3), R11 // r0 - MOVD 32(R3), R12 // r1 - - CMP R5, $16 - BLT bytes_between_0_and_15 - -loop: - POLY1305_ADD(R4, R8, R9, R10, R20, R21, R22) - -multiply: - POLY1305_MUL(R8, R9, R10, R11, R12, R16, R17, R18, R14, R20, R21) - ADD $-16, R5 - CMP R5, $16 - BGE loop - -bytes_between_0_and_15: - CMP $0, R5 - BEQ done - MOVD $0, R16 // h0 - MOVD $0, R17 // h1 - -flush_buffer: - CMP R5, $8 - BLE just1 - - MOVD $8, R21 - SUB R21, R5, R21 - - // Greater than 8 -- load the rightmost remaining bytes in msg - // and put into R17 (h1) - MOVD (R4)(R21), R17 - MOVD $16, R22 - - // Find the offset to those bytes - SUB R5, R22, R22 - SLD $3, R22 - - // Shift to get only the bytes in msg - SRD R22, R17, R17 - - // Put 1 at high end - MOVD $1, R23 - SLD $3, R21 - SLD R21, R23, R23 - OR R23, R17, R17 - - // Remainder is 8 - MOVD $8, R5 - -just1: - CMP R5, $8 - BLT less8 - - // Exactly 8 - MOVD (R4), R16 - - CMP $0, R17 - - // Check if we've already set R17; if not - // set 1 to indicate end of msg. - BNE carry - MOVD $1, R17 - BR carry - -less8: - MOVD $0, R16 // h0 - MOVD $0, R22 // shift count - CMP R5, $4 - BLT less4 - MOVWZ (R4), R16 - ADD $4, R4 - ADD $-4, R5 - MOVD $32, R22 - -less4: - CMP R5, $2 - BLT less2 - MOVHZ (R4), R21 - SLD R22, R21, R21 - OR R16, R21, R16 - ADD $16, R22 - ADD $-2, R5 - ADD $2, R4 - -less2: - CMP $0, R5 - BEQ insert1 - MOVBZ (R4), R21 - SLD R22, R21, R21 - OR R16, R21, R16 - ADD $8, R22 - -insert1: - // Insert 1 at end of msg - MOVD $1, R21 - SLD R22, R21, R21 - OR R16, R21, R16 - -carry: - // Add new values to h0, h1, h2 - ADDC R16, R8 - ADDE R17, R9 - ADDE $0, R10 - MOVD $16, R5 - ADD R5, R4 - BR multiply - -done: - // Save h0, h1, h2 in state - MOVD R8, 0(R3) - MOVD R9, 8(R3) - MOVD R10, 16(R3) - RET - -// func initialize(state *[7]uint64, key *[32]byte) -TEXT ·initialize(SB), $0-16 - MOVD state+0(FP), R3 - MOVD key+8(FP), R4 - - // state[0...7] is initialized with zero - // Load key - MOVD 0(R4), R5 - MOVD 8(R4), R6 - MOVD 16(R4), R7 - MOVD 24(R4), R8 - - // Address of key mask - MOVD $·poly1305Mask<>(SB), R9 - - // Save original key in state - MOVD R7, 40(R3) - MOVD R8, 48(R3) - - // Get mask - MOVD (R9), R7 - MOVD 8(R9), R8 - - // And with key - AND R5, R7, R5 - AND R6, R8, R6 - - // Save masked key in state - MOVD R5, 24(R3) - MOVD R6, 32(R3) - RET - -// func finalize(tag *[TagSize]byte, state *[7]uint64) -TEXT ·finalize(SB), $0-16 - MOVD tag+0(FP), R3 - MOVD state+8(FP), R4 - - // Get h0, h1, h2 from state - MOVD 0(R4), R5 - MOVD 8(R4), R6 - MOVD 16(R4), R7 - - // Save h0, h1 - MOVD R5, R8 - MOVD R6, R9 - MOVD $3, R20 - MOVD $-1, R21 - SUBC $-5, R5 - SUBE R21, R6 - SUBE R20, R7 - MOVD $0, R21 - SUBZE R21 - - // Check for carry - CMP $0, R21 - ISEL $2, R5, R8, R5 - ISEL $2, R6, R9, R6 - MOVD 40(R4), R8 - MOVD 48(R4), R9 - ADDC R8, R5 - ADDE R9, R6 - MOVD R5, 0(R3) - MOVD R6, 8(R3) - RET diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go index a65a923be..67b012610 100644 --- a/vendor/golang.org/x/crypto/ssh/cipher.go +++ b/vendor/golang.org/x/crypto/ssh/cipher.go @@ -149,8 +149,8 @@ type streamPacketCipher struct { macResult []byte } -// readCipherPacket reads and decrypt a single packet from the reader argument. -func (s *streamPacketCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { +// readPacket reads and decrypt a single packet from the reader argument. +func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { if _, err := io.ReadFull(r, s.prefix[:]); err != nil { return nil, err } @@ -221,8 +221,8 @@ func (s *streamPacketCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byt return s.packetData[:length-paddingLength-1], nil } -// writeCipherPacket encrypts and sends a packet of data to the writer argument -func (s *streamPacketCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { +// writePacket encrypts and sends a packet of data to the writer argument +func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { if len(packet) > maxPacket { return errors.New("ssh: packet too large") } @@ -327,7 +327,7 @@ func newGCMCipher(key, iv, unusedMacKey []byte, unusedAlgs directionAlgorithms) const gcmTagSize = 16 -func (c *gcmCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { +func (c *gcmCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { // Pad out to multiple of 16 bytes. This is different from the // stream cipher because that encrypts the length too. padding := byte(packetSizeMultiple - (1+len(packet))%packetSizeMultiple) @@ -370,7 +370,7 @@ func (c *gcmCipher) incIV() { } } -func (c *gcmCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { +func (c *gcmCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { if _, err := io.ReadFull(r, c.prefix[:]); err != nil { return nil, err } @@ -486,8 +486,8 @@ type cbcError string func (e cbcError) Error() string { return string(e) } -func (c *cbcCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { - p, err := c.readCipherPacketLeaky(seqNum, r) +func (c *cbcCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + p, err := c.readPacketLeaky(seqNum, r) if err != nil { if _, ok := err.(cbcError); ok { // Verification error: read a fixed amount of @@ -500,7 +500,7 @@ func (c *cbcCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) return p, err } -func (c *cbcCipher) readCipherPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { +func (c *cbcCipher) readPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { blockSize := c.decrypter.BlockSize() // Read the header, which will include some of the subsequent data in the @@ -576,7 +576,7 @@ func (c *cbcCipher) readCipherPacketLeaky(seqNum uint32, r io.Reader) ([]byte, e return c.packetData[prefixLen:paddingStart], nil } -func (c *cbcCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { +func (c *cbcCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { effectiveBlockSize := maxUInt32(cbcMinPacketSizeMultiple, c.encrypter.BlockSize()) // Length of encrypted portion of the packet (header, payload, padding). @@ -665,7 +665,7 @@ func newChaCha20Cipher(key, unusedIV, unusedMACKey []byte, unusedAlgs directionA return c, nil } -func (c *chacha20Poly1305Cipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { +func (c *chacha20Poly1305Cipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { nonce := [3]uint32{0, 0, bits.ReverseBytes32(seqNum)} s := chacha20.New(c.contentKey, nonce) var polyKey [32]byte @@ -723,7 +723,7 @@ func (c *chacha20Poly1305Cipher) readCipherPacket(seqNum uint32, r io.Reader) ([ return plain, nil } -func (c *chacha20Poly1305Cipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, payload []byte) error { +func (c *chacha20Poly1305Cipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, payload []byte) error { nonce := [3]uint32{0, 0, bits.ReverseBytes32(seqNum)} s := chacha20.New(c.contentKey, nonce) var polyKey [32]byte diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go index 0590070e2..5f44b7740 100644 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ b/vendor/golang.org/x/crypto/ssh/client_auth.go @@ -523,117 +523,3 @@ func (r *retryableAuthMethod) method() string { func RetryableAuthMethod(auth AuthMethod, maxTries int) AuthMethod { return &retryableAuthMethod{authMethod: auth, maxTries: maxTries} } - -// GSSAPIWithMICAuthMethod is an AuthMethod with "gssapi-with-mic" authentication. -// See RFC 4462 section 3 -// gssAPIClient is implementation of the GSSAPIClient interface, see the definition of the interface for details. -// target is the server host you want to log in to. -func GSSAPIWithMICAuthMethod(gssAPIClient GSSAPIClient, target string) AuthMethod { - if gssAPIClient == nil { - panic("gss-api client must be not nil with enable gssapi-with-mic") - } - return &gssAPIWithMICCallback{gssAPIClient: gssAPIClient, target: target} -} - -type gssAPIWithMICCallback struct { - gssAPIClient GSSAPIClient - target string -} - -func (g *gssAPIWithMICCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (authResult, []string, error) { - m := &userAuthRequestMsg{ - User: user, - Service: serviceSSH, - Method: g.method(), - } - // The GSS-API authentication method is initiated when the client sends an SSH_MSG_USERAUTH_REQUEST. - // See RFC 4462 section 3.2. - m.Payload = appendU32(m.Payload, 1) - m.Payload = appendString(m.Payload, string(krb5OID)) - if err := c.writePacket(Marshal(m)); err != nil { - return authFailure, nil, err - } - // The server responds to the SSH_MSG_USERAUTH_REQUEST with either an - // SSH_MSG_USERAUTH_FAILURE if none of the mechanisms are supported or - // with an SSH_MSG_USERAUTH_GSSAPI_RESPONSE. - // See RFC 4462 section 3.3. - // OpenSSH supports Kerberos V5 mechanism only for GSS-API authentication,so I don't want to check - // selected mech if it is valid. - packet, err := c.readPacket() - if err != nil { - return authFailure, nil, err - } - userAuthGSSAPIResp := &userAuthGSSAPIResponse{} - if err := Unmarshal(packet, userAuthGSSAPIResp); err != nil { - return authFailure, nil, err - } - // Start the loop into the exchange token. - // See RFC 4462 section 3.4. - var token []byte - defer g.gssAPIClient.DeleteSecContext() - for { - // Initiates the establishment of a security context between the application and a remote peer. - nextToken, needContinue, err := g.gssAPIClient.InitSecContext("host@"+g.target, token, false) - if err != nil { - return authFailure, nil, err - } - if len(nextToken) > 0 { - if err := c.writePacket(Marshal(&userAuthGSSAPIToken{ - Token: nextToken, - })); err != nil { - return authFailure, nil, err - } - } - if !needContinue { - break - } - packet, err = c.readPacket() - if err != nil { - return authFailure, nil, err - } - switch packet[0] { - case msgUserAuthFailure: - var msg userAuthFailureMsg - if err := Unmarshal(packet, &msg); err != nil { - return authFailure, nil, err - } - if msg.PartialSuccess { - return authPartialSuccess, msg.Methods, nil - } - return authFailure, msg.Methods, nil - case msgUserAuthGSSAPIError: - userAuthGSSAPIErrorResp := &userAuthGSSAPIError{} - if err := Unmarshal(packet, userAuthGSSAPIErrorResp); err != nil { - return authFailure, nil, err - } - return authFailure, nil, fmt.Errorf("GSS-API Error:\n"+ - "Major Status: %d\n"+ - "Minor Status: %d\n"+ - "Error Message: %s\n", userAuthGSSAPIErrorResp.MajorStatus, userAuthGSSAPIErrorResp.MinorStatus, - userAuthGSSAPIErrorResp.Message) - case msgUserAuthGSSAPIToken: - userAuthGSSAPITokenReq := &userAuthGSSAPIToken{} - if err := Unmarshal(packet, userAuthGSSAPITokenReq); err != nil { - return authFailure, nil, err - } - token = userAuthGSSAPITokenReq.Token - } - } - // Binding Encryption Keys. - // See RFC 4462 section 3.5. - micField := buildMIC(string(session), user, "ssh-connection", "gssapi-with-mic") - micToken, err := g.gssAPIClient.GetMIC(micField) - if err != nil { - return authFailure, nil, err - } - if err := c.writePacket(Marshal(&userAuthGSSAPIMIC{ - MIC: micToken, - })); err != nil { - return authFailure, nil, err - } - return handleAuthResponse(c) -} - -func (g *gssAPIWithMICCallback) method() string { - return "gssapi-with-mic" -} diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go index d97415d2d..04f3620b3 100644 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ b/vendor/golang.org/x/crypto/ssh/common.go @@ -109,7 +109,6 @@ func findCommon(what string, client []string, server []string) (common string, e return "", fmt.Errorf("ssh: no common algorithm for %s; client offered: %v, server offered: %v", what, client, server) } -// directionAlgorithms records algorithm choices in one direction (either read or write) type directionAlgorithms struct { Cipher string MAC string @@ -138,7 +137,7 @@ type algorithms struct { r directionAlgorithms } -func findAgreedAlgorithms(isClient bool, clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { +func findAgreedAlgorithms(clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { result := &algorithms{} result.kex, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos) @@ -151,37 +150,32 @@ func findAgreedAlgorithms(isClient bool, clientKexInit, serverKexInit *kexInitMs return } - stoc, ctos := &result.w, &result.r - if isClient { - ctos, stoc = stoc, ctos - } - - ctos.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) + result.w.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) if err != nil { return } - stoc.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) + result.r.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) if err != nil { return } - ctos.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) + result.w.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) if err != nil { return } - stoc.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) + result.r.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) if err != nil { return } - ctos.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) + result.w.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) if err != nil { return } - stoc.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) + result.r.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) if err != nil { return } diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go index 2b10b05a4..4f7912ecd 100644 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -543,8 +543,7 @@ func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { clientInit := otherInit serverInit := t.sentInitMsg - isClient := len(t.hostKeys) == 0 - if isClient { + if len(t.hostKeys) == 0 { clientInit, serverInit = serverInit, clientInit magics.clientKexInit = t.sentInitPacket @@ -552,7 +551,7 @@ func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { } var err error - t.algorithms, err = findAgreedAlgorithms(isClient, clientInit, serverInit) + t.algorithms, err = findAgreedAlgorithms(clientInit, serverInit) if err != nil { return err } diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go index db914d803..08d281173 100644 --- a/vendor/golang.org/x/crypto/ssh/messages.go +++ b/vendor/golang.org/x/crypto/ssh/messages.go @@ -275,42 +275,6 @@ type userAuthPubKeyOkMsg struct { PubKey []byte } -// See RFC 4462, section 3 -const msgUserAuthGSSAPIResponse = 60 - -type userAuthGSSAPIResponse struct { - SupportMech []byte `sshtype:"60"` -} - -const msgUserAuthGSSAPIToken = 61 - -type userAuthGSSAPIToken struct { - Token []byte `sshtype:"61"` -} - -const msgUserAuthGSSAPIMIC = 66 - -type userAuthGSSAPIMIC struct { - MIC []byte `sshtype:"66"` -} - -// See RFC 4462, section 3.9 -const msgUserAuthGSSAPIErrTok = 64 - -type userAuthGSSAPIErrTok struct { - ErrorToken []byte `sshtype:"64"` -} - -// See RFC 4462, section 3.8 -const msgUserAuthGSSAPIError = 65 - -type userAuthGSSAPIError struct { - MajorStatus uint32 `sshtype:"65"` - MinorStatus uint32 - Message string - LanguageTag string -} - // typeTags returns the possible type bytes for the given reflect.Type, which // should be a struct. The possible values are separated by a '|' character. func typeTags(structType reflect.Type) (tags []byte) { @@ -792,14 +756,6 @@ func decode(packet []byte) (interface{}, error) { msg = new(channelRequestSuccessMsg) case msgChannelFailure: msg = new(channelRequestFailureMsg) - case msgUserAuthGSSAPIToken: - msg = new(userAuthGSSAPIToken) - case msgUserAuthGSSAPIMIC: - msg = new(userAuthGSSAPIMIC) - case msgUserAuthGSSAPIErrTok: - msg = new(userAuthGSSAPIErrTok) - case msgUserAuthGSSAPIError: - msg = new(userAuthGSSAPIError) default: return nil, unexpectedMessageError(0, packet[0]) } @@ -808,29 +764,3 @@ func decode(packet []byte) (interface{}, error) { } return msg, nil } - -var packetTypeNames = map[byte]string{ - msgDisconnect: "disconnectMsg", - msgServiceRequest: "serviceRequestMsg", - msgServiceAccept: "serviceAcceptMsg", - msgKexInit: "kexInitMsg", - msgKexDHInit: "kexDHInitMsg", - msgKexDHReply: "kexDHReplyMsg", - msgUserAuthRequest: "userAuthRequestMsg", - msgUserAuthSuccess: "userAuthSuccessMsg", - msgUserAuthFailure: "userAuthFailureMsg", - msgUserAuthPubKeyOk: "userAuthPubKeyOkMsg", - msgGlobalRequest: "globalRequestMsg", - msgRequestSuccess: "globalRequestSuccessMsg", - msgRequestFailure: "globalRequestFailureMsg", - msgChannelOpen: "channelOpenMsg", - msgChannelData: "channelDataMsg", - msgChannelOpenConfirm: "channelOpenConfirmMsg", - msgChannelOpenFailure: "channelOpenFailureMsg", - msgChannelWindowAdjust: "windowAdjustMsg", - msgChannelEOF: "channelEOFMsg", - msgChannelClose: "channelCloseMsg", - msgChannelRequest: "channelRequestMsg", - msgChannelSuccess: "channelRequestSuccessMsg", - msgChannelFailure: "channelRequestFailureMsg", -} diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index ac7f8073c..e86e89661 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -45,20 +45,6 @@ type Permissions struct { Extensions map[string]string } -type GSSAPIWithMICConfig struct { - // AllowLogin, must be set, is called when gssapi-with-mic - // authentication is selected (RFC 4462 section 3). The srcName is from the - // results of the GSS-API authentication. The format is username@DOMAIN. - // GSSAPI just guarantees to the server who the user is, but not if they can log in, and with what permissions. - // This callback is called after the user identity is established with GSSAPI to decide if the user can login with - // which permissions. If the user is allowed to login, it should return a nil error. - AllowLogin func(conn ConnMetadata, srcName string) (*Permissions, error) - - // Server must be set. It's the implementation - // of the GSSAPIServer interface. See GSSAPIServer interface for details. - Server GSSAPIServer -} - // ServerConfig holds server specific configuration data. type ServerConfig struct { // Config contains configuration shared between client and server. @@ -113,10 +99,6 @@ type ServerConfig struct { // BannerCallback, if present, is called and the return string is sent to // the client after key exchange completed but before authentication. BannerCallback func(conn ConnMetadata) string - - // GSSAPIWithMICConfig includes gssapi server and callback, which if both non-nil, is used - // when gssapi-with-mic authentication is selected (RFC 4462 section 3). - GSSAPIWithMICConfig *GSSAPIWithMICConfig } // AddHostKey adds a private key as a host key. If an existing host @@ -222,9 +204,7 @@ func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) return nil, errors.New("ssh: server has no host keys") } - if !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil && - config.KeyboardInteractiveCallback == nil && (config.GSSAPIWithMICConfig == nil || - config.GSSAPIWithMICConfig.AllowLogin == nil || config.GSSAPIWithMICConfig.Server == nil) { + if !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil && config.KeyboardInteractiveCallback == nil { return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") } @@ -315,55 +295,6 @@ func checkSourceAddress(addr net.Addr, sourceAddrs string) error { return fmt.Errorf("ssh: remote address %v is not allowed because of source-address restriction", addr) } -func gssExchangeToken(gssapiConfig *GSSAPIWithMICConfig, firstToken []byte, s *connection, - sessionID []byte, userAuthReq userAuthRequestMsg) (authErr error, perms *Permissions, err error) { - gssAPIServer := gssapiConfig.Server - defer gssAPIServer.DeleteSecContext() - var srcName string - for { - var ( - outToken []byte - needContinue bool - ) - outToken, srcName, needContinue, err = gssAPIServer.AcceptSecContext(firstToken) - if err != nil { - return err, nil, nil - } - if len(outToken) != 0 { - if err := s.transport.writePacket(Marshal(&userAuthGSSAPIToken{ - Token: outToken, - })); err != nil { - return nil, nil, err - } - } - if !needContinue { - break - } - packet, err := s.transport.readPacket() - if err != nil { - return nil, nil, err - } - userAuthGSSAPITokenReq := &userAuthGSSAPIToken{} - if err := Unmarshal(packet, userAuthGSSAPITokenReq); err != nil { - return nil, nil, err - } - } - packet, err := s.transport.readPacket() - if err != nil { - return nil, nil, err - } - userAuthGSSAPIMICReq := &userAuthGSSAPIMIC{} - if err := Unmarshal(packet, userAuthGSSAPIMICReq); err != nil { - return nil, nil, err - } - mic := buildMIC(string(sessionID), userAuthReq.User, userAuthReq.Service, userAuthReq.Method) - if err := gssAPIServer.VerifyMIC(mic, userAuthGSSAPIMICReq.MIC); err != nil { - return err, nil, nil - } - perms, authErr = gssapiConfig.AllowLogin(s, srcName) - return authErr, perms, nil -} - // ServerAuthError represents server authentication errors and is // sometimes returned by NewServerConn. It appends any authentication // errors that may occur, and is returned if all of the authentication @@ -565,49 +496,6 @@ userAuthLoop: authErr = candidate.result perms = candidate.perms } - case "gssapi-with-mic": - gssapiConfig := config.GSSAPIWithMICConfig - userAuthRequestGSSAPI, err := parseGSSAPIPayload(userAuthReq.Payload) - if err != nil { - return nil, parseError(msgUserAuthRequest) - } - // OpenSSH supports Kerberos V5 mechanism only for GSS-API authentication. - if userAuthRequestGSSAPI.N == 0 { - authErr = fmt.Errorf("ssh: Mechanism negotiation is not supported") - break - } - var i uint32 - present := false - for i = 0; i < userAuthRequestGSSAPI.N; i++ { - if userAuthRequestGSSAPI.OIDS[i].Equal(krb5Mesh) { - present = true - break - } - } - if !present { - authErr = fmt.Errorf("ssh: GSSAPI authentication must use the Kerberos V5 mechanism") - break - } - // Initial server response, see RFC 4462 section 3.3. - if err := s.transport.writePacket(Marshal(&userAuthGSSAPIResponse{ - SupportMech: krb5OID, - })); err != nil { - return nil, err - } - // Exchange token, see RFC 4462 section 3.4. - packet, err := s.transport.readPacket() - if err != nil { - return nil, err - } - userAuthGSSAPITokenReq := &userAuthGSSAPIToken{} - if err := Unmarshal(packet, userAuthGSSAPITokenReq); err != nil { - return nil, err - } - authErr, perms, err = gssExchangeToken(gssapiConfig, userAuthGSSAPITokenReq.Token, s, sessionID, - userAuthReq) - if err != nil { - return nil, err - } default: authErr = fmt.Errorf("ssh: unknown method %q", userAuthReq.Method) } @@ -634,10 +522,6 @@ userAuthLoop: if config.KeyboardInteractiveCallback != nil { failureMsg.Methods = append(failureMsg.Methods, "keyboard-interactive") } - if config.GSSAPIWithMICConfig != nil && config.GSSAPIWithMICConfig.Server != nil && - config.GSSAPIWithMICConfig.AllowLogin != nil { - failureMsg.Methods = append(failureMsg.Methods, "gssapi-with-mic") - } if len(failureMsg.Methods) == 0 { return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") diff --git a/vendor/golang.org/x/crypto/ssh/ssh_gss.go b/vendor/golang.org/x/crypto/ssh/ssh_gss.go deleted file mode 100644 index 24bd7c8e8..000000000 --- a/vendor/golang.org/x/crypto/ssh/ssh_gss.go +++ /dev/null @@ -1,139 +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. - -package ssh - -import ( - "encoding/asn1" - "errors" -) - -var krb5OID []byte - -func init() { - krb5OID, _ = asn1.Marshal(krb5Mesh) -} - -// GSSAPIClient provides the API to plug-in GSSAPI authentication for client logins. -type GSSAPIClient interface { - // InitSecContext initiates the establishment of a security context for GSS-API between the - // ssh client and ssh server. Initially the token parameter should be specified as nil. - // The routine may return a outputToken which should be transferred to - // the ssh server, where the ssh server will present it to - // AcceptSecContext. If no token need be sent, InitSecContext will indicate this by setting - // needContinue to false. To complete the context - // establishment, one or more reply tokens may be required from the ssh - // server;if so, InitSecContext will return a needContinue which is true. - // In this case, InitSecContext should be called again when the - // reply token is received from the ssh server, passing the reply - // token to InitSecContext via the token parameters. - // See RFC 2743 section 2.2.1 and RFC 4462 section 3.4. - InitSecContext(target string, token []byte, isGSSDelegCreds bool) (outputToken []byte, needContinue bool, err error) - // GetMIC generates a cryptographic MIC for the SSH2 message, and places - // the MIC in a token for transfer to the ssh server. - // The contents of the MIC field are obtained by calling GSS_GetMIC() - // over the following, using the GSS-API context that was just - // established: - // string session identifier - // byte SSH_MSG_USERAUTH_REQUEST - // string user name - // string service - // string "gssapi-with-mic" - // See RFC 2743 section 2.3.1 and RFC 4462 3.5. - GetMIC(micFiled []byte) ([]byte, error) - // Whenever possible, it should be possible for - // DeleteSecContext() calls to be successfully processed even - // if other calls cannot succeed, thereby enabling context-related - // resources to be released. - // In addition to deleting established security contexts, - // gss_delete_sec_context must also be able to delete "half-built" - // security contexts resulting from an incomplete sequence of - // InitSecContext()/AcceptSecContext() calls. - // See RFC 2743 section 2.2.3. - DeleteSecContext() error -} - -// GSSAPIServer provides the API to plug in GSSAPI authentication for server logins. -type GSSAPIServer interface { - // AcceptSecContext allows a remotely initiated security context between the application - // and a remote peer to be established by the ssh client. The routine may return a - // outputToken which should be transferred to the ssh client, - // where the ssh client will present it to InitSecContext. - // If no token need be sent, AcceptSecContext will indicate this - // by setting the needContinue to false. To - // complete the context establishment, one or more reply tokens may be - // required from the ssh client. if so, AcceptSecContext - // will return a needContinue which is true, in which case it - // should be called again when the reply token is received from the ssh - // client, passing the token to AcceptSecContext via the - // token parameters. - // The srcName return value is the authenticated username. - // See RFC 2743 section 2.2.2 and RFC 4462 section 3.4. - AcceptSecContext(token []byte) (outputToken []byte, srcName string, needContinue bool, err error) - // VerifyMIC verifies that a cryptographic MIC, contained in the token parameter, - // fits the supplied message is received from the ssh client. - // See RFC 2743 section 2.3.2. - VerifyMIC(micField []byte, micToken []byte) error - // Whenever possible, it should be possible for - // DeleteSecContext() calls to be successfully processed even - // if other calls cannot succeed, thereby enabling context-related - // resources to be released. - // In addition to deleting established security contexts, - // gss_delete_sec_context must also be able to delete "half-built" - // security contexts resulting from an incomplete sequence of - // InitSecContext()/AcceptSecContext() calls. - // See RFC 2743 section 2.2.3. - DeleteSecContext() error -} - -var ( - // OpenSSH supports Kerberos V5 mechanism only for GSS-API authentication, - // so we also support the krb5 mechanism only. - // See RFC 1964 section 1. - krb5Mesh = asn1.ObjectIdentifier{1, 2, 840, 113554, 1, 2, 2} -) - -// The GSS-API authentication method is initiated when the client sends an SSH_MSG_USERAUTH_REQUEST -// See RFC 4462 section 3.2. -type userAuthRequestGSSAPI struct { - N uint32 - OIDS []asn1.ObjectIdentifier -} - -func parseGSSAPIPayload(payload []byte) (*userAuthRequestGSSAPI, error) { - n, rest, ok := parseUint32(payload) - if !ok { - return nil, errors.New("parse uint32 failed") - } - s := &userAuthRequestGSSAPI{ - N: n, - OIDS: make([]asn1.ObjectIdentifier, n), - } - for i := 0; i < int(n); i++ { - var ( - desiredMech []byte - err error - ) - desiredMech, rest, ok = parseString(rest) - if !ok { - return nil, errors.New("parse string failed") - } - if rest, err = asn1.Unmarshal(desiredMech, &s.OIDS[i]); err != nil { - return nil, err - } - - } - return s, nil -} - -// See RFC 4462 section 3.6. -func buildMIC(sessionID string, username string, service string, authMethod string) []byte { - out := make([]byte, 0, 0) - out = appendString(out, sessionID) - out = append(out, msgUserAuthRequest) - out = appendString(out, username) - out = appendString(out, service) - out = appendString(out, authMethod) - return out -} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go index 2f04ee5b5..9d666ffcf 100644 --- a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go +++ b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go @@ -7,7 +7,6 @@ package terminal import ( "bytes" "io" - "strconv" "sync" "unicode/utf8" ) @@ -272,44 +271,34 @@ func (t *Terminal) moveCursorToPos(pos int) { } func (t *Terminal) move(up, down, left, right int) { - m := []rune{} - - // 1 unit up can be expressed as ^[[A or ^[A - // 5 units up can be expressed as ^[[5A - - if up == 1 { - m = append(m, keyEscape, '[', 'A') - } else if up > 1 { - m = append(m, keyEscape, '[') - m = append(m, []rune(strconv.Itoa(up))...) - m = append(m, 'A') + movement := make([]rune, 3*(up+down+left+right)) + m := movement + for i := 0; i < up; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'A' + m = m[3:] + } + for i := 0; i < down; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'B' + m = m[3:] + } + for i := 0; i < left; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'D' + m = m[3:] + } + for i := 0; i < right; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'C' + m = m[3:] } - if down == 1 { - m = append(m, keyEscape, '[', 'B') - } else if down > 1 { - m = append(m, keyEscape, '[') - m = append(m, []rune(strconv.Itoa(down))...) - m = append(m, 'B') - } - - if right == 1 { - m = append(m, keyEscape, '[', 'C') - } else if right > 1 { - m = append(m, keyEscape, '[') - m = append(m, []rune(strconv.Itoa(right))...) - m = append(m, 'C') - } - - if left == 1 { - m = append(m, keyEscape, '[', 'D') - } else if left > 1 { - m = append(m, keyEscape, '[') - m = append(m, []rune(strconv.Itoa(left))...) - m = append(m, 'D') - } - - t.queue(m) + t.queue(movement) } func (t *Terminal) clearLineToRight() { diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go index 49ddc2e7d..f6fae1db4 100644 --- a/vendor/golang.org/x/crypto/ssh/transport.go +++ b/vendor/golang.org/x/crypto/ssh/transport.go @@ -53,14 +53,14 @@ type transport struct { // packetCipher represents a combination of SSH encryption/MAC // protocol. A single instance should be used for one direction only. type packetCipher interface { - // writeCipherPacket encrypts the packet and writes it to w. The + // writePacket encrypts the packet and writes it to w. The // contents of the packet are generally scrambled. - writeCipherPacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error + writePacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error - // readCipherPacket reads and decrypts a packet of data. The + // readPacket reads and decrypts a packet of data. The // returned packet may be overwritten by future calls of // readPacket. - readCipherPacket(seqnum uint32, r io.Reader) ([]byte, error) + readPacket(seqnum uint32, r io.Reader) ([]byte, error) } // connectionState represents one side (read or write) of the @@ -127,7 +127,7 @@ func (t *transport) readPacket() (p []byte, err error) { } func (s *connectionState) readPacket(r *bufio.Reader) ([]byte, error) { - packet, err := s.packetCipher.readCipherPacket(s.seqNum, r) + packet, err := s.packetCipher.readPacket(s.seqNum, r) s.seqNum++ if err == nil && len(packet) == 0 { err = errors.New("ssh: zero length packet") @@ -175,7 +175,7 @@ func (t *transport) writePacket(packet []byte) error { func (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte) error { changeKeys := len(packet) > 0 && packet[0] == msgNewKeys - err := s.packetCipher.writeCipherPacket(s.seqNum, w, rand, packet) + err := s.packetCipher.writePacket(s.seqNum, w, rand, packet) if err != nil { return err } diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go index 24fbb6967..22eae809c 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_posix.go +++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go @@ -33,7 +33,7 @@ func marshalSockaddr(ip net.IP, port int, zone string) []byte { if ip4 := ip.To4(); ip4 != nil { b := make([]byte, sizeofSockaddrInet) switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET)) default: b[0] = sizeofSockaddrInet @@ -46,7 +46,7 @@ func marshalSockaddr(ip net.IP, port int, zone string) []byte { if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil { b := make([]byte, sizeofSockaddrInet6) switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6)) default: b[0] = sizeofSockaddrInet6 @@ -68,7 +68,7 @@ func parseInetAddr(b []byte, network string) (net.Addr, error) { } var af int switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": af = int(NativeEndian.Uint16(b[:2])) default: af = int(b[1]) diff --git a/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s b/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s deleted file mode 100644 index 06f84b855..000000000 --- a/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s +++ /dev/null @@ -1,17 +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 !gccgo - -#include "textflag.h" - -// -// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go -// - -TEXT ·syscall6(SB),NOSPLIT,$0-88 - JMP syscall·syscall6(SB) - -TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go b/vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go deleted file mode 100644 index be6027224..000000000 --- a/vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go +++ /dev/null @@ -1,34 +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 aix,ppc64 - -package cpu - -const cacheLineSize = 128 - -const ( - // getsystemcfg constants - _SC_IMPL = 2 - _IMPL_POWER8 = 0x10000 - _IMPL_POWER9 = 0x20000 -) - -func init() { - impl := getsystemcfg(_SC_IMPL) - if impl&_IMPL_POWER8 != 0 { - PPC64.IsPOWER8 = true - } - if impl&_IMPL_POWER9 != 0 { - PPC64.IsPOWER9 = true - } - - Initialized = true -} - -func getsystemcfg(label int) (n uint64) { - r0, _ := callgetsystemcfg(label) - n = uint64(r0) - return -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go new file mode 100644 index 000000000..3053b4b98 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go @@ -0,0 +1,12 @@ +// 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 !linux +// +build ppc64 ppc64le + +package cpu + +const cacheLineSize = 128 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_wasm.go b/vendor/golang.org/x/sys/cpu/cpu_wasm.go deleted file mode 100644 index bd9bbda0c..000000000 --- a/vendor/golang.org/x/sys/cpu/cpu_wasm.go +++ /dev/null @@ -1,15 +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 wasm - -package cpu - -// We're compiling the cpu package for an unknown (software-abstracted) CPU. -// Make CacheLinePad an empty struct and hope that the usual struct alignment -// rules are good enough. - -const cacheLineSize = 0 - -func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go deleted file mode 100644 index 78fe25e86..000000000 --- a/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go +++ /dev/null @@ -1,36 +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. - -// Minimal copy of x/sys/unix so the cpu package can make a -// system call on AIX without depending on x/sys/unix. -// (See golang.org/issue/32102) - -// +build aix,ppc64 -// +build !gccgo - -package cpu - -import ( - "syscall" - "unsafe" -) - -//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" - -//go:linkname libc_getsystemcfg libc_getsystemcfg - -type syscallFunc uintptr - -var libc_getsystemcfg syscallFunc - -type errno = syscall.Errno - -// 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) - -func callgetsystemcfg(label int) (r1 uintptr, e1 errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) - return -} diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s deleted file mode 100644 index 6db717de5..000000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +++ /dev/null @@ -1,54 +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 riscv64,!gccgo - -#include "textflag.h" - -// -// System calls for linux/riscv64. -// -// Where available, just jump to package syscall's implementation of -// these functions. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - CALL runtime·entersyscall(SB) - MOV a1+8(FP), A0 - MOV a2+16(FP), A1 - MOV a3+24(FP), A2 - MOV $0, A3 - MOV $0, A4 - MOV $0, A5 - MOV $0, A6 - MOV trap+0(FP), A7 // syscall entry - ECALL - MOV A0, r1+32(FP) // r1 - MOV A1, r2+40(FP) // r2 - CALL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOV a1+8(FP), A0 - MOV a2+16(FP), A1 - MOV a3+24(FP), A2 - MOV ZERO, A3 - MOV ZERO, A4 - MOV ZERO, A5 - MOV trap+0(FP), A7 // syscall entry - ECALL - MOV A0, r1+32(FP) - MOV A1, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s deleted file mode 100644 index 0cedea3d3..000000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s +++ /dev/null @@ -1,29 +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 !gccgo - -#include "textflag.h" - -// -// System call support for arm64, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 5a22eca96..75152f99b 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -105,25 +105,25 @@ dragonfly_amd64) freebsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_amd64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -arm" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; freebsd_arm64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; netbsd_386) @@ -146,39 +146,24 @@ netbsd_arm) # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; -netbsd_arm64) - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -netbsd" - mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; openbsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32 -openbsd" - mksysctl="go run mksysctl_openbsd.go" + mksysctl="./mksysctl_openbsd.pl" mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_amd64) mkerrors="$mkerrors -m64" mksyscall="go run mksyscall.go -openbsd" - mksysctl="go run mksysctl_openbsd.go" + mksysctl="./mksysctl_openbsd.pl" mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -openbsd -arm" - mksysctl="go run mksysctl_openbsd.go" - mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -openbsd_arm64) - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd" - mksysctl="go run mksysctl_openbsd.go" + mksysctl="./mksysctl_openbsd.pl" mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. @@ -222,6 +207,8 @@ esac esac if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi - if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi + if [ -n "$mktypes" ]; then + echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi + fi ) | $run diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 4c91159c1..6a23484e5 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -182,7 +182,6 @@ struct ltchars { #include #include #include -#include #include #include #include @@ -193,7 +192,6 @@ struct ltchars { #include #include #include -#include #include #include #include @@ -223,7 +221,6 @@ struct ltchars { #include #include #include -#include #include #include @@ -434,7 +431,7 @@ ccflags="$@" $2 ~ /^TC[IO](ON|OFF)$/ || $2 ~ /^IN_/ || $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|MCAST|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || $2 ~ /^TP_STATUS_/ || $2 ~ /^FALLOC_/ || $2 == "ICMPV6_FILTER" || @@ -467,7 +464,7 @@ ccflags="$@" $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || $2 ~ /^CLONE_[A-Z_]+/ || - $2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ && + $2 !~ /^(BPF_TIMEVAL)$/ && $2 ~ /^(BPF|DLT)_/ || $2 ~ /^(CLOCK|TIMER)_/ || $2 ~ /^CAN_/ || @@ -501,11 +498,9 @@ ccflags="$@" $2 ~ /^NFN/ || $2 ~ /^XDP_/ || $2 ~ /^(HDIO|WIN|SMART)_/ || - $2 ~ /^CRYPTO_/ || $2 !~ "WMESGLEN" && $2 ~ /^W[A-Z0-9]+$/ || $2 ~/^PPPIOC/ || - $2 ~ /^FAN_|FANOTIFY_/ || $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} $2 ~ /^__WCOREFLAG$/ {next} $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go index 4d5b531b5..9feddd00c 100644 --- a/vendor/golang.org/x/sys/unix/mkpost.go +++ b/vendor/golang.org/x/sys/unix/mkpost.go @@ -42,13 +42,6 @@ func main() { log.Fatal(err) } - if goos == "aix" { - // Replace type of Atim, Mtim and Ctim by Timespec in Stat_t - // to avoid having both StTimespec and Timespec. - sttimespec := regexp.MustCompile(`_Ctype_struct_st_timespec`) - b = sttimespec.ReplaceAll(b, []byte("Timespec")) - } - // 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}")) @@ -103,15 +96,6 @@ func main() { cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`) b = cgoCommandRegex.ReplaceAll(b, []byte(replacement)) - // Rename Stat_t time fields - if goos == "freebsd" && goarch == "386" { - // Hide Stat_t.[AMCB]tim_ext fields - renameStatTimeExtFieldsRegex := regexp.MustCompile(`[AMCB]tim_ext`) - b = renameStatTimeExtFieldsRegex.ReplaceAll(b, []byte("_")) - } - renameStatTimeFieldsRegex := regexp.MustCompile(`([AMCB])(?:irth)?time?(?:spec)?\s+(Timespec|StTimespec)`) - b = renameStatTimeFieldsRegex.ReplaceAll(b, []byte("${1}tim ${2}")) - // gofmt b, err = format.Source(b) if err != nil { diff --git a/vendor/golang.org/x/sys/unix/mksyscall.go b/vendor/golang.org/x/sys/unix/mksyscall.go index e4af9424e..e06e4253e 100644 --- a/vendor/golang.org/x/sys/unix/mksyscall.go +++ b/vendor/golang.org/x/sys/unix/mksyscall.go @@ -153,11 +153,6 @@ func main() { } funct, inps, outps, sysname := f[2], f[3], f[4], f[5] - // ClockGettime doesn't have a syscall number on Darwin, only generate libc wrappers. - if goos == "darwin" && !libc && funct == "ClockGettime" { - continue - } - // Split argument lists on comma. in := parseParamList(inps) out := parseParamList(outps) @@ -233,7 +228,7 @@ func main() { } else { args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) } - } else if (p.Type == "int64" || p.Type == "uint64") && endianness != "" { + } else if p.Type == "int64" && endianness != "" { if len(args)%2 == 1 && *arm { // arm abi specifies 64-bit argument uses // (even, odd) pair diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go index 3be3cdfc3..f2c58fb7c 100644 --- a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go @@ -214,11 +214,6 @@ func main() { } if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" { - if sysname == "select" { - // select is a keyword of Go. Its name is - // changed to c_select. - cExtern += "#define c_select select\n" - } // Imports of system calls from libc cExtern += fmt.Sprintf("%s %s", cRettype, sysname) cIn := strings.Join(cIn, ", ") @@ -333,13 +328,7 @@ func main() { } else { call += "" } - if sysname == "select" { - // select is a keyword of Go. Its name is - // changed to c_select. - call += fmt.Sprintf("C.c_%s(%s)", sysname, arglist) - } else { - call += fmt.Sprintf("C.%s(%s)", sysname, arglist) - } + call += fmt.Sprintf("C.%s(%s)", sysname, arglist) // Assign return values. body := "" diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go index c96009951..45b442908 100644 --- a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go @@ -282,11 +282,6 @@ func main() { if !onlyCommon { // GCCGO Prototype Generation // Imports of system calls from libc - if sysname == "select" { - // select is a keyword of Go. Its name is - // changed to c_select. - cExtern += "#define c_select select\n" - } cExtern += fmt.Sprintf("%s %s", cRettype, sysname) cIn := strings.Join(cIn, ", ") cExtern += fmt.Sprintf("(%s);\n", cIn) @@ -495,14 +490,7 @@ func main() { // GCCGO function generation argsgccgolist := strings.Join(argsgccgo, ", ") - var callgccgo string - if sysname == "select" { - // select is a keyword of Go. Its name is - // changed to c_select. - callgccgo = fmt.Sprintf("C.c_%s(%s)", sysname, argsgccgolist) - } else { - callgccgo = fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist) - } + callgccgo := fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist) textgccgo += callProto textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo) textgccgo += "\te1 = syscall.GetErrno()\n" diff --git a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go deleted file mode 100644 index b6b409909..000000000 --- a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go +++ /dev/null @@ -1,355 +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 - -// Parse the header files for OpenBSD and generate a Go usable sysctl MIB. -// -// Build a MIB with each entry being an array containing the level, type and -// a hash that will contain additional entries if the current entry is a node. -// We then walk this MIB and create a flattened sysctl name to OID hash. - -package main - -import ( - "bufio" - "fmt" - "os" - "path/filepath" - "regexp" - "sort" - "strings" -) - -var ( - goos, goarch string -) - -// cmdLine returns this programs's commandline arguments. -func cmdLine() string { - return "go run mksysctl_openbsd.go " + strings.Join(os.Args[1:], " ") -} - -// buildTags returns build tags. -func buildTags() string { - return fmt.Sprintf("%s,%s", goarch, goos) -} - -// reMatch performs regular expression match and stores the substring slice to value pointed by m. -func reMatch(re *regexp.Regexp, str string, m *[]string) bool { - *m = re.FindStringSubmatch(str) - if *m != nil { - return true - } - return false -} - -type nodeElement struct { - n int - t string - pE *map[string]nodeElement -} - -var ( - debugEnabled bool - mib map[string]nodeElement - node *map[string]nodeElement - nodeMap map[string]string - sysCtl []string -) - -var ( - ctlNames1RE = regexp.MustCompile(`^#define\s+(CTL_NAMES)\s+{`) - ctlNames2RE = regexp.MustCompile(`^#define\s+(CTL_(.*)_NAMES)\s+{`) - ctlNames3RE = regexp.MustCompile(`^#define\s+((.*)CTL_NAMES)\s+{`) - netInetRE = regexp.MustCompile(`^netinet/`) - netInet6RE = regexp.MustCompile(`^netinet6/`) - netRE = regexp.MustCompile(`^net/`) - bracesRE = regexp.MustCompile(`{.*}`) - ctlTypeRE = regexp.MustCompile(`{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}`) - fsNetKernRE = regexp.MustCompile(`^(fs|net|kern)_`) -) - -func debug(s string) { - if debugEnabled { - fmt.Fprintln(os.Stderr, s) - } -} - -// Walk the MIB and build a sysctl name to OID mapping. -func buildSysctl(pNode *map[string]nodeElement, name string, oid []int) { - lNode := pNode // local copy of pointer to node - var keys []string - for k := range *lNode { - keys = append(keys, k) - } - sort.Strings(keys) - - for _, key := range keys { - nodename := name - if name != "" { - nodename += "." - } - nodename += key - - nodeoid := append(oid, (*pNode)[key].n) - - if (*pNode)[key].t == `CTLTYPE_NODE` { - if _, ok := nodeMap[nodename]; ok { - lNode = &mib - ctlName := nodeMap[nodename] - for _, part := range strings.Split(ctlName, ".") { - lNode = ((*lNode)[part]).pE - } - } else { - lNode = (*pNode)[key].pE - } - buildSysctl(lNode, nodename, nodeoid) - } else if (*pNode)[key].t != "" { - oidStr := []string{} - for j := range nodeoid { - oidStr = append(oidStr, fmt.Sprintf("%d", nodeoid[j])) - } - text := "\t{ \"" + nodename + "\", []_C_int{ " + strings.Join(oidStr, ", ") + " } }, \n" - sysCtl = append(sysCtl, text) - } - } -} - -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) - } - - mib = make(map[string]nodeElement) - headers := [...]string{ - `sys/sysctl.h`, - `sys/socket.h`, - `sys/tty.h`, - `sys/malloc.h`, - `sys/mount.h`, - `sys/namei.h`, - `sys/sem.h`, - `sys/shm.h`, - `sys/vmmeter.h`, - `uvm/uvmexp.h`, - `uvm/uvm_param.h`, - `uvm/uvm_swap_encrypt.h`, - `ddb/db_var.h`, - `net/if.h`, - `net/if_pfsync.h`, - `net/pipex.h`, - `netinet/in.h`, - `netinet/icmp_var.h`, - `netinet/igmp_var.h`, - `netinet/ip_ah.h`, - `netinet/ip_carp.h`, - `netinet/ip_divert.h`, - `netinet/ip_esp.h`, - `netinet/ip_ether.h`, - `netinet/ip_gre.h`, - `netinet/ip_ipcomp.h`, - `netinet/ip_ipip.h`, - `netinet/pim_var.h`, - `netinet/tcp_var.h`, - `netinet/udp_var.h`, - `netinet6/in6.h`, - `netinet6/ip6_divert.h`, - `netinet6/pim6_var.h`, - `netinet/icmp6.h`, - `netmpls/mpls.h`, - } - - ctls := [...]string{ - `kern`, - `vm`, - `fs`, - `net`, - //debug /* Special handling required */ - `hw`, - //machdep /* Arch specific */ - `user`, - `ddb`, - //vfs /* Special handling required */ - `fs.posix`, - `kern.forkstat`, - `kern.intrcnt`, - `kern.malloc`, - `kern.nchstats`, - `kern.seminfo`, - `kern.shminfo`, - `kern.timecounter`, - `kern.tty`, - `kern.watchdog`, - `net.bpf`, - `net.ifq`, - `net.inet`, - `net.inet.ah`, - `net.inet.carp`, - `net.inet.divert`, - `net.inet.esp`, - `net.inet.etherip`, - `net.inet.gre`, - `net.inet.icmp`, - `net.inet.igmp`, - `net.inet.ip`, - `net.inet.ip.ifq`, - `net.inet.ipcomp`, - `net.inet.ipip`, - `net.inet.mobileip`, - `net.inet.pfsync`, - `net.inet.pim`, - `net.inet.tcp`, - `net.inet.udp`, - `net.inet6`, - `net.inet6.divert`, - `net.inet6.ip6`, - `net.inet6.icmp6`, - `net.inet6.pim6`, - `net.inet6.tcp6`, - `net.inet6.udp6`, - `net.mpls`, - `net.mpls.ifq`, - `net.key`, - `net.pflow`, - `net.pfsync`, - `net.pipex`, - `net.rt`, - `vm.swapencrypt`, - //vfsgenctl /* Special handling required */ - } - - // Node name "fixups" - ctlMap := map[string]string{ - "ipproto": "net.inet", - "net.inet.ipproto": "net.inet", - "net.inet6.ipv6proto": "net.inet6", - "net.inet6.ipv6": "net.inet6.ip6", - "net.inet.icmpv6": "net.inet6.icmp6", - "net.inet6.divert6": "net.inet6.divert", - "net.inet6.tcp6": "net.inet.tcp", - "net.inet6.udp6": "net.inet.udp", - "mpls": "net.mpls", - "swpenc": "vm.swapencrypt", - } - - // Node mappings - nodeMap = map[string]string{ - "net.inet.ip.ifq": "net.ifq", - "net.inet.pfsync": "net.pfsync", - "net.mpls.ifq": "net.ifq", - } - - mCtls := make(map[string]bool) - for _, ctl := range ctls { - mCtls[ctl] = true - } - - for _, header := range headers { - debug("Processing " + header) - file, err := os.Open(filepath.Join("/usr/include", header)) - if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } - s := bufio.NewScanner(file) - for s.Scan() { - var sub []string - if reMatch(ctlNames1RE, s.Text(), &sub) || - reMatch(ctlNames2RE, s.Text(), &sub) || - reMatch(ctlNames3RE, s.Text(), &sub) { - if sub[1] == `CTL_NAMES` { - // Top level. - node = &mib - } else { - // Node. - nodename := strings.ToLower(sub[2]) - ctlName := "" - if reMatch(netInetRE, header, &sub) { - ctlName = "net.inet." + nodename - } else if reMatch(netInet6RE, header, &sub) { - ctlName = "net.inet6." + nodename - } else if reMatch(netRE, header, &sub) { - ctlName = "net." + nodename - } else { - ctlName = nodename - ctlName = fsNetKernRE.ReplaceAllString(ctlName, `$1.`) - } - - if val, ok := ctlMap[ctlName]; ok { - ctlName = val - } - if _, ok := mCtls[ctlName]; !ok { - debug("Ignoring " + ctlName + "...") - continue - } - - // Walk down from the top of the MIB. - node = &mib - for _, part := range strings.Split(ctlName, ".") { - if _, ok := (*node)[part]; !ok { - debug("Missing node " + part) - (*node)[part] = nodeElement{n: 0, t: "", pE: &map[string]nodeElement{}} - } - node = (*node)[part].pE - } - } - - // Populate current node with entries. - i := -1 - for !strings.HasPrefix(s.Text(), "}") { - s.Scan() - if reMatch(bracesRE, s.Text(), &sub) { - i++ - } - if !reMatch(ctlTypeRE, s.Text(), &sub) { - continue - } - (*node)[sub[1]] = nodeElement{n: i, t: sub[2], pE: &map[string]nodeElement{}} - } - } - } - err = s.Err() - if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } - file.Close() - } - buildSysctl(&mib, "", []int{}) - - sort.Strings(sysCtl) - text := strings.Join(sysCtl, "") - - fmt.Printf(srcTemplate, cmdLine(), buildTags(), text) -} - -const srcTemplate = `// %s -// Code generated by the command above; DO NOT EDIT. - -// +build %s - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry { -%s -} -` diff --git a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl new file mode 100644 index 000000000..20632e146 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl @@ -0,0 +1,265 @@ +#!/usr/bin/env perl + +# 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. + +# +# Parse the header files for OpenBSD and generate a Go usable sysctl MIB. +# +# Build a MIB with each entry being an array containing the level, type and +# a hash that will contain additional entries if the current entry is a node. +# We then walk this MIB and create a flattened sysctl name to OID hash. +# + +use strict; + +if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") { + print STDERR "GOARCH or GOOS not defined in environment\n"; + exit 1; +} + +my $debug = 0; +my %ctls = (); + +my @headers = qw ( + sys/sysctl.h + sys/socket.h + sys/tty.h + sys/malloc.h + sys/mount.h + sys/namei.h + sys/sem.h + sys/shm.h + sys/vmmeter.h + uvm/uvmexp.h + uvm/uvm_param.h + uvm/uvm_swap_encrypt.h + ddb/db_var.h + net/if.h + net/if_pfsync.h + net/pipex.h + netinet/in.h + netinet/icmp_var.h + netinet/igmp_var.h + netinet/ip_ah.h + netinet/ip_carp.h + netinet/ip_divert.h + netinet/ip_esp.h + netinet/ip_ether.h + netinet/ip_gre.h + netinet/ip_ipcomp.h + netinet/ip_ipip.h + netinet/pim_var.h + netinet/tcp_var.h + netinet/udp_var.h + netinet6/in6.h + netinet6/ip6_divert.h + netinet6/pim6_var.h + netinet/icmp6.h + netmpls/mpls.h +); + +my @ctls = qw ( + kern + vm + fs + net + #debug # Special handling required + hw + #machdep # Arch specific + user + ddb + #vfs # Special handling required + fs.posix + kern.forkstat + kern.intrcnt + kern.malloc + kern.nchstats + kern.seminfo + kern.shminfo + kern.timecounter + kern.tty + kern.watchdog + net.bpf + net.ifq + net.inet + net.inet.ah + net.inet.carp + net.inet.divert + net.inet.esp + net.inet.etherip + net.inet.gre + net.inet.icmp + net.inet.igmp + net.inet.ip + net.inet.ip.ifq + net.inet.ipcomp + net.inet.ipip + net.inet.mobileip + net.inet.pfsync + net.inet.pim + net.inet.tcp + net.inet.udp + net.inet6 + net.inet6.divert + net.inet6.ip6 + net.inet6.icmp6 + net.inet6.pim6 + net.inet6.tcp6 + net.inet6.udp6 + net.mpls + net.mpls.ifq + net.key + net.pflow + net.pfsync + net.pipex + net.rt + vm.swapencrypt + #vfsgenctl # Special handling required +); + +# Node name "fixups" +my %ctl_map = ( + "ipproto" => "net.inet", + "net.inet.ipproto" => "net.inet", + "net.inet6.ipv6proto" => "net.inet6", + "net.inet6.ipv6" => "net.inet6.ip6", + "net.inet.icmpv6" => "net.inet6.icmp6", + "net.inet6.divert6" => "net.inet6.divert", + "net.inet6.tcp6" => "net.inet.tcp", + "net.inet6.udp6" => "net.inet.udp", + "mpls" => "net.mpls", + "swpenc" => "vm.swapencrypt" +); + +# Node mappings +my %node_map = ( + "net.inet.ip.ifq" => "net.ifq", + "net.inet.pfsync" => "net.pfsync", + "net.mpls.ifq" => "net.ifq" +); + +my $ctlname; +my %mib = (); +my %sysctl = (); +my $node; + +sub debug() { + print STDERR "$_[0]\n" if $debug; +} + +# Walk the MIB and build a sysctl name to OID mapping. +sub build_sysctl() { + my ($node, $name, $oid) = @_; + my %node = %{$node}; + my @oid = @{$oid}; + + foreach my $key (sort keys %node) { + my @node = @{$node{$key}}; + my $nodename = $name.($name ne '' ? '.' : '').$key; + my @nodeoid = (@oid, $node[0]); + if ($node[1] eq 'CTLTYPE_NODE') { + if (exists $node_map{$nodename}) { + $node = \%mib; + $ctlname = $node_map{$nodename}; + foreach my $part (split /\./, $ctlname) { + $node = \%{@{$$node{$part}}[2]}; + } + } else { + $node = $node[2]; + } + &build_sysctl($node, $nodename, \@nodeoid); + } elsif ($node[1] ne '') { + $sysctl{$nodename} = \@nodeoid; + } + } +} + +foreach my $ctl (@ctls) { + $ctls{$ctl} = $ctl; +} + +# Build MIB +foreach my $header (@headers) { + &debug("Processing $header..."); + open HEADER, "/usr/include/$header" || + print STDERR "Failed to open $header\n"; + while (
) { + if ($_ =~ /^#define\s+(CTL_NAMES)\s+{/ || + $_ =~ /^#define\s+(CTL_(.*)_NAMES)\s+{/ || + $_ =~ /^#define\s+((.*)CTL_NAMES)\s+{/) { + if ($1 eq 'CTL_NAMES') { + # Top level. + $node = \%mib; + } else { + # Node. + my $nodename = lc($2); + if ($header =~ /^netinet\//) { + $ctlname = "net.inet.$nodename"; + } elsif ($header =~ /^netinet6\//) { + $ctlname = "net.inet6.$nodename"; + } elsif ($header =~ /^net\//) { + $ctlname = "net.$nodename"; + } else { + $ctlname = "$nodename"; + $ctlname =~ s/^(fs|net|kern)_/$1\./; + } + if (exists $ctl_map{$ctlname}) { + $ctlname = $ctl_map{$ctlname}; + } + if (not exists $ctls{$ctlname}) { + &debug("Ignoring $ctlname..."); + next; + } + + # Walk down from the top of the MIB. + $node = \%mib; + foreach my $part (split /\./, $ctlname) { + if (not exists $$node{$part}) { + &debug("Missing node $part"); + $$node{$part} = [ 0, '', {} ]; + } + $node = \%{@{$$node{$part}}[2]}; + } + } + + # Populate current node with entries. + my $i = -1; + while (defined($_) && $_ !~ /^}/) { + $_ =
; + $i++ if $_ =~ /{.*}/; + next if $_ !~ /{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}/; + $$node{$1} = [ $i, $2, {} ]; + } + } + } + close HEADER; +} + +&build_sysctl(\%mib, "", []); + +print <>= 32 - stat.Mtim.Nsec >>= 32 - stat.Ctim.Nsec >>= 32 -} - -func Fstat(fd int, stat *Stat_t) error { - err := fstat(fd, stat) - if err != nil { - return err - } - fixStatTimFields(stat) - return nil -} - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { - err := fstatat(dirfd, path, stat, flags) - if err != nil { - return err - } - fixStatTimFields(stat) - return nil -} - -func Lstat(path string, stat *Stat_t) error { - err := lstat(path, stat) - if err != nil { - return err - } - fixStatTimFields(stat) - return nil -} - -func Stat(path string, statptr *Stat_t) error { - err := stat(path, statptr) - if err != nil { - return err - } - fixStatTimFields(statptr) - return nil -} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 212009189..a2e368882 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -144,23 +144,6 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) ( //sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil -} - //sysnb pipe() (r int, w int, err error) func Pipe(p []int) (err error) { diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index 1b6abe123..a7ca1ebea 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -362,21 +362,7 @@ func Getdents(fd int, buf []byte) (n int, err error) { func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { if supportsABI(_ino64First) { - if unsafe.Sizeof(*basep) == 8 { - return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep))) - } - // The freebsd12 syscall needs a 64-bit base. On 32-bit machines - // we can't just use the basep passed in. See #32498. - var base uint64 = uint64(*basep) - n, err = getdirentries_freebsd12(fd, buf, &base) - *basep = uintptr(base) - if base>>32 != 0 { - // We can't stuff the base back into a uintptr, so any - // future calls would be suspect. Generate an error. - // EIO is allowed by getdirentries. - err = EIO - } - return + return getdirentries_freebsd12(fd, buf, basep) } // The old syscall entries are smaller than the new. Use 1/4 of the original @@ -418,22 +404,22 @@ func roundup(x, y int) int { func (s *Stat_t) convertFrom(old *stat_freebsd11_t) { *s = Stat_t{ - Dev: uint64(old.Dev), - Ino: uint64(old.Ino), - Nlink: uint64(old.Nlink), - Mode: old.Mode, - Uid: old.Uid, - Gid: old.Gid, - Rdev: uint64(old.Rdev), - Atim: old.Atim, - Mtim: old.Mtim, - Ctim: old.Ctim, - Btim: old.Btim, - Size: old.Size, - Blocks: old.Blocks, - Blksize: old.Blksize, - Flags: old.Flags, - Gen: uint64(old.Gen), + Dev: uint64(old.Dev), + Ino: uint64(old.Ino), + Nlink: uint64(old.Nlink), + Mode: old.Mode, + Uid: old.Uid, + Gid: old.Gid, + Rdev: uint64(old.Rdev), + Atim: old.Atim, + Mtim: old.Mtim, + Ctim: old.Ctim, + Birthtim: old.Birthtim, + Size: old.Size, + Blocks: old.Blocks, + Blksize: old.Blksize, + Flags: old.Flags, + Gen: uint64(old.Gen), } } @@ -569,7 +555,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) //sys getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) -//sys getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) +//sys getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) //sys Getdtablesize() (size int) //sysnb Getegid() (egid int) //sysnb Geteuid() (uid int) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index c92545ea5..4bb86aa0f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -39,20 +39,6 @@ func Creat(path string, mode uint32) (fd int, err error) { return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) } -//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) -//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) - -func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) { - if pathname == "" { - return fanotifyMark(fd, flags, mask, dirFd, nil) - } - p, err := BytePtrFromString(pathname) - if err != nil { - return err - } - return fanotifyMark(fd, flags, mask, dirFd, p) -} - //sys fchmodat(dirfd int, path string, mode uint32) (err error) func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -109,12 +95,6 @@ func IoctlGetInt(fd int, req uint) (int, error) { return value, err } -func IoctlGetUint32(fd int, req uint) (uint32, error) { - var value uint32 - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { var value Winsize err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) @@ -1010,28 +990,10 @@ func GetsockoptString(fd, level, opt int) (string, error) { return string(buf[:vallen-1]), nil } -func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { - var value TpacketStats - vallen := _Socklen(SizeofTpacketStats) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) { - var value TpacketStatsV3 - vallen := _Socklen(SizeofTpacketStatsV3) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) } -func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - // SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a // socket to filter incoming packets. See 'man 7 socket' for usage information. func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error { @@ -1046,14 +1008,6 @@ func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error { return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter)) } -func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error { - return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) -} - -func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error { - return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) -} - // Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) // KeyctlInt calls keyctl commands in which each argument is an int. @@ -1537,13 +1491,9 @@ func Setgid(uid int) (err error) { return EOPNOTSUPP } -func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { - return signalfd(fd, sigmask, _C__NSIG/8, flags) -} - //sys Setpriority(which int, who int, prio int) (err error) //sys Setxattr(path string, attr string, data []byte, flags int) (err error) -//sys signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4 +//sys Signalfd(fd int, mask *Sigset_t, flags int) = SYS_SIGNALFD4 //sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) //sys Sync() //sys Syncfs(fd int) (err error) @@ -1672,82 +1622,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { return EACCES } -//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT -//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT - -// fileHandle is the argument to nameToHandleAt and openByHandleAt. We -// originally tried to generate it via unix/linux/types.go with "type -// fileHandle C.struct_file_handle" but that generated empty structs -// for mips64 and mips64le. Instead, hard code it for now (it's the -// same everywhere else) until the mips64 generator issue is fixed. -type fileHandle struct { - Bytes uint32 - Type int32 -} - -// FileHandle represents the C struct file_handle used by -// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see -// OpenByHandleAt). -type FileHandle struct { - *fileHandle -} - -// NewFileHandle constructs a FileHandle. -func NewFileHandle(handleType int32, handle []byte) FileHandle { - const hdrSize = unsafe.Sizeof(fileHandle{}) - buf := make([]byte, hdrSize+uintptr(len(handle))) - copy(buf[hdrSize:], handle) - fh := (*fileHandle)(unsafe.Pointer(&buf[0])) - fh.Type = handleType - fh.Bytes = uint32(len(handle)) - return FileHandle{fh} -} - -func (fh *FileHandle) Size() int { return int(fh.fileHandle.Bytes) } -func (fh *FileHandle) Type() int32 { return fh.fileHandle.Type } -func (fh *FileHandle) Bytes() []byte { - n := fh.Size() - if n == 0 { - return nil - } - return (*[1 << 30]byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type)) + 4))[:n:n] -} - -// NameToHandleAt wraps the name_to_handle_at system call; it obtains -// a handle for a path name. -func NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) { - var mid _C_int - // Try first with a small buffer, assuming the handle will - // only be 32 bytes. - size := uint32(32 + unsafe.Sizeof(fileHandle{})) - didResize := false - for { - buf := make([]byte, size) - fh := (*fileHandle)(unsafe.Pointer(&buf[0])) - fh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{})) - err = nameToHandleAt(dirfd, path, fh, &mid, flags) - if err == EOVERFLOW { - if didResize { - // We shouldn't need to resize more than once - return - } - didResize = true - size = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{})) - continue - } - if err != nil { - return - } - return FileHandle{fh}, int(mid), nil - } -} - -// OpenByHandleAt wraps the open_by_handle_at system call; it opens a -// file via a handle as previously returned by NameToHandleAt. -func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) { - return openByHandleAt(mountFD, handle.fileHandle, flags) -} - /* * Unimplemented */ diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go index f62679443..cda355941 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -19,18 +19,12 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: int32(sec), Usec: int32(usec)} } -//sysnb pipe(p *[2]_C_int) (err error) - func Pipe(p []int) (err error) { if len(p) != 2 { return EINVAL } var pp [2]_C_int - // Try pipe2 first for Android O, then try pipe for kernel 2.6.23. err = pipe2(&pp, 0) - if err == ENOSYS { - err = pipe(&pp) - } p[0] = int(pp[0]) p[1] = int(pp[1]) return @@ -272,16 +266,3 @@ func SyncFileRange(fd int, off int64, n int64, flags int) error { // order of their arguments. return armSyncFileRange(fd, flags, off, n) } - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index cb20b15d5..6d5672240 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -208,16 +208,3 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { } return ppoll(&fds[0], len(fds), ts, nil) } - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go index 6230f6405..f23ca451c 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -211,16 +211,3 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) } - -//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) - -func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { - cmdlineLen := len(cmdline) - if cmdlineLen > 0 { - // Account for the additional NULL byte added by - // BytePtrFromString in kexecFileLoad. The kexec_file_load - // syscall expects a NULL-terminated string. - cmdlineLen++ - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 8f4c320eb..5240e16e4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -120,30 +120,9 @@ func Pipe(p []int) (err error) { return } -//sys Getdents(fd int, buf []byte) (n int, err error) +//sys getdents(fd int, buf []byte) (n int, err error) func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - n, err = Getdents(fd, buf) - if err != nil || basep == nil { - return - } - - var off int64 - off, err = Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - *basep = ^uintptr(0) - return - } - *basep = uintptr(off) - if unsafe.Sizeof(*basep) == 8 { - return - } - if off>>4 != 0 { - // We can't stuff the offset back into a uintptr, so any - // future calls would be suspect. Generate an error. - // EIO is allowed by getdirentries. - err = EIO - } - return + return getdents(fd, buf) } const ImplementsGetwd = true diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index 276c93bef..687999549 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -43,23 +43,6 @@ func nametomib(name string) (mib []_C_int, err error) { return nil, EINVAL } -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil -} - func SysctlUvmexp(name string) (*Uvmexp, error) { mib, err := sysctlmib(name) if err != nil { @@ -89,30 +72,9 @@ func Pipe(p []int) (err error) { return } -//sys Getdents(fd int, buf []byte) (n int, err error) +//sys getdents(fd int, buf []byte) (n int, err error) func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - n, err = Getdents(fd, buf) - if err != nil || basep == nil { - return - } - - var off int64 - off, err = Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - *basep = ^uintptr(0) - return - } - *basep = uintptr(off) - if unsafe.Sizeof(*basep) == 8 { - return - } - if off>>4 != 0 { - // We can't stuff the offset back into a uintptr, so any - // future calls would be suspect. Generate an error. - // EIO was allowed by getdirentries. - err = EIO - } - return + return getdents(fd, buf) } const ImplementsGetwd = true diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go deleted file mode 100644 index 0fb39cf5e..000000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +++ /dev/null @@ -1,37 +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 arm64,openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: usec} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 3de37566c..33583a22b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -28,11 +28,6 @@ var ( errENOENT error = syscall.ENOENT ) -var ( - signalNameMapOnce sync.Once - signalNameMap map[string]syscall.Signal -) - // errnoErr returns common boxed Errno values, to prevent // allocations at runtime. func errnoErr(e syscall.Errno) error { @@ -71,19 +66,6 @@ func SignalName(s syscall.Signal) string { return "" } -// SignalNum returns the syscall.Signal for signal named s, -// or 0 if a signal with such name is not found. -// The signal name should start with "SIG". -func SignalNum(s string) syscall.Signal { - signalNameMapOnce.Do(func() { - signalNameMap = make(map[string]syscall.Signal) - for _, signal := range signalList { - signalNameMap[signal.name] = signal.num - } - }) - return signalNameMap[s] -} - // clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. func clen(n []byte) int { i := bytes.IndexByte(n, 0) @@ -294,13 +276,6 @@ func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { return &tv, err } -func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { - var n uint64 - vallen := _Socklen(8) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { var rsa RawSockaddrAny var len _Socklen = SizeofSockaddrAny @@ -351,21 +326,13 @@ func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { } func SetsockoptString(fd, level, opt int, s string) (err error) { - var p unsafe.Pointer - if len(s) > 0 { - p = unsafe.Pointer(&[]byte(s)[0]) - } - return setsockopt(fd, level, opt, p, uintptr(len(s))) + return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s))) } func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) } -func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) -} - func Socket(domain, typ, proto int) (fd int, err error) { if domain == AF_INET6 && SocketDisableIPv6 { return -1, EAFNOSUPPORT @@ -410,22 +377,3 @@ func SetNonblock(fd int, nonblocking bool) (err error) { func Exec(argv0 string, argv []string, envv []string) error { return syscall.Exec(argv0, argv, envv) } - -// Lutimes sets the access and modification times tv on path. If path refers to -// a symlink, it is not dereferenced and the timestamps are set on the symlink. -// If tv is nil, the access and modification times are set to the current time. -// Otherwise tv must contain exactly 2 elements, with access time as the first -// element and modification time as the second element. -func Lutimes(path string, tv []Timeval) error { - if tv == nil { - return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW) - } - if len(tv) != 2 { - return EINVAL - } - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) -} diff --git a/vendor/golang.org/x/sys/unix/types_aix.go b/vendor/golang.org/x/sys/unix/types_aix.go index 40d2beede..25e834940 100644 --- a/vendor/golang.org/x/sys/unix/types_aix.go +++ b/vendor/golang.org/x/sys/unix/types_aix.go @@ -87,6 +87,8 @@ type Mode_t C.mode_t type Timespec C.struct_timespec +type StTimespec C.struct_st_timespec + type Timeval C.struct_timeval type Timeval32 C.struct_timeval32 @@ -131,8 +133,6 @@ 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 @@ -156,18 +156,17 @@ 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 - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - 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 + 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 diff --git a/vendor/golang.org/x/sys/unix/types_darwin.go b/vendor/golang.org/x/sys/unix/types_darwin.go index 155c2e692..9fd2aaa6a 100644 --- a/vendor/golang.org/x/sys/unix/types_darwin.go +++ b/vendor/golang.org/x/sys/unix/types_darwin.go @@ -275,9 +275,3 @@ const ( // 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 index 8aafbe446..4e5e57f9a 100644 --- a/vendor/golang.org/x/sys/unix/types_openbsd.go +++ b/vendor/golang.org/x/sys/unix/types_openbsd.go @@ -274,9 +274,3 @@ type Utsname C.struct_utsname const SizeofUvmexp = C.sizeof_struct_uvmexp type Uvmexp C.struct_uvmexp - -// Clockinfo - -const SizeofClockinfo = C.sizeof_struct_clockinfo - -type Clockinfo C.struct_clockinfo diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go index 1def8a581..4b7b96502 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go @@ -926,8 +926,6 @@ const ( TCSETSF = 0x5404 TCSETSW = 0x5403 TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 TIOC = 0x5400 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go index 03187dea9..ed04fd1b7 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go @@ -3,7 +3,7 @@ // +build ppc64,aix -// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// Created by cgo -godefs - DO NOT EDIT // cgo -godefs -- -maix64 _const.go package unix @@ -926,8 +926,6 @@ const ( TCSETSF = 0x5404 TCSETSW = 0x5403 TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 TIOC = 0x5400 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 881e69f12..cb89df8f5 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x80041270 BLKBSZSET = 0x40041271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,60 +486,6 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 @@ -622,7 +493,6 @@ const ( FFDLY = 0x8000 FLUSHO = 0x1000 FP_XSTATE_MAGIC2 = 0x46505845 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -644,7 +514,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1136,15 +1006,6 @@ const ( MAP_STACK = 0x20000 MAP_SYNC = 0x80000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1273,7 +1134,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1537,12 +1398,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1580,7 +1435,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2051,7 +1905,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2100,8 +1953,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2113,17 +1964,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x13 SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2216,8 +2059,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2391,7 +2232,6 @@ const ( TUNGETVNETBE = 0x800454df TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 TUNSETDEBUG = 0x400454c9 TUNSETFILTEREBPF = 0x800454e1 TUNSETGROUP = 0x400454ce @@ -2419,10 +2259,8 @@ const ( UBI_IOCMKVOL = 0x40986f00 UBI_IOCRMVOL = 0x40046f01 UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 UBI_IOCRSVOL = 0x400c6f02 UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 UBI_IOCVOLCRBLK = 0x40804f07 UBI_IOCVOLRMBLK = 0x4f08 UBI_IOCVOLUP = 0x40084f00 @@ -2571,7 +2409,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 039b007d7..73c9b88ca 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,60 +486,6 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 @@ -622,7 +493,6 @@ const ( FFDLY = 0x8000 FLUSHO = 0x1000 FP_XSTATE_MAGIC2 = 0x46505845 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -644,7 +514,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1136,15 +1006,6 @@ const ( MAP_STACK = 0x20000 MAP_SYNC = 0x80000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1273,7 +1134,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1537,12 +1398,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1580,7 +1435,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2052,7 +1906,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2101,8 +1954,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2114,17 +1965,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x13 SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2217,8 +2060,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2392,7 +2233,6 @@ const ( TUNGETVNETBE = 0x800454df TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 TUNSETDEBUG = 0x400454c9 TUNSETFILTEREBPF = 0x800454e1 TUNSETGROUP = 0x400454ce @@ -2420,10 +2260,8 @@ const ( UBI_IOCMKVOL = 0x40986f00 UBI_IOCRMVOL = 0x40046f01 UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 UBI_IOCRSVOL = 0x400c6f02 UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 UBI_IOCVOLCRBLK = 0x40804f07 UBI_IOCVOLRMBLK = 0x4f08 UBI_IOCVOLUP = 0x40084f00 @@ -2571,7 +2409,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 97ed569a2..f1ef82f57 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x80041270 BLKBSZSET = 0x40041271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1134,15 +1004,6 @@ const ( MAP_STACK = 0x20000 MAP_SYNC = 0x80000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1271,7 +1132,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1535,12 +1396,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1578,7 +1433,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2058,7 +1912,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2107,8 +1960,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2120,17 +1971,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x13 SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2223,8 +2066,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2398,7 +2239,6 @@ const ( TUNGETVNETBE = 0x800454df TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 TUNSETDEBUG = 0x400454c9 TUNSETFILTEREBPF = 0x800454e1 TUNSETGROUP = 0x400454ce @@ -2426,10 +2266,8 @@ const ( UBI_IOCMKVOL = 0x40986f00 UBI_IOCRMVOL = 0x40046f01 UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 UBI_IOCRSVOL = 0x400c6f02 UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 UBI_IOCVOLCRBLK = 0x40804f07 UBI_IOCVOLRMBLK = 0x4f08 UBI_IOCVOLUP = 0x40084f00 @@ -2577,7 +2415,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index d47f3ba6a..cf17c9906 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -563,60 +488,6 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 @@ -624,7 +495,6 @@ const ( FFDLY = 0x8000 FLUSHO = 0x1000 FPSIMD_MAGIC = 0x46508001 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -646,7 +516,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1137,15 +1007,6 @@ const ( MAP_STACK = 0x20000 MAP_SYNC = 0x80000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1274,7 +1135,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1538,12 +1399,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1581,7 +1436,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2042,7 +1896,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2091,8 +1944,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2104,17 +1955,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x13 SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2208,8 +2051,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2383,7 +2224,6 @@ const ( TUNGETVNETBE = 0x800454df TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 TUNSETDEBUG = 0x400454c9 TUNSETFILTEREBPF = 0x800454e1 TUNSETGROUP = 0x400454ce @@ -2411,10 +2251,8 @@ const ( UBI_IOCMKVOL = 0x40986f00 UBI_IOCRMVOL = 0x40046f01 UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 UBI_IOCRSVOL = 0x400c6f02 UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 UBI_IOCVOLCRBLK = 0x40804f07 UBI_IOCVOLRMBLK = 0x4f08 UBI_IOCVOLUP = 0x40084f00 @@ -2562,7 +2400,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 0ae030ee4..380913c4f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x40041270 BLKBSZSET = 0x80041271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1134,15 +1004,6 @@ const ( MAP_SHARED_VALIDATE = 0x3 MAP_STACK = 0x40000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1271,7 +1132,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1535,12 +1396,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1578,7 +1433,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2051,7 +1905,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe @@ -2100,8 +1953,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 SO_RXQ_OVFL = 0x28 @@ -2113,18 +1964,10 @@ const ( SO_SNDBUFFORCE = 0x1f SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 SO_STYLE = 0x1008 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x1008 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2216,8 +2059,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2393,7 +2234,6 @@ const ( TUNGETVNETBE = 0x400454df TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 TUNSETDEBUG = 0x800454c9 TUNSETFILTEREBPF = 0x400454e1 TUNSETGROUP = 0x800454ce @@ -2421,10 +2261,8 @@ const ( UBI_IOCMKVOL = 0x80986f00 UBI_IOCRMVOL = 0x80046f01 UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 UBI_IOCRSVOL = 0x800c6f02 UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 UBI_IOCVOLCRBLK = 0x80804f07 UBI_IOCVOLRMBLK = 0x20004f08 UBI_IOCVOLUP = 0x80084f00 @@ -2573,7 +2411,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 91b49dddb..fb82529ac 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1134,15 +1004,6 @@ const ( MAP_SHARED_VALIDATE = 0x3 MAP_STACK = 0x40000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1271,7 +1132,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1535,12 +1396,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1578,7 +1433,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2051,7 +1905,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe @@ -2100,8 +1953,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 SO_RXQ_OVFL = 0x28 @@ -2113,18 +1964,10 @@ const ( SO_SNDBUFFORCE = 0x1f SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 SO_STYLE = 0x1008 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x1008 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2216,8 +2059,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2393,7 +2234,6 @@ const ( TUNGETVNETBE = 0x400454df TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 TUNSETDEBUG = 0x800454c9 TUNSETFILTEREBPF = 0x400454e1 TUNSETGROUP = 0x800454ce @@ -2421,10 +2261,8 @@ const ( UBI_IOCMKVOL = 0x80986f00 UBI_IOCRMVOL = 0x80046f01 UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 UBI_IOCRSVOL = 0x800c6f02 UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 UBI_IOCVOLCRBLK = 0x80804f07 UBI_IOCVOLRMBLK = 0x20004f08 UBI_IOCVOLUP = 0x80084f00 @@ -2573,7 +2411,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index 7f1ef04eb..677d90456 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1134,15 +1004,6 @@ const ( MAP_SHARED_VALIDATE = 0x3 MAP_STACK = 0x40000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1271,7 +1132,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1535,12 +1396,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1578,7 +1433,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2051,7 +1905,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe @@ -2100,8 +1953,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 SO_RXQ_OVFL = 0x28 @@ -2113,18 +1964,10 @@ const ( SO_SNDBUFFORCE = 0x1f SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 SO_STYLE = 0x1008 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x1008 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2216,8 +2059,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2393,7 +2234,6 @@ const ( TUNGETVNETBE = 0x400454df TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 TUNSETDEBUG = 0x800454c9 TUNSETFILTEREBPF = 0x400454e1 TUNSETGROUP = 0x800454ce @@ -2421,10 +2261,8 @@ const ( UBI_IOCMKVOL = 0x80986f00 UBI_IOCRMVOL = 0x80046f01 UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 UBI_IOCRSVOL = 0x800c6f02 UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 UBI_IOCVOLCRBLK = 0x80804f07 UBI_IOCVOLRMBLK = 0x20004f08 UBI_IOCVOLUP = 0x80084f00 @@ -2573,7 +2411,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index 724a244fd..7ddd09d78 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x40041270 BLKBSZSET = 0x80041271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1134,15 +1004,6 @@ const ( MAP_SHARED_VALIDATE = 0x3 MAP_STACK = 0x40000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1271,7 +1132,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1535,12 +1396,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1578,7 +1433,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2051,7 +1905,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe @@ -2100,8 +1953,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 SO_RXQ_OVFL = 0x28 @@ -2113,18 +1964,10 @@ const ( SO_SNDBUFFORCE = 0x1f SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 SO_STYLE = 0x1008 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x1008 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2216,8 +2059,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2393,7 +2234,6 @@ const ( TUNGETVNETBE = 0x400454df TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 TUNSETDEBUG = 0x800454c9 TUNSETFILTEREBPF = 0x400454e1 TUNSETGROUP = 0x800454ce @@ -2421,10 +2261,8 @@ const ( UBI_IOCMKVOL = 0x80986f00 UBI_IOCRMVOL = 0x80046f01 UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 UBI_IOCRSVOL = 0x800c6f02 UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 UBI_IOCVOLCRBLK = 0x80804f07 UBI_IOCVOLRMBLK = 0x20004f08 UBI_IOCVOLUP = 0x80084f00 @@ -2573,7 +2411,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 250446292..ebaca417b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x3000 CREAD = 0x800 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x100 CS7 = 0x200 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x4000 FFDLY = 0x4000 FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1133,15 +1003,6 @@ const ( MAP_SHARED_VALIDATE = 0x3 MAP_STACK = 0x20000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x2000 MCL_FUTURE = 0x4000 MCL_ONFAULT = 0x8000 @@ -1270,7 +1131,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1537,12 +1398,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1580,7 +1435,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2109,7 +1963,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2158,8 +2011,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x10 SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2171,17 +2022,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x11 SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2272,8 +2115,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2453,7 +2294,6 @@ const ( TUNGETVNETBE = 0x400454df TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 TUNSETDEBUG = 0x800454c9 TUNSETFILTEREBPF = 0x400454e1 TUNSETGROUP = 0x800454ce @@ -2481,10 +2321,8 @@ const ( UBI_IOCMKVOL = 0x80986f00 UBI_IOCRMVOL = 0x80046f01 UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 UBI_IOCRSVOL = 0x800c6f02 UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 UBI_IOCVOLCRBLK = 0x80804f07 UBI_IOCVOLRMBLK = 0x20004f08 UBI_IOCVOLUP = 0x80084f00 @@ -2632,7 +2470,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index e7c49911b..02938cb6e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x3000 CREAD = 0x800 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x100 CS7 = 0x200 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x4000 FFDLY = 0x4000 FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1133,15 +1003,6 @@ const ( MAP_SHARED_VALIDATE = 0x3 MAP_STACK = 0x20000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x2000 MCL_FUTURE = 0x4000 MCL_ONFAULT = 0x8000 @@ -1270,7 +1131,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1537,12 +1398,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1580,7 +1435,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2109,7 +1963,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2158,8 +2011,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x10 SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2171,17 +2022,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x11 SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2272,8 +2115,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2453,7 +2294,6 @@ const ( TUNGETVNETBE = 0x400454df TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 TUNSETDEBUG = 0x800454c9 TUNSETFILTEREBPF = 0x400454e1 TUNSETGROUP = 0x800454ce @@ -2481,10 +2321,8 @@ const ( UBI_IOCMKVOL = 0x80986f00 UBI_IOCRMVOL = 0x80046f01 UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 UBI_IOCRSVOL = 0x800c6f02 UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 UBI_IOCVOLCRBLK = 0x80804f07 UBI_IOCVOLRMBLK = 0x20004f08 UBI_IOCVOLUP = 0x80084f00 @@ -2632,7 +2470,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index 0373d65ae..5aea4b909 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1134,15 +1004,6 @@ const ( MAP_STACK = 0x20000 MAP_SYNC = 0x80000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1271,7 +1132,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1535,12 +1396,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1578,7 +1433,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2039,7 +1893,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2088,8 +1941,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2101,17 +1952,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x13 SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2204,8 +2047,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2379,7 +2220,6 @@ const ( TUNGETVNETBE = 0x800454df TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 TUNSETDEBUG = 0x400454c9 TUNSETFILTEREBPF = 0x800454e1 TUNSETGROUP = 0x400454ce @@ -2407,10 +2247,8 @@ const ( UBI_IOCMKVOL = 0x40986f00 UBI_IOCRMVOL = 0x40046f01 UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 UBI_IOCRSVOL = 0x400c6f02 UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 UBI_IOCVOLCRBLK = 0x40804f07 UBI_IOCVOLRMBLK = 0x4f08 UBI_IOCVOLUP = 0x40084f00 @@ -2558,7 +2396,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index b2ed7ee6a..7f7c2e3e2 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -174,7 +174,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 @@ -197,59 +196,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -257,16 +207,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -280,33 +222,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -390,10 +319,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -561,67 +486,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -643,7 +513,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1134,15 +1004,6 @@ const ( MAP_STACK = 0x20000 MAP_SYNC = 0x80000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 @@ -1271,7 +1132,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1535,12 +1396,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1578,7 +1433,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2112,7 +1966,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x33 SO_ATTACH_REUSEPORT_EBPF = 0x34 SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e SO_BPF_EXTENSIONS = 0x30 SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe @@ -2161,8 +2014,6 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 SO_REUSEADDR = 0x2 SO_REUSEPORT = 0xf SO_RXQ_OVFL = 0x28 @@ -2174,17 +2025,9 @@ const ( SO_SNDBUFFORCE = 0x20 SO_SNDLOWAT = 0x13 SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3d SO_TYPE = 0x3 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2277,8 +2120,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2452,7 +2293,6 @@ const ( TUNGETVNETBE = 0x800454df TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 TUNSETDEBUG = 0x400454c9 TUNSETFILTEREBPF = 0x800454e1 TUNSETGROUP = 0x400454ce @@ -2480,10 +2320,8 @@ const ( UBI_IOCMKVOL = 0x40986f00 UBI_IOCRMVOL = 0x40046f01 UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 UBI_IOCRSVOL = 0x400c6f02 UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 UBI_IOCVOLCRBLK = 0x40804f07 UBI_IOCVOLRMBLK = 0x4f08 UBI_IOCVOLUP = 0x40084f00 @@ -2631,7 +2469,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index 58067c529..968e21fd6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -177,7 +177,6 @@ const ( B9600 = 0xd BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 @@ -200,59 +199,10 @@ const ( BPF_ABS = 0x20 BPF_ADD = 0x0 BPF_ALU = 0x4 - BPF_ALU64 = 0x7 BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -260,16 +210,8 @@ const ( BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 BPF_K = 0x0 BPF_LD = 0x0 BPF_LDX = 0x1 @@ -283,33 +225,20 @@ const ( BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 BPF_MOD = 0x90 - BPF_MOV = 0xb0 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 BPF_RET = 0x6 BPF_RSH = 0x70 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 BPF_ST = 0x2 BPF_STX = 0x3 BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 - BPF_XADD = 0xc0 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 @@ -393,10 +322,6 @@ const ( CRDLY = 0x600 CREAD = 0x80 CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 CS5 = 0x0 CS6 = 0x10 CS7 = 0x20 @@ -565,67 +490,12 @@ const ( FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 @@ -647,7 +517,7 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 + FS_POLICY_FLAGS_VALID = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -1138,15 +1008,6 @@ const ( MAP_SHARED_VALIDATE = 0x3 MAP_STACK = 0x20000 MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x2000 MCL_FUTURE = 0x4000 MCL_ONFAULT = 0x8000 @@ -1275,7 +1136,7 @@ const ( NETLINK_UNUSED = 0x1 NETLINK_USERSOCK = 0x2 NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 + NETNSA_MAX = 0x3 NETNSA_NSID_NOT_ASSIGNED = -0x1 NFNETLINK_V0 = 0x0 NFNLGRP_ACCT_QUOTA = 0x8 @@ -1539,12 +1400,6 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_DUMPABLE = 0x4 PR_SET_ENDIAN = 0x14 @@ -1582,7 +1437,6 @@ const ( PR_SET_TSC = 0x1a PR_SET_UNALIGN = 0x6 PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 PR_SPEC_INDIRECT_BRANCH = 0x1 @@ -2104,7 +1958,6 @@ const ( SO_ATTACH_REUSEPORT_CBPF = 0x35 SO_ATTACH_REUSEPORT_EBPF = 0x36 SO_BINDTODEVICE = 0xd - SO_BINDTOIFINDEX = 0x41 SO_BPF_EXTENSIONS = 0x32 SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0x400 @@ -2153,8 +2006,6 @@ const ( SO_RCVBUFFORCE = 0x100b SO_RCVLOWAT = 0x800 SO_RCVTIMEO = 0x2000 - SO_RCVTIMEO_NEW = 0x44 - SO_RCVTIMEO_OLD = 0x2000 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 SO_RXQ_OVFL = 0x24 @@ -2166,17 +2017,9 @@ const ( SO_SNDBUFFORCE = 0x100a SO_SNDLOWAT = 0x1000 SO_SNDTIMEO = 0x4000 - SO_SNDTIMEO_NEW = 0x45 - SO_SNDTIMEO_OLD = 0x4000 SO_TIMESTAMP = 0x1d SO_TIMESTAMPING = 0x23 - SO_TIMESTAMPING_NEW = 0x43 - SO_TIMESTAMPING_OLD = 0x23 SO_TIMESTAMPNS = 0x21 - SO_TIMESTAMPNS_NEW = 0x42 - SO_TIMESTAMPNS_OLD = 0x21 - SO_TIMESTAMP_NEW = 0x46 - SO_TIMESTAMP_OLD = 0x1d SO_TXTIME = 0x3f SO_TYPE = 0x1008 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 @@ -2268,8 +2111,6 @@ const ( TCOFLUSH = 0x1 TCOOFF = 0x0 TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd @@ -2441,7 +2282,6 @@ const ( TUNGETVNETBE = 0x400454df TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 TUNSETDEBUG = 0x800454c9 TUNSETFILTEREBPF = 0x400454e1 TUNSETGROUP = 0x800454ce @@ -2469,10 +2309,8 @@ const ( UBI_IOCMKVOL = 0x80986f00 UBI_IOCRMVOL = 0x80046f01 UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 UBI_IOCRSVOL = 0x800c6f02 UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 UBI_IOCVOLCRBLK = 0x80804f07 UBI_IOCVOLRMBLK = 0x20004f08 UBI_IOCVOLUP = 0x80084f00 @@ -2620,7 +2458,6 @@ const ( XDP_FLAGS_SKB_MODE = 0x2 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 XDP_MMAP_OFFSETS = 0x1 - XDP_PACKET_HEADROOM = 0x100 XDP_PGOFF_RX_RING = 0x0 XDP_PGOFF_TX_RING = 0x80000000 XDP_RX_RING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go deleted file mode 100644 index ec5f92de8..000000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ /dev/null @@ -1,1789 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc010427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80104277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_FILDROP_CAPTURE = 0x1 - BPF_FILDROP_DROP = 0x2 - BPF_FILDROP_PASS = 0x0 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x6 - CLOCK_MONOTONIC = 0x3 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x4 - CLOCK_UPTIME = 0x5 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCOSFPFLUSH = 0x2000444e - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_USBPCAP = 0xf9 - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PBB = 0x88e7 - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_HARDMTU_LEN = 0xff9b - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_DEVICE = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVL_ENCAPLEN = 0x4 - EVL_PRIO_BITS = 0xd - EVL_PRIO_MAX = 0x7 - EVL_VLID_MASK = 0xfff - EVL_VLID_MAX = 0xffe - EVL_VLID_MIN = 0x1 - EVL_VLID_NULL = 0x0 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_ISATTY = 0xb - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x20 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MBIM = 0xfa - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHOPCOUNT = 0x41 - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPDEFTTL = 0x25 - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IUCLC = 0x1000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_CONCEAL = 0x8000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0xfff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_STACK = 0x4000 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_DOOMED = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x8000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOPERM = 0x20 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x4000000 - MNT_STALLED = 0x100000 - MNT_SWAPPABLE = 0x200000 - MNT_SYNCHRONOUS = 0x2 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x400ffff - MNT_WAIT = 0x1 - MNT_WANTRDWR = 0x2000000 - MNT_WXALLOWED = 0x800 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHANGE = 0x1 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OLCUC = 0x20 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BFD = 0xb - RTAX_BRD = 0x7 - RTAX_DNS = 0xc - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xf - RTAX_NETMASK = 0x2 - RTAX_SEARCH = 0xe - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTAX_STATIC = 0xd - RTA_AUTHOR = 0x40 - RTA_BFD = 0x800 - RTA_BRD = 0x80 - RTA_DNS = 0x1000 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SEARCH = 0x4000 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTA_STATIC = 0x2000 - RTF_ANNOUNCE = 0x4000 - RTF_BFD = 0x1000000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CACHED = 0x20000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_CONNECTED = 0x800000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x110fc08 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_MULTICAST = 0x200 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTM_80211INFO = 0x15 - RTM_ADD = 0x1 - RTM_BFD = 0x12 - RTM_CHANGE = 0x3 - RTM_CHGADDRATTR = 0x14 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_INVALIDATE = 0x11 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_PROPOSAL = 0x13 - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_BITS = 0x8 - RT_TABLEID_MASK = 0xff - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0186941 - SIOCBRDGGFD = 0xc0186952 - SIOCBRDGGHT = 0xc0186951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0186953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0186950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0186946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80186940 - SIOCBRDGSFD = 0x80186952 - SIOCBRDGSHT = 0x80186951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80186953 - SIOCBRDGSPRI = 0x80186950 - SIOCBRDGSPROTO = 0x8018695a - SIOCBRDGSTO = 0x80186945 - SIOCBRDGSTXHC = 0x80186959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc028698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc028698d - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0406938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPAIR = 0xc02069b1 - SIOCGIFPARENT = 0xc02069b3 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFSFFPAGE = 0xc1126939 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYDF = 0xc02069c2 - SIOCGLIFPHYECN = 0xc02069c8 - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGPGRP = 0x40047309 - SIOCGPWE3 = 0xc0206998 - SIOCGPWE3CTRLWORD = 0xc02069dc - SIOCGPWE3FAT = 0xc02069dd - SIOCGPWE3NEIGHBOR = 0xc21869de - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8028698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFLLPRIO = 0x802069b5 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPAIR = 0x802069b0 - SIOCSIFPARENT = 0x802069b2 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYDF = 0x802069c1 - SIOCSLIFPHYECN = 0x802069c7 - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSPGRP = 0x80047308 - SIOCSPWE3CTRLWORD = 0x802069dc - SIOCSPWE3FAT = 0x802069dd - SIOCSPWE3NEIGHBOR = 0x821869de - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - SIOCSWGDPID = 0xc018695b - SIOCSWGMAXFLOW = 0xc0186960 - SIOCSWGMAXGROUP = 0xc018695d - SIOCSWSDPID = 0x8018695c - SIOCSWSPORTNO = 0xc060695f - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_DNS = 0x1000 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_ZEROIZE = 0x2000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCHKVERAUTH = 0x2000741e - TIOCCLRVERAUTH = 0x2000741d - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSETVERAUTH = 0x8004741c - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCUCNTL_CBRK = 0x7a - TIOCUCNTL_SBRK = 0x7b - TOSTOP = 0x400000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x1 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_ANONMIN = 0x7 - VM_LOADAVG = 0x2 - VM_MALLOC_CONF = 0xc - VM_MAXID = 0xd - VM_MAXSLP = 0xa - VM_METER = 0x1 - VM_NKMEMPAGES = 0x6 - VM_PSSTRINGS = 0x3 - VM_SWAPENCRYPT = 0x5 - VM_USPACE = 0xb - VM_UVMEXP = 0x4 - VM_VNODEMIN = 0x9 - VM_VTEXTMIN = 0x8 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 - XCASE = 0x1000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x5c) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5f) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5d) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EOWNERDEAD = syscall.Errno(0x5e) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5f) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "EOPNOTSUPP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disk quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC program not available"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EIPSEC", "IPsec processing failure"}, - {83, "ENOATTR", "attribute not found"}, - {84, "EILSEQ", "illegal byte sequence"}, - {85, "ENOMEDIUM", "no medium found"}, - {86, "EMEDIUMTYPE", "wrong medium type"}, - {87, "EOVERFLOW", "value too large to be stored in data type"}, - {88, "ECANCELED", "operation canceled"}, - {89, "EIDRM", "identifier removed"}, - {90, "ENOMSG", "no message of desired type"}, - {91, "ENOTSUP", "not supported"}, - {92, "EBADMSG", "bad message"}, - {93, "ENOTRECOVERABLE", "state not recoverable"}, - {94, "EOWNERDEAD", "previous owner died"}, - {95, "ELAST", "protocol error"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGTHR", "thread AST"}, -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go index ed657ff1b..79f6e0566 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go @@ -83,8 +83,6 @@ int lstat(uintptr_t, uintptr_t); int pause(); int pread64(int, uintptr_t, size_t, long long); int pwrite64(int, uintptr_t, size_t, long long); -#define c_select select -int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int setregid(int, int); int setreuid(int, int); @@ -105,8 +103,8 @@ int getpeername(int, uintptr_t, uintptr_t); int getsockname(int, uintptr_t, uintptr_t); int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int nrecvmsg(int, uintptr_t, int); -int nsendmsg(int, uintptr_t, int); +int recvmsg(int, uintptr_t, int); +int sendmsg(int, uintptr_t, int); int munmap(uintptr_t, uintptr_t); int madvise(uintptr_t, size_t, int); int mprotect(uintptr_t, size_t, int); @@ -120,8 +118,6 @@ int poll(uintptr_t, int, int); int gettimeofday(uintptr_t, uintptr_t); int time(uintptr_t); int utime(uintptr_t, uintptr_t); -unsigned long long getsystemcfg(int); -int umount(uintptr_t); int getrlimit64(int, uintptr_t); int setrlimit64(int, uintptr_t); long long lseek64(int, long long, int); @@ -859,7 +855,7 @@ func Fchown(fd int, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fstat(fd int, stat *Stat_t) (err error) { +func Fstat(fd int, stat *Stat_t) (err error) { r0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) if r0 == -1 && er != nil { err = er @@ -869,7 +865,7 @@ func fstat(fd int, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { _p0 := uintptr(unsafe.Pointer(C.CString(path))) r0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags)) if r0 == -1 && er != nil { @@ -953,7 +949,7 @@ func Listen(s int, n int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func lstat(path string, stat *Stat_t) (err error) { +func Lstat(path string, stat *Stat_t) (err error) { _p0 := uintptr(unsafe.Pointer(C.CString(path))) r0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) if r0 == -1 && er != nil { @@ -1008,17 +1004,6 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout)))) - n = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask)))) n = int(r0) @@ -1071,9 +1056,9 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func stat(path string, statptr *Stat_t) (err error) { +func Stat(path string, stat *Stat_t) (err error) { _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr)))) + r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) if r0 == -1 && er != nil { err = er } @@ -1240,7 +1225,7 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + r0, er := C.recvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) n = int(r0) if r0 == -1 && er != nil { err = er @@ -1251,7 +1236,7 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + r0, er := C.sendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) n = int(r0) if r0 == -1 && er != nil { err = er @@ -1424,25 +1409,6 @@ func Utime(path string, buf *Utimbuf) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getsystemcfg(label int) (n uint64) { - r0, _ := C.getsystemcfg(C.int(label)) - n = uint64(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func umount(target string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(target))) - r0, er := C.umount(C.uintptr_t(_p0)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Getrlimit(resource int, rlim *Rlimit) (err error) { r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) if r0 == -1 && er != nil { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go index 664b293b4..e645a05cb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go @@ -803,7 +803,7 @@ func Fchown(fd int, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fstat(fd int, stat *Stat_t) (err error) { +func Fstat(fd int, stat *Stat_t) (err error) { _, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat))) if e1 != 0 { err = errnoErr(e1) @@ -813,7 +813,7 @@ func fstat(fd int, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -905,7 +905,7 @@ func Listen(s int, n int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func lstat(path string, stat *Stat_t) (err error) { +func Lstat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -960,17 +960,6 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) n = int(r0) @@ -1023,13 +1012,13 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func stat(path string, statptr *Stat_t) (err error) { +func Stat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr))) + _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) if e1 != 0 { err = errnoErr(e1) } @@ -1200,7 +1189,7 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags) + r0, e1 := callrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1211,7 +1200,7 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags) + r0, e1 := callsendmsg(s, uintptr(unsafe.Pointer(msg)), flags) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1378,29 +1367,6 @@ func Utime(path string, buf *Utimbuf) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getsystemcfg(label int) (n uint64) { - r0, _ := callgetsystemcfg(label) - n = uint64(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func umount(target string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, e1 := callumount(uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Getrlimit(resource int, rlim *Rlimit) (err error) { _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim))) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go index 4b3a8ad7b..0b8eb7210 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go @@ -85,7 +85,6 @@ import ( //go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o" @@ -106,8 +105,8 @@ import ( //go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o" //go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o" //go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.a/shr_64.o" //go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o" //go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o" //go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o" @@ -121,8 +120,6 @@ import ( //go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o" //go:cgo_import_dynamic libc_time time "libc.a/shr_64.o" //go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o" //go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o" @@ -203,7 +200,6 @@ import ( //go:linkname libc_pause libc_pause //go:linkname libc_pread64 libc_pread64 //go:linkname libc_pwrite64 libc_pwrite64 -//go:linkname libc_select libc_select //go:linkname libc_pselect libc_pselect //go:linkname libc_setregid libc_setregid //go:linkname libc_setreuid libc_setreuid @@ -224,8 +220,8 @@ import ( //go:linkname libc_getsockname libc_getsockname //go:linkname libc_recvfrom libc_recvfrom //go:linkname libc_sendto libc_sendto -//go:linkname libc_nrecvmsg libc_nrecvmsg -//go:linkname libc_nsendmsg libc_nsendmsg +//go:linkname libc_recvmsg libc_recvmsg +//go:linkname libc_sendmsg libc_sendmsg //go:linkname libc_munmap libc_munmap //go:linkname libc_madvise libc_madvise //go:linkname libc_mprotect libc_mprotect @@ -239,8 +235,6 @@ import ( //go:linkname libc_gettimeofday libc_gettimeofday //go:linkname libc_time libc_time //go:linkname libc_utime libc_utime -//go:linkname libc_getsystemcfg libc_getsystemcfg -//go:linkname libc_umount libc_umount //go:linkname libc_getrlimit libc_getrlimit //go:linkname libc_setrlimit libc_setrlimit //go:linkname libc_lseek libc_lseek @@ -324,7 +318,6 @@ var ( libc_pause, libc_pread64, libc_pwrite64, - libc_select, libc_pselect, libc_setregid, libc_setreuid, @@ -345,8 +338,8 @@ var ( libc_getsockname, libc_recvfrom, libc_sendto, - libc_nrecvmsg, - libc_nsendmsg, + libc_recvmsg, + libc_sendmsg, libc_munmap, libc_madvise, libc_mprotect, @@ -360,8 +353,6 @@ var ( libc_gettimeofday, libc_time, libc_utime, - libc_getsystemcfg, - libc_umount, libc_getrlimit, libc_setrlimit, libc_lseek, @@ -899,13 +890,6 @@ func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask) return @@ -941,8 +925,8 @@ func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0) +func callstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, stat, 0, 0, 0, 0) return } @@ -1046,15 +1030,15 @@ func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen u // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) +func callrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) +func callsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) return } @@ -1151,20 +1135,6 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) return diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go index cde4dbc5f..e88a44278 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go @@ -83,8 +83,6 @@ int lstat(uintptr_t, uintptr_t); int pause(); int pread64(int, uintptr_t, size_t, long long); int pwrite64(int, uintptr_t, size_t, long long); -#define c_select select -int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int setregid(int, int); int setreuid(int, int); @@ -105,8 +103,8 @@ int getpeername(int, uintptr_t, uintptr_t); int getsockname(int, uintptr_t, uintptr_t); int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); -int nrecvmsg(int, uintptr_t, int); -int nsendmsg(int, uintptr_t, int); +int recvmsg(int, uintptr_t, int); +int sendmsg(int, uintptr_t, int); int munmap(uintptr_t, uintptr_t); int madvise(uintptr_t, size_t, int); int mprotect(uintptr_t, size_t, int); @@ -120,8 +118,6 @@ int poll(uintptr_t, int, int); int gettimeofday(uintptr_t, uintptr_t); int time(uintptr_t); int utime(uintptr_t, uintptr_t); -unsigned long long getsystemcfg(int); -int umount(uintptr_t); int getrlimit(int, uintptr_t); int setrlimit(int, uintptr_t); long long lseek(int, long long, int); @@ -735,14 +731,6 @@ func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask))) e1 = syscall.GetErrno() @@ -783,8 +771,8 @@ func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr))) +func callstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(stat))) e1 = syscall.GetErrno() return } @@ -903,16 +891,16 @@ func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen u // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) +func callrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.recvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) e1 = syscall.GetErrno() return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) +func callsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) e1 = syscall.GetErrno() return } @@ -1023,22 +1011,6 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsystemcfg(C.int(label))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.umount(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim))) e1 = syscall.GetErrno() diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go index 2707c0131..80903e47b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go index 8e3c0cea9..cd250ff0e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go index 641f86a03..290a9c2cb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go index 68fbccf72..c6df9d2e8 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -1019,7 +1019,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 81d90a27e..c8b451000 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe(p *[2]_C_int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index 0c184586b..2aac3184b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 18ef8a626..13c06c281 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,42 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe2(p *[2]_C_int, flags int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { @@ -2370,18 +2309,3 @@ func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { } return } - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index 2fba25d05..737fa8d18 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -2257,18 +2206,3 @@ func pipe2(p *[2]_C_int, flags int) (err error) { } return } - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index c330f4ffa..0a85f3f8d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index 8e9e0098a..ec7007e78 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index c22d62607..c5bb25d96 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index 700a99e97..26ada0478 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index cec4c106c..2da9cb700 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index 677ef5a69..772733d83 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index 565034c54..996eba517 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -2237,18 +2186,3 @@ func pipe2(p *[2]_C_int, flags int) (err error) { } return } - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(cmdline) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index 7feb2c6b6..cb9072a33 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go index 07655c455..5e48a1001 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -14,27 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { - _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fchmodat(dirfd int, path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1381,12 +1360,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) return } @@ -1683,32 +1658,6 @@ func faccessat(dirfd int, path string, mode uint32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go index 7e0582664..642db7670 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdents(fd int, buf []byte) (n int, err error) { +func getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go index d94d076aa..59585fee3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdents(fd int, buf []byte) (n int, err error) { +func getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go index cf5bf3d05..6ec31434b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdents(fd int, buf []byte) (n int, err error) { +func getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index 243a9317c..603d14433 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdents(fd int, buf []byte) (n int, err error) { +func getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go index a9532d078..6a489fac0 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -387,7 +387,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdents(fd int, buf []byte) (n int, err error) { +func getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go index 0cb9f0177..30cba4347 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -387,7 +387,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdents(fd int, buf []byte) (n int, err error) { +func getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index 6fc99b549..fa1beda33 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -387,7 +387,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getdents(fd int, buf []byte) (n int, err error) { +func getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go deleted file mode 100644 index 27878a72b..000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ /dev/null @@ -1,1692 +0,0 @@ -// go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build openbsd,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go index 37dcc74c2..b005031ab 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -1,8 +1,6 @@ // mksysctl_openbsd.pl // Code generated by the command above; DO NOT EDIT. -// +build 386,openbsd - package unix type mibentry struct { diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go index fe6caa6eb..d014451c9 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -1,4 +1,4 @@ -// go run mksysctl_openbsd.go +// mksysctl_openbsd.pl // Code generated by the command above; DO NOT EDIT. // +build amd64,openbsd diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go index 6eb8c0b08..b005031ab 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -1,8 +1,6 @@ -// go run mksysctl_openbsd.go +// mksysctl_openbsd.pl // Code generated by the command above; DO NOT EDIT. -// +build arm,openbsd - package unix type mibentry struct { diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go deleted file mode 100644 index ba4304fd2..000000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +++ /dev/null @@ -1,275 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -// +build arm64,openbsd - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.profile", []_C_int{9, 9}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.ncpuonline", []_C_int{6, 25}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.perfpolicy", []_C_int{6, 23}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.smt", []_C_int{6, 24}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.allowkmem", []_C_int{1, 52}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.audio", []_C_int{1, 84}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cpustats", []_C_int{1, 85}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.global_ptrace", []_C_int{1, 81}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"kern.witnesswatch", []_C_int{1, 53}}, - {"kern.wxabort", []_C_int{1, 74}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, - {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, - {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.malloc_conf", []_C_int{2, 12}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go index 9474974b6..55c3a3294 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build 386,freebsd @@ -118,6 +118,8 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -131,6 +133,10 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } + SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } + SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -158,7 +164,6 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -192,10 +197,13 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } + SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } + SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -228,7 +236,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -250,7 +258,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -285,6 +293,8 @@ const ( SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } + SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -390,7 +400,4 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } - SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go index 48a7beae7..b39be6cb8 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,freebsd @@ -118,6 +118,8 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -131,6 +133,10 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } + SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } + SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -158,7 +164,6 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -192,10 +197,13 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } + SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } + SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -228,7 +236,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -250,7 +258,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -285,6 +293,8 @@ const ( SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } + SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -390,7 +400,4 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } - SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go index 4a6dfd4a7..44ffd4ce5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,freebsd @@ -118,6 +118,8 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -131,6 +133,10 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } + SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } + SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -158,7 +164,6 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -192,10 +197,13 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } + SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } + SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -228,7 +236,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -250,7 +258,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -285,6 +293,8 @@ const ( SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } + SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -390,7 +400,4 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } - SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } - SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go index 3e51af8ed..9f21e9550 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm64,freebsd @@ -7,13 +7,13 @@ package unix const ( // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ SYS_LINK = 9 // { int link(char *path, char *link); } SYS_UNLINK = 10 // { int unlink(char *path); } SYS_CHDIR = 12 // { int chdir(char *path); } @@ -21,20 +21,20 @@ const ( SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } SYS_CHMOD = 15 // { int chmod(char *path, int mode); } SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, \ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } SYS_SETUID = 23 // { int setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t getuid(void); } SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ + SYS_ACCEPT = 30 // { int accept(int s, \ + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ SYS_ACCESS = 33 // { int access(char *path, int amode); } SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } @@ -42,57 +42,56 @@ const ( SYS_KILL = 37 // { int kill(int pid, int signum); } SYS_GETPPID = 39 // { pid_t getppid(void); } SYS_DUP = 41 // { int dup(u_int fd); } - SYS_PIPE = 42 // { int pipe(void); } SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ SYS_REBOOT = 55 // { int reboot(int opt); } SYS_REVOKE = 56 // { int revoke(char *path); } SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ SYS_VFORK = 66 // { int vfork(void); } SYS_SBRK = 69 // { int sbrk(int incr); } SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ SYS_GETPGRP = 81 // { int getpgrp(void); } SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, \ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ + SYS_SOCKET = 97 // { int socket(int domain, int type, \ + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, \ + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ + SYS_GETRUSAGE = 117 // { int getrusage(int who, \ + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } @@ -100,24 +99,24 @@ const ( SYS_RENAME = 128 // { int rename(char *from, char *to); } SYS_FLOCK = 131 // { int flock(int fd, int how); } SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_UTIMES = 138 // { int utimes(char *path, \ + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, \ + SYS_GETFH = 161 // { int getfh(char *fname, \ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, \ + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, \ + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, \ SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -128,269 +127,269 @@ const ( SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } SYS_UNDELETE = 205 // { int undelete(char *path); } SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, \ + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, \ + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, \ + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, \ SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, \ + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ + SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, \ + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ SYS_ISSETUGID = 253 // { int issetugid(void); } SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, \ + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_LUTIMES = 276 // { int lutimes(char *path, \ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } + SYS_MODSTAT = 301 // { int modstat(int modid, \ SYS_MODFNEXT = 302 // { int modfnext(int modid); } SYS_MODFIND = 303 // { int modfind(const char *name); } SYS_KLDLOAD = 304 // { int kldload(const char *file); } SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } SYS_KLDFIND = 306 // { int kldfind(const char *file); } SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend( \ + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, \ SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } SYS_SCHED_YIELD = 331 // { int sched_yield (void); } SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( \ + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_KEVENT = 363 // { int kevent(int fd, \ + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ SYS___SETUGID = 374 // { int __setugid(int flag); } SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ + SYS_KENV = 390 // { int kenv(int what, const char *name, \ + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ + SYS_STATFS = 396 // { int statfs(char *path, \ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, \ + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, \ SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } - SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ + SYS_SIGACTION = 416 // { int sigaction(int sig, \ + SYS_SIGRETURN = 417 // { int sigreturn( \ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext( \ + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } - SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, \ + SYS_THR_SUSPEND = 442 // { int thr_suspend( \ SYS_THR_WAKE = 443 // { int thr_wake(long id); } SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_AUDIT = 445 // { int audit(const void *record, \ + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ SYS_GETAUID = 447 // { int getauid(uid_t *auid); } SYS_SETAUID = 448 // { int setauid(uid_t *auid); } SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, \ + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, \ + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, \ + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, \ + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, \ SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, \ + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, \ + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, \ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ SYS_CAP_ENTER = 516 // { int cap_enter(void); } SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } - SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ + SYS_ACCEPT4 = 541 // { int accept4(int s, \ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } - SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } - SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } - SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } - SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ + SYS_FUTIMENS = 546 // { int futimens(int fd, \ + SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, \ + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, \ SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index 33b6e4d1a..8d17873de 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -6,421 +6,387 @@ package unix const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86OLD = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_VM86 = 166 - SYS_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_SET_THREAD_AREA = 243 - SYS_GET_THREAD_AREA = 244 - SYS_IO_SETUP = 245 - SYS_IO_DESTROY = 246 - SYS_IO_GETEVENTS = 247 - SYS_IO_SUBMIT = 248 - SYS_IO_CANCEL = 249 - SYS_FADVISE64 = 250 - SYS_EXIT_GROUP = 252 - SYS_LOOKUP_DCOOKIE = 253 - SYS_EPOLL_CREATE = 254 - SYS_EPOLL_CTL = 255 - SYS_EPOLL_WAIT = 256 - SYS_REMAP_FILE_PAGES = 257 - SYS_SET_TID_ADDRESS = 258 - SYS_TIMER_CREATE = 259 - SYS_TIMER_SETTIME = 260 - SYS_TIMER_GETTIME = 261 - SYS_TIMER_GETOVERRUN = 262 - SYS_TIMER_DELETE = 263 - SYS_CLOCK_SETTIME = 264 - SYS_CLOCK_GETTIME = 265 - SYS_CLOCK_GETRES = 266 - SYS_CLOCK_NANOSLEEP = 267 - SYS_STATFS64 = 268 - SYS_FSTATFS64 = 269 - SYS_TGKILL = 270 - SYS_UTIMES = 271 - SYS_FADVISE64_64 = 272 - SYS_VSERVER = 273 - SYS_MBIND = 274 - SYS_GET_MEMPOLICY = 275 - SYS_SET_MEMPOLICY = 276 - SYS_MQ_OPEN = 277 - SYS_MQ_UNLINK = 278 - SYS_MQ_TIMEDSEND = 279 - SYS_MQ_TIMEDRECEIVE = 280 - SYS_MQ_NOTIFY = 281 - SYS_MQ_GETSETATTR = 282 - SYS_KEXEC_LOAD = 283 - SYS_WAITID = 284 - SYS_ADD_KEY = 286 - SYS_REQUEST_KEY = 287 - SYS_KEYCTL = 288 - SYS_IOPRIO_SET = 289 - SYS_IOPRIO_GET = 290 - SYS_INOTIFY_INIT = 291 - SYS_INOTIFY_ADD_WATCH = 292 - SYS_INOTIFY_RM_WATCH = 293 - SYS_MIGRATE_PAGES = 294 - SYS_OPENAT = 295 - SYS_MKDIRAT = 296 - SYS_MKNODAT = 297 - SYS_FCHOWNAT = 298 - SYS_FUTIMESAT = 299 - SYS_FSTATAT64 = 300 - SYS_UNLINKAT = 301 - SYS_RENAMEAT = 302 - SYS_LINKAT = 303 - SYS_SYMLINKAT = 304 - SYS_READLINKAT = 305 - SYS_FCHMODAT = 306 - SYS_FACCESSAT = 307 - SYS_PSELECT6 = 308 - SYS_PPOLL = 309 - SYS_UNSHARE = 310 - SYS_SET_ROBUST_LIST = 311 - SYS_GET_ROBUST_LIST = 312 - SYS_SPLICE = 313 - SYS_SYNC_FILE_RANGE = 314 - SYS_TEE = 315 - SYS_VMSPLICE = 316 - SYS_MOVE_PAGES = 317 - SYS_GETCPU = 318 - SYS_EPOLL_PWAIT = 319 - SYS_UTIMENSAT = 320 - SYS_SIGNALFD = 321 - SYS_TIMERFD_CREATE = 322 - SYS_EVENTFD = 323 - SYS_FALLOCATE = 324 - SYS_TIMERFD_SETTIME = 325 - SYS_TIMERFD_GETTIME = 326 - SYS_SIGNALFD4 = 327 - SYS_EVENTFD2 = 328 - SYS_EPOLL_CREATE1 = 329 - SYS_DUP3 = 330 - SYS_PIPE2 = 331 - SYS_INOTIFY_INIT1 = 332 - SYS_PREADV = 333 - SYS_PWRITEV = 334 - SYS_RT_TGSIGQUEUEINFO = 335 - SYS_PERF_EVENT_OPEN = 336 - SYS_RECVMMSG = 337 - SYS_FANOTIFY_INIT = 338 - SYS_FANOTIFY_MARK = 339 - SYS_PRLIMIT64 = 340 - SYS_NAME_TO_HANDLE_AT = 341 - SYS_OPEN_BY_HANDLE_AT = 342 - SYS_CLOCK_ADJTIME = 343 - SYS_SYNCFS = 344 - SYS_SENDMMSG = 345 - SYS_SETNS = 346 - SYS_PROCESS_VM_READV = 347 - SYS_PROCESS_VM_WRITEV = 348 - SYS_KCMP = 349 - SYS_FINIT_MODULE = 350 - SYS_SCHED_SETATTR = 351 - SYS_SCHED_GETATTR = 352 - SYS_RENAMEAT2 = 353 - SYS_SECCOMP = 354 - SYS_GETRANDOM = 355 - SYS_MEMFD_CREATE = 356 - SYS_BPF = 357 - SYS_EXECVEAT = 358 - SYS_SOCKET = 359 - SYS_SOCKETPAIR = 360 - SYS_BIND = 361 - SYS_CONNECT = 362 - SYS_LISTEN = 363 - SYS_ACCEPT4 = 364 - SYS_GETSOCKOPT = 365 - SYS_SETSOCKOPT = 366 - SYS_GETSOCKNAME = 367 - SYS_GETPEERNAME = 368 - SYS_SENDTO = 369 - SYS_SENDMSG = 370 - SYS_RECVFROM = 371 - SYS_RECVMSG = 372 - SYS_SHUTDOWN = 373 - SYS_USERFAULTFD = 374 - SYS_MEMBARRIER = 375 - SYS_MLOCK2 = 376 - SYS_COPY_FILE_RANGE = 377 - SYS_PREADV2 = 378 - SYS_PWRITEV2 = 379 - SYS_PKEY_MPROTECT = 380 - SYS_PKEY_ALLOC = 381 - SYS_PKEY_FREE = 382 - SYS_STATX = 383 - SYS_ARCH_PRCTL = 384 - SYS_IO_PGETEVENTS = 385 - SYS_RSEQ = 386 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_CLOCK_GETTIME64 = 403 - SYS_CLOCK_SETTIME64 = 404 - SYS_CLOCK_ADJTIME64 = 405 - SYS_CLOCK_GETRES_TIME64 = 406 - SYS_CLOCK_NANOSLEEP_TIME64 = 407 - SYS_TIMER_GETTIME64 = 408 - SYS_TIMER_SETTIME64 = 409 - SYS_TIMERFD_GETTIME64 = 410 - SYS_TIMERFD_SETTIME64 = 411 - SYS_UTIMENSAT_TIME64 = 412 - SYS_PSELECT6_TIME64 = 413 - SYS_PPOLL_TIME64 = 414 - SYS_IO_PGETEVENTS_TIME64 = 416 - SYS_RECVMMSG_TIME64 = 417 - SYS_MQ_TIMEDSEND_TIME64 = 418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 419 - SYS_SEMTIMEDOP_TIME64 = 420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 421 - SYS_FUTEX_TIME64 = 422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86OLD = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_VM86 = 166 + SYS_QUERY_MODULE = 167 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_GETPMSG = 188 + SYS_PUTPMSG = 189 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_PIVOT_ROOT = 217 + SYS_MINCORE = 218 + SYS_MADVISE = 219 + SYS_GETDENTS64 = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_SET_THREAD_AREA = 243 + SYS_GET_THREAD_AREA = 244 + SYS_IO_SETUP = 245 + SYS_IO_DESTROY = 246 + SYS_IO_GETEVENTS = 247 + SYS_IO_SUBMIT = 248 + SYS_IO_CANCEL = 249 + SYS_FADVISE64 = 250 + SYS_EXIT_GROUP = 252 + SYS_LOOKUP_DCOOKIE = 253 + SYS_EPOLL_CREATE = 254 + SYS_EPOLL_CTL = 255 + SYS_EPOLL_WAIT = 256 + SYS_REMAP_FILE_PAGES = 257 + SYS_SET_TID_ADDRESS = 258 + SYS_TIMER_CREATE = 259 + SYS_TIMER_SETTIME = 260 + SYS_TIMER_GETTIME = 261 + SYS_TIMER_GETOVERRUN = 262 + SYS_TIMER_DELETE = 263 + SYS_CLOCK_SETTIME = 264 + SYS_CLOCK_GETTIME = 265 + SYS_CLOCK_GETRES = 266 + SYS_CLOCK_NANOSLEEP = 267 + SYS_STATFS64 = 268 + SYS_FSTATFS64 = 269 + SYS_TGKILL = 270 + SYS_UTIMES = 271 + SYS_FADVISE64_64 = 272 + SYS_VSERVER = 273 + SYS_MBIND = 274 + SYS_GET_MEMPOLICY = 275 + SYS_SET_MEMPOLICY = 276 + SYS_MQ_OPEN = 277 + SYS_MQ_UNLINK = 278 + SYS_MQ_TIMEDSEND = 279 + SYS_MQ_TIMEDRECEIVE = 280 + SYS_MQ_NOTIFY = 281 + SYS_MQ_GETSETATTR = 282 + SYS_KEXEC_LOAD = 283 + SYS_WAITID = 284 + SYS_ADD_KEY = 286 + SYS_REQUEST_KEY = 287 + SYS_KEYCTL = 288 + SYS_IOPRIO_SET = 289 + SYS_IOPRIO_GET = 290 + SYS_INOTIFY_INIT = 291 + SYS_INOTIFY_ADD_WATCH = 292 + SYS_INOTIFY_RM_WATCH = 293 + SYS_MIGRATE_PAGES = 294 + SYS_OPENAT = 295 + SYS_MKDIRAT = 296 + SYS_MKNODAT = 297 + SYS_FCHOWNAT = 298 + SYS_FUTIMESAT = 299 + SYS_FSTATAT64 = 300 + SYS_UNLINKAT = 301 + SYS_RENAMEAT = 302 + SYS_LINKAT = 303 + SYS_SYMLINKAT = 304 + SYS_READLINKAT = 305 + SYS_FCHMODAT = 306 + SYS_FACCESSAT = 307 + SYS_PSELECT6 = 308 + SYS_PPOLL = 309 + SYS_UNSHARE = 310 + SYS_SET_ROBUST_LIST = 311 + SYS_GET_ROBUST_LIST = 312 + SYS_SPLICE = 313 + SYS_SYNC_FILE_RANGE = 314 + SYS_TEE = 315 + SYS_VMSPLICE = 316 + SYS_MOVE_PAGES = 317 + SYS_GETCPU = 318 + SYS_EPOLL_PWAIT = 319 + SYS_UTIMENSAT = 320 + SYS_SIGNALFD = 321 + SYS_TIMERFD_CREATE = 322 + SYS_EVENTFD = 323 + SYS_FALLOCATE = 324 + SYS_TIMERFD_SETTIME = 325 + SYS_TIMERFD_GETTIME = 326 + SYS_SIGNALFD4 = 327 + SYS_EVENTFD2 = 328 + SYS_EPOLL_CREATE1 = 329 + SYS_DUP3 = 330 + SYS_PIPE2 = 331 + SYS_INOTIFY_INIT1 = 332 + SYS_PREADV = 333 + SYS_PWRITEV = 334 + SYS_RT_TGSIGQUEUEINFO = 335 + SYS_PERF_EVENT_OPEN = 336 + SYS_RECVMMSG = 337 + SYS_FANOTIFY_INIT = 338 + SYS_FANOTIFY_MARK = 339 + SYS_PRLIMIT64 = 340 + SYS_NAME_TO_HANDLE_AT = 341 + SYS_OPEN_BY_HANDLE_AT = 342 + SYS_CLOCK_ADJTIME = 343 + SYS_SYNCFS = 344 + SYS_SENDMMSG = 345 + SYS_SETNS = 346 + SYS_PROCESS_VM_READV = 347 + SYS_PROCESS_VM_WRITEV = 348 + SYS_KCMP = 349 + SYS_FINIT_MODULE = 350 + SYS_SCHED_SETATTR = 351 + SYS_SCHED_GETATTR = 352 + SYS_RENAMEAT2 = 353 + SYS_SECCOMP = 354 + SYS_GETRANDOM = 355 + SYS_MEMFD_CREATE = 356 + SYS_BPF = 357 + SYS_EXECVEAT = 358 + SYS_SOCKET = 359 + SYS_SOCKETPAIR = 360 + SYS_BIND = 361 + SYS_CONNECT = 362 + SYS_LISTEN = 363 + SYS_ACCEPT4 = 364 + SYS_GETSOCKOPT = 365 + SYS_SETSOCKOPT = 366 + SYS_GETSOCKNAME = 367 + SYS_GETPEERNAME = 368 + SYS_SENDTO = 369 + SYS_SENDMSG = 370 + SYS_RECVFROM = 371 + SYS_RECVMSG = 372 + SYS_SHUTDOWN = 373 + SYS_USERFAULTFD = 374 + SYS_MEMBARRIER = 375 + SYS_MLOCK2 = 376 + SYS_COPY_FILE_RANGE = 377 + SYS_PREADV2 = 378 + SYS_PWRITEV2 = 379 + SYS_PKEY_MPROTECT = 380 + SYS_PKEY_ALLOC = 381 + SYS_PKEY_FREE = 382 + SYS_STATX = 383 + SYS_ARCH_PRCTL = 384 + SYS_IO_PGETEVENTS = 385 + SYS_RSEQ = 386 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index 9ba207847..b3d8ad79d 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -341,8 +341,4 @@ const ( SYS_STATX = 332 SYS_IO_PGETEVENTS = 333 SYS_RSEQ = 334 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index 94f68f101..e092822fb 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -6,385 +6,359 @@ package unix const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_PTRACE = 26 - SYS_PAUSE = 29 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_SETPGID = 57 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SYMLINK = 83 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_VHANGUP = 111 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_GETDENTS64 = 217 - SYS_PIVOT_ROOT = 218 - SYS_MINCORE = 219 - SYS_MADVISE = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_IO_SETUP = 243 - SYS_IO_DESTROY = 244 - SYS_IO_GETEVENTS = 245 - SYS_IO_SUBMIT = 246 - SYS_IO_CANCEL = 247 - SYS_EXIT_GROUP = 248 - SYS_LOOKUP_DCOOKIE = 249 - SYS_EPOLL_CREATE = 250 - SYS_EPOLL_CTL = 251 - SYS_EPOLL_WAIT = 252 - SYS_REMAP_FILE_PAGES = 253 - SYS_SET_TID_ADDRESS = 256 - SYS_TIMER_CREATE = 257 - SYS_TIMER_SETTIME = 258 - SYS_TIMER_GETTIME = 259 - SYS_TIMER_GETOVERRUN = 260 - SYS_TIMER_DELETE = 261 - SYS_CLOCK_SETTIME = 262 - SYS_CLOCK_GETTIME = 263 - SYS_CLOCK_GETRES = 264 - SYS_CLOCK_NANOSLEEP = 265 - SYS_STATFS64 = 266 - SYS_FSTATFS64 = 267 - SYS_TGKILL = 268 - SYS_UTIMES = 269 - SYS_ARM_FADVISE64_64 = 270 - SYS_PCICONFIG_IOBASE = 271 - SYS_PCICONFIG_READ = 272 - SYS_PCICONFIG_WRITE = 273 - SYS_MQ_OPEN = 274 - SYS_MQ_UNLINK = 275 - SYS_MQ_TIMEDSEND = 276 - SYS_MQ_TIMEDRECEIVE = 277 - SYS_MQ_NOTIFY = 278 - SYS_MQ_GETSETATTR = 279 - SYS_WAITID = 280 - SYS_SOCKET = 281 - SYS_BIND = 282 - SYS_CONNECT = 283 - SYS_LISTEN = 284 - SYS_ACCEPT = 285 - SYS_GETSOCKNAME = 286 - SYS_GETPEERNAME = 287 - SYS_SOCKETPAIR = 288 - SYS_SEND = 289 - SYS_SENDTO = 290 - SYS_RECV = 291 - SYS_RECVFROM = 292 - SYS_SHUTDOWN = 293 - SYS_SETSOCKOPT = 294 - SYS_GETSOCKOPT = 295 - SYS_SENDMSG = 296 - SYS_RECVMSG = 297 - SYS_SEMOP = 298 - SYS_SEMGET = 299 - SYS_SEMCTL = 300 - SYS_MSGSND = 301 - SYS_MSGRCV = 302 - SYS_MSGGET = 303 - SYS_MSGCTL = 304 - SYS_SHMAT = 305 - SYS_SHMDT = 306 - SYS_SHMGET = 307 - SYS_SHMCTL = 308 - SYS_ADD_KEY = 309 - SYS_REQUEST_KEY = 310 - SYS_KEYCTL = 311 - SYS_SEMTIMEDOP = 312 - SYS_VSERVER = 313 - SYS_IOPRIO_SET = 314 - SYS_IOPRIO_GET = 315 - SYS_INOTIFY_INIT = 316 - SYS_INOTIFY_ADD_WATCH = 317 - SYS_INOTIFY_RM_WATCH = 318 - SYS_MBIND = 319 - SYS_GET_MEMPOLICY = 320 - SYS_SET_MEMPOLICY = 321 - SYS_OPENAT = 322 - SYS_MKDIRAT = 323 - SYS_MKNODAT = 324 - SYS_FCHOWNAT = 325 - SYS_FUTIMESAT = 326 - SYS_FSTATAT64 = 327 - SYS_UNLINKAT = 328 - SYS_RENAMEAT = 329 - SYS_LINKAT = 330 - SYS_SYMLINKAT = 331 - SYS_READLINKAT = 332 - SYS_FCHMODAT = 333 - SYS_FACCESSAT = 334 - SYS_PSELECT6 = 335 - SYS_PPOLL = 336 - SYS_UNSHARE = 337 - SYS_SET_ROBUST_LIST = 338 - SYS_GET_ROBUST_LIST = 339 - SYS_SPLICE = 340 - SYS_ARM_SYNC_FILE_RANGE = 341 - SYS_TEE = 342 - SYS_VMSPLICE = 343 - SYS_MOVE_PAGES = 344 - SYS_GETCPU = 345 - SYS_EPOLL_PWAIT = 346 - SYS_KEXEC_LOAD = 347 - SYS_UTIMENSAT = 348 - SYS_SIGNALFD = 349 - SYS_TIMERFD_CREATE = 350 - SYS_EVENTFD = 351 - SYS_FALLOCATE = 352 - SYS_TIMERFD_SETTIME = 353 - SYS_TIMERFD_GETTIME = 354 - SYS_SIGNALFD4 = 355 - SYS_EVENTFD2 = 356 - SYS_EPOLL_CREATE1 = 357 - SYS_DUP3 = 358 - SYS_PIPE2 = 359 - SYS_INOTIFY_INIT1 = 360 - SYS_PREADV = 361 - SYS_PWRITEV = 362 - SYS_RT_TGSIGQUEUEINFO = 363 - SYS_PERF_EVENT_OPEN = 364 - SYS_RECVMMSG = 365 - SYS_ACCEPT4 = 366 - SYS_FANOTIFY_INIT = 367 - SYS_FANOTIFY_MARK = 368 - SYS_PRLIMIT64 = 369 - SYS_NAME_TO_HANDLE_AT = 370 - SYS_OPEN_BY_HANDLE_AT = 371 - SYS_CLOCK_ADJTIME = 372 - SYS_SYNCFS = 373 - SYS_SENDMMSG = 374 - SYS_SETNS = 375 - SYS_PROCESS_VM_READV = 376 - SYS_PROCESS_VM_WRITEV = 377 - SYS_KCMP = 378 - SYS_FINIT_MODULE = 379 - SYS_SCHED_SETATTR = 380 - SYS_SCHED_GETATTR = 381 - SYS_RENAMEAT2 = 382 - SYS_SECCOMP = 383 - SYS_GETRANDOM = 384 - SYS_MEMFD_CREATE = 385 - SYS_BPF = 386 - SYS_EXECVEAT = 387 - SYS_USERFAULTFD = 388 - SYS_MEMBARRIER = 389 - SYS_MLOCK2 = 390 - SYS_COPY_FILE_RANGE = 391 - SYS_PREADV2 = 392 - SYS_PWRITEV2 = 393 - SYS_PKEY_MPROTECT = 394 - SYS_PKEY_ALLOC = 395 - SYS_PKEY_FREE = 396 - SYS_STATX = 397 - SYS_RSEQ = 398 - SYS_IO_PGETEVENTS = 399 - SYS_MIGRATE_PAGES = 400 - SYS_KEXEC_FILE_LOAD = 401 - SYS_CLOCK_GETTIME64 = 403 - SYS_CLOCK_SETTIME64 = 404 - SYS_CLOCK_ADJTIME64 = 405 - SYS_CLOCK_GETRES_TIME64 = 406 - SYS_CLOCK_NANOSLEEP_TIME64 = 407 - SYS_TIMER_GETTIME64 = 408 - SYS_TIMER_SETTIME64 = 409 - SYS_TIMERFD_GETTIME64 = 410 - SYS_TIMERFD_SETTIME64 = 411 - SYS_UTIMENSAT_TIME64 = 412 - SYS_PSELECT6_TIME64 = 413 - SYS_PPOLL_TIME64 = 414 - SYS_IO_PGETEVENTS_TIME64 = 416 - SYS_RECVMMSG_TIME64 = 417 - SYS_MQ_TIMEDSEND_TIME64 = 418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 419 - SYS_SEMTIMEDOP_TIME64 = 420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 421 - SYS_FUTEX_TIME64 = 422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_PTRACE = 26 + SYS_PAUSE = 29 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_SETPGID = 57 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SYMLINK = 83 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_VHANGUP = 111 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_GETDENTS64 = 217 + SYS_PIVOT_ROOT = 218 + SYS_MINCORE = 219 + SYS_MADVISE = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_IO_SETUP = 243 + SYS_IO_DESTROY = 244 + SYS_IO_GETEVENTS = 245 + SYS_IO_SUBMIT = 246 + SYS_IO_CANCEL = 247 + SYS_EXIT_GROUP = 248 + SYS_LOOKUP_DCOOKIE = 249 + SYS_EPOLL_CREATE = 250 + SYS_EPOLL_CTL = 251 + SYS_EPOLL_WAIT = 252 + SYS_REMAP_FILE_PAGES = 253 + SYS_SET_TID_ADDRESS = 256 + SYS_TIMER_CREATE = 257 + SYS_TIMER_SETTIME = 258 + SYS_TIMER_GETTIME = 259 + SYS_TIMER_GETOVERRUN = 260 + SYS_TIMER_DELETE = 261 + SYS_CLOCK_SETTIME = 262 + SYS_CLOCK_GETTIME = 263 + SYS_CLOCK_GETRES = 264 + SYS_CLOCK_NANOSLEEP = 265 + SYS_STATFS64 = 266 + SYS_FSTATFS64 = 267 + SYS_TGKILL = 268 + SYS_UTIMES = 269 + SYS_ARM_FADVISE64_64 = 270 + SYS_PCICONFIG_IOBASE = 271 + SYS_PCICONFIG_READ = 272 + SYS_PCICONFIG_WRITE = 273 + SYS_MQ_OPEN = 274 + SYS_MQ_UNLINK = 275 + SYS_MQ_TIMEDSEND = 276 + SYS_MQ_TIMEDRECEIVE = 277 + SYS_MQ_NOTIFY = 278 + SYS_MQ_GETSETATTR = 279 + SYS_WAITID = 280 + SYS_SOCKET = 281 + SYS_BIND = 282 + SYS_CONNECT = 283 + SYS_LISTEN = 284 + SYS_ACCEPT = 285 + SYS_GETSOCKNAME = 286 + SYS_GETPEERNAME = 287 + SYS_SOCKETPAIR = 288 + SYS_SEND = 289 + SYS_SENDTO = 290 + SYS_RECV = 291 + SYS_RECVFROM = 292 + SYS_SHUTDOWN = 293 + SYS_SETSOCKOPT = 294 + SYS_GETSOCKOPT = 295 + SYS_SENDMSG = 296 + SYS_RECVMSG = 297 + SYS_SEMOP = 298 + SYS_SEMGET = 299 + SYS_SEMCTL = 300 + SYS_MSGSND = 301 + SYS_MSGRCV = 302 + SYS_MSGGET = 303 + SYS_MSGCTL = 304 + SYS_SHMAT = 305 + SYS_SHMDT = 306 + SYS_SHMGET = 307 + SYS_SHMCTL = 308 + SYS_ADD_KEY = 309 + SYS_REQUEST_KEY = 310 + SYS_KEYCTL = 311 + SYS_SEMTIMEDOP = 312 + SYS_VSERVER = 313 + SYS_IOPRIO_SET = 314 + SYS_IOPRIO_GET = 315 + SYS_INOTIFY_INIT = 316 + SYS_INOTIFY_ADD_WATCH = 317 + SYS_INOTIFY_RM_WATCH = 318 + SYS_MBIND = 319 + SYS_GET_MEMPOLICY = 320 + SYS_SET_MEMPOLICY = 321 + SYS_OPENAT = 322 + SYS_MKDIRAT = 323 + SYS_MKNODAT = 324 + SYS_FCHOWNAT = 325 + SYS_FUTIMESAT = 326 + SYS_FSTATAT64 = 327 + SYS_UNLINKAT = 328 + SYS_RENAMEAT = 329 + SYS_LINKAT = 330 + SYS_SYMLINKAT = 331 + SYS_READLINKAT = 332 + SYS_FCHMODAT = 333 + SYS_FACCESSAT = 334 + SYS_PSELECT6 = 335 + SYS_PPOLL = 336 + SYS_UNSHARE = 337 + SYS_SET_ROBUST_LIST = 338 + SYS_GET_ROBUST_LIST = 339 + SYS_SPLICE = 340 + SYS_ARM_SYNC_FILE_RANGE = 341 + SYS_TEE = 342 + SYS_VMSPLICE = 343 + SYS_MOVE_PAGES = 344 + SYS_GETCPU = 345 + SYS_EPOLL_PWAIT = 346 + SYS_KEXEC_LOAD = 347 + SYS_UTIMENSAT = 348 + SYS_SIGNALFD = 349 + SYS_TIMERFD_CREATE = 350 + SYS_EVENTFD = 351 + SYS_FALLOCATE = 352 + SYS_TIMERFD_SETTIME = 353 + SYS_TIMERFD_GETTIME = 354 + SYS_SIGNALFD4 = 355 + SYS_EVENTFD2 = 356 + SYS_EPOLL_CREATE1 = 357 + SYS_DUP3 = 358 + SYS_PIPE2 = 359 + SYS_INOTIFY_INIT1 = 360 + SYS_PREADV = 361 + SYS_PWRITEV = 362 + SYS_RT_TGSIGQUEUEINFO = 363 + SYS_PERF_EVENT_OPEN = 364 + SYS_RECVMMSG = 365 + SYS_ACCEPT4 = 366 + SYS_FANOTIFY_INIT = 367 + SYS_FANOTIFY_MARK = 368 + SYS_PRLIMIT64 = 369 + SYS_NAME_TO_HANDLE_AT = 370 + SYS_OPEN_BY_HANDLE_AT = 371 + SYS_CLOCK_ADJTIME = 372 + SYS_SYNCFS = 373 + SYS_SENDMMSG = 374 + SYS_SETNS = 375 + SYS_PROCESS_VM_READV = 376 + SYS_PROCESS_VM_WRITEV = 377 + SYS_KCMP = 378 + SYS_FINIT_MODULE = 379 + SYS_SCHED_SETATTR = 380 + SYS_SCHED_GETATTR = 381 + SYS_RENAMEAT2 = 382 + SYS_SECCOMP = 383 + SYS_GETRANDOM = 384 + SYS_MEMFD_CREATE = 385 + SYS_BPF = 386 + SYS_EXECVEAT = 387 + SYS_USERFAULTFD = 388 + SYS_MEMBARRIER = 389 + SYS_MLOCK2 = 390 + SYS_COPY_FILE_RANGE = 391 + SYS_PREADV2 = 392 + SYS_PWRITEV2 = 393 + SYS_PKEY_MPROTECT = 394 + SYS_PKEY_ALLOC = 395 + SYS_PKEY_FREE = 396 + SYS_STATX = 397 + SYS_RSEQ = 398 + SYS_IO_PGETEVENTS = 399 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index 15c413516..320696789 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -285,9 +285,4 @@ const ( SYS_STATX = 291 SYS_IO_PGETEVENTS = 292 SYS_RSEQ = 293 - SYS_KEXEC_FILE_LOAD = 294 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index 638465b14..6893a5bd0 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -6,406 +6,372 @@ package unix const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - SYS_KCMP = 4347 - SYS_FINIT_MODULE = 4348 - SYS_SCHED_SETATTR = 4349 - SYS_SCHED_GETATTR = 4350 - SYS_RENAMEAT2 = 4351 - SYS_SECCOMP = 4352 - SYS_GETRANDOM = 4353 - SYS_MEMFD_CREATE = 4354 - SYS_BPF = 4355 - SYS_EXECVEAT = 4356 - SYS_USERFAULTFD = 4357 - SYS_MEMBARRIER = 4358 - SYS_MLOCK2 = 4359 - SYS_COPY_FILE_RANGE = 4360 - SYS_PREADV2 = 4361 - SYS_PWRITEV2 = 4362 - SYS_PKEY_MPROTECT = 4363 - SYS_PKEY_ALLOC = 4364 - SYS_PKEY_FREE = 4365 - SYS_STATX = 4366 - SYS_RSEQ = 4367 - SYS_IO_PGETEVENTS = 4368 - SYS_SEMGET = 4393 - SYS_SEMCTL = 4394 - SYS_SHMGET = 4395 - SYS_SHMCTL = 4396 - SYS_SHMAT = 4397 - SYS_SHMDT = 4398 - SYS_MSGGET = 4399 - SYS_MSGSND = 4400 - SYS_MSGRCV = 4401 - SYS_MSGCTL = 4402 - SYS_CLOCK_GETTIME64 = 4403 - SYS_CLOCK_SETTIME64 = 4404 - SYS_CLOCK_ADJTIME64 = 4405 - SYS_CLOCK_GETRES_TIME64 = 4406 - SYS_CLOCK_NANOSLEEP_TIME64 = 4407 - SYS_TIMER_GETTIME64 = 4408 - SYS_TIMER_SETTIME64 = 4409 - SYS_TIMERFD_GETTIME64 = 4410 - SYS_TIMERFD_SETTIME64 = 4411 - SYS_UTIMENSAT_TIME64 = 4412 - SYS_PSELECT6_TIME64 = 4413 - SYS_PPOLL_TIME64 = 4414 - SYS_IO_PGETEVENTS_TIME64 = 4416 - SYS_RECVMMSG_TIME64 = 4417 - SYS_MQ_TIMEDSEND_TIME64 = 4418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 - SYS_SEMTIMEDOP_TIME64 = 4420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 - SYS_FUTEX_TIME64 = 4422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 - SYS_PIDFD_SEND_SIGNAL = 4424 - SYS_IO_URING_SETUP = 4425 - SYS_IO_URING_ENTER = 4426 - SYS_IO_URING_REGISTER = 4427 + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_KCMP = 4347 + SYS_FINIT_MODULE = 4348 + SYS_SCHED_SETATTR = 4349 + SYS_SCHED_GETATTR = 4350 + SYS_RENAMEAT2 = 4351 + SYS_SECCOMP = 4352 + SYS_GETRANDOM = 4353 + SYS_MEMFD_CREATE = 4354 + SYS_BPF = 4355 + SYS_EXECVEAT = 4356 + SYS_USERFAULTFD = 4357 + SYS_MEMBARRIER = 4358 + SYS_MLOCK2 = 4359 + SYS_COPY_FILE_RANGE = 4360 + SYS_PREADV2 = 4361 + SYS_PWRITEV2 = 4362 + SYS_PKEY_MPROTECT = 4363 + SYS_PKEY_ALLOC = 4364 + SYS_PKEY_FREE = 4365 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index 57ec82aac..40164cacd 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -334,8 +334,4 @@ const ( SYS_STATX = 5326 SYS_RSEQ = 5327 SYS_IO_PGETEVENTS = 5328 - SYS_PIDFD_SEND_SIGNAL = 5424 - SYS_IO_URING_SETUP = 5425 - SYS_IO_URING_ENTER = 5426 - SYS_IO_URING_REGISTER = 5427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index 825a3e3b0..8a909738b 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -334,8 +334,4 @@ const ( SYS_STATX = 5326 SYS_RSEQ = 5327 SYS_IO_PGETEVENTS = 5328 - SYS_PIDFD_SEND_SIGNAL = 5424 - SYS_IO_URING_SETUP = 5425 - SYS_IO_URING_ENTER = 5426 - SYS_IO_URING_REGISTER = 5427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index f152dfdd0..8d7818422 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -6,406 +6,372 @@ package unix const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - SYS_KCMP = 4347 - SYS_FINIT_MODULE = 4348 - SYS_SCHED_SETATTR = 4349 - SYS_SCHED_GETATTR = 4350 - SYS_RENAMEAT2 = 4351 - SYS_SECCOMP = 4352 - SYS_GETRANDOM = 4353 - SYS_MEMFD_CREATE = 4354 - SYS_BPF = 4355 - SYS_EXECVEAT = 4356 - SYS_USERFAULTFD = 4357 - SYS_MEMBARRIER = 4358 - SYS_MLOCK2 = 4359 - SYS_COPY_FILE_RANGE = 4360 - SYS_PREADV2 = 4361 - SYS_PWRITEV2 = 4362 - SYS_PKEY_MPROTECT = 4363 - SYS_PKEY_ALLOC = 4364 - SYS_PKEY_FREE = 4365 - SYS_STATX = 4366 - SYS_RSEQ = 4367 - SYS_IO_PGETEVENTS = 4368 - SYS_SEMGET = 4393 - SYS_SEMCTL = 4394 - SYS_SHMGET = 4395 - SYS_SHMCTL = 4396 - SYS_SHMAT = 4397 - SYS_SHMDT = 4398 - SYS_MSGGET = 4399 - SYS_MSGSND = 4400 - SYS_MSGRCV = 4401 - SYS_MSGCTL = 4402 - SYS_CLOCK_GETTIME64 = 4403 - SYS_CLOCK_SETTIME64 = 4404 - SYS_CLOCK_ADJTIME64 = 4405 - SYS_CLOCK_GETRES_TIME64 = 4406 - SYS_CLOCK_NANOSLEEP_TIME64 = 4407 - SYS_TIMER_GETTIME64 = 4408 - SYS_TIMER_SETTIME64 = 4409 - SYS_TIMERFD_GETTIME64 = 4410 - SYS_TIMERFD_SETTIME64 = 4411 - SYS_UTIMENSAT_TIME64 = 4412 - SYS_PSELECT6_TIME64 = 4413 - SYS_PPOLL_TIME64 = 4414 - SYS_IO_PGETEVENTS_TIME64 = 4416 - SYS_RECVMMSG_TIME64 = 4417 - SYS_MQ_TIMEDSEND_TIME64 = 4418 - SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 - SYS_SEMTIMEDOP_TIME64 = 4420 - SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 - SYS_FUTEX_TIME64 = 4422 - SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 - SYS_PIDFD_SEND_SIGNAL = 4424 - SYS_IO_URING_SETUP = 4425 - SYS_IO_URING_ENTER = 4426 - SYS_IO_URING_REGISTER = 4427 + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_KCMP = 4347 + SYS_FINIT_MODULE = 4348 + SYS_SCHED_SETATTR = 4349 + SYS_SCHED_GETATTR = 4350 + SYS_RENAMEAT2 = 4351 + SYS_SECCOMP = 4352 + SYS_GETRANDOM = 4353 + SYS_MEMFD_CREATE = 4354 + SYS_BPF = 4355 + SYS_EXECVEAT = 4356 + SYS_USERFAULTFD = 4357 + SYS_MEMBARRIER = 4358 + SYS_MLOCK2 = 4359 + SYS_COPY_FILE_RANGE = 4360 + SYS_PREADV2 = 4361 + SYS_PWRITEV2 = 4362 + SYS_PKEY_MPROTECT = 4363 + SYS_PKEY_ALLOC = 4364 + SYS_PKEY_FREE = 4365 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index 7cbe78b19..ec5bde3d5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -372,19 +372,4 @@ const ( SYS_PKEY_MPROTECT = 386 SYS_RSEQ = 387 SYS_IO_PGETEVENTS = 388 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index 51a2f1236..bdbabdbcd 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -372,19 +372,4 @@ const ( SYS_PKEY_MPROTECT = 386 SYS_RSEQ = 387 SYS_IO_PGETEVENTS = 388 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index 323432ae3..473c74613 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -284,9 +284,4 @@ const ( SYS_STATX = 291 SYS_IO_PGETEVENTS = 292 SYS_RSEQ = 293 - SYS_KEXEC_FILE_LOAD = 294 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index 9dca97484..6eb7c257f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -334,22 +334,4 @@ const ( SYS_KEXEC_FILE_LOAD = 381 SYS_IO_PGETEVENTS = 382 SYS_RSEQ = 383 - SYS_PKEY_MPROTECT = 384 - SYS_PKEY_ALLOC = 385 - SYS_PKEY_FREE = 386 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index d3da46f0d..93480fcb1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -253,7 +253,6 @@ const ( SYS_TIMER_GETOVERRUN = 264 SYS_TIMER_DELETE = 265 SYS_TIMER_CREATE = 266 - SYS_VSERVER = 267 SYS_IO_SETUP = 268 SYS_IO_DESTROY = 269 SYS_IO_SUBMIT = 270 @@ -348,23 +347,4 @@ const ( SYS_PWRITEV2 = 359 SYS_STATX = 360 SYS_IO_PGETEVENTS = 361 - SYS_PKEY_MPROTECT = 362 - SYS_PKEY_ALLOC = 363 - SYS_PKEY_FREE = 364 - SYS_RSEQ = 365 - SYS_SEMTIMEDOP = 392 - SYS_SEMGET = 393 - SYS_SEMCTL = 394 - SYS_SHMGET = 395 - SYS_SHMCTL = 396 - SYS_SHMAT = 397 - SYS_SHMDT = 398 - SYS_MSGGET = 399 - SYS_MSGSND = 400 - SYS_MSGRCV = 401 - SYS_MSGCTL = 402 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go deleted file mode 100644 index fe2b689b6..000000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +++ /dev/null @@ -1,217 +0,0 @@ -// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,openbsd - -package unix - -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } - SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } - SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } - SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } - SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go index 2c1f815e6..cedc9b0f2 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go @@ -30,6 +30,11 @@ type Timespec struct { Nsec int32 } +type StTimespec struct { + Sec int32 + Nsec int32 +} + type Timeval struct { Sec int32 Usec int32 @@ -96,9 +101,9 @@ type Stat_t struct { Gid uint32 Rdev uint32 Size int32 - Atim Timespec - Mtim Timespec - Ctim Timespec + Atim StTimespec + Mtim StTimespec + Ctim StTimespec Blksize int32 Blocks int32 Vfstype int32 @@ -143,17 +148,6 @@ type RawSockaddrUnix struct { Path [1023]uint8 } -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [120]uint8 -} - type RawSockaddr struct { Len uint8 Family uint8 @@ -213,18 +207,17 @@ type Msghdr struct { } const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofSockaddrDatalink = 0x80 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 ) const ( diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go index b4a069ecb..f46482d27 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go @@ -30,6 +30,12 @@ type Timespec struct { Nsec int64 } +type StTimespec struct { + Sec int64 + Nsec int32 + _ [4]byte +} + type Timeval struct { Sec int64 Usec int32 @@ -97,9 +103,10 @@ type Stat_t struct { Gid uint32 Rdev uint64 Ssize int32 - Atim Timespec - Mtim Timespec - Ctim Timespec + _ [4]byte + Atim StTimespec + Mtim StTimespec + Ctim StTimespec Blksize int64 Blocks int64 Vfstype int32 @@ -147,17 +154,6 @@ type RawSockaddrUnix struct { Path [1023]uint8 } -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [120]uint8 -} - type RawSockaddr struct { Len uint8 Family uint8 @@ -209,26 +205,27 @@ type Linger struct { type Msghdr struct { Name *byte Namelen uint32 + _ [4]byte Iov *Iovec Iovlen int32 + _ [4]byte Control *byte Controllen uint32 Flags int32 } const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofSockaddrDatalink = 0x80 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 ) const ( @@ -342,6 +339,7 @@ type Statfs_t struct { Ffree uint64 Fsid Fsid64_t Vfstype int32 + _ [4]byte Fsize uint64 Vfsnumber int32 Vfsoff int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go index 9f47b87c5..2aeb52a88 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go @@ -59,24 +59,24 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -487,13 +487,3 @@ type Utsname struct { Version [256]byte Machine [256]byte } - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go index 966798a87..0d0d9f2cc 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go @@ -63,25 +63,25 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - _ [4]byte - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + _ [4]byte + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -497,13 +497,3 @@ type Utsname struct { Version [256]byte Machine [256]byte } - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go index 4fe4c9cd7..04e344b78 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go @@ -60,24 +60,24 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -488,13 +488,3 @@ type Utsname struct { Version [256]byte Machine [256]byte } - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go index 21999e4b0..9fec185c1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go @@ -63,25 +63,25 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - _ [4]byte - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + _ [4]byte + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 } type Statfs_t struct { @@ -497,13 +497,3 @@ type Utsname struct { Version [256]byte Machine [256]byte } - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go index c206f2b05..7b34e2e2c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go @@ -57,25 +57,25 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Ino uint64 - Nlink uint32 - Dev uint32 - Mode uint16 - _1 uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare1 int64 - Qspare2 int64 + Ino uint64 + Nlink uint32 + Dev uint32 + Mode uint16 + Padding1 uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare1 int64 + Qspare2 int64 } type Statfs_t struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go index 0edc5409a..c146c1ad3 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -62,50 +62,50 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - _ int32 - Atim Timespec - _ int32 - Mtim Timespec - _ int32 - Ctim Timespec - _ int32 - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim_ext int32 + Atim Timespec + Mtim_ext int32 + Mtim Timespec + Ctim_ext int32 + Ctim Timespec + Btim_ext int32 + Birthtim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Btim Timespec - _ [8]byte + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Birthtim Timespec + _ [8]byte } type Statfs_t struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go index 8881ce842..ac33a8dd4 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -62,45 +62,45 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Birthtim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Btim Timespec + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Birthtim Timespec } type Statfs_t struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go index fc713999c..e27511a64 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -64,45 +64,45 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Birthtim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Btim Timespec + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Birthtim Timespec } type Statfs_t struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go index 5a0753ee4..2aadc1a4d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -62,45 +62,45 @@ const ( ) type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint16 - _0 int16 - Uid uint32 - Gid uint32 - _1 int32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Birthtim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 } type stat_freebsd11_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Btim Timespec + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Birthtim Timespec } type Statfs_t struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index 06e3a3f4d..18724670a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -443,181 +443,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -694,16 +652,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x8 @@ -829,8 +777,6 @@ type Sigset_t struct { Val [32]uint32 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1027,8 +973,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1131,7 +1076,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1153,38 +1097,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1197,7 +1124,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1454,21 +1380,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1517,9 +1428,6 @@ const ( SizeofTpacketHdr = 0x18 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2135,335 +2043,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index cef25e732..6ddbf0665 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -444,181 +444,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -695,16 +653,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -842,8 +790,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1038,8 +984,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1142,7 +1087,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1164,38 +1108,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1208,7 +1135,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1466,21 +1392,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1529,9 +1440,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2148,335 +2056,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index c4369361e..b8e3ec138 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -447,181 +447,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -698,16 +656,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x8 @@ -818,8 +766,6 @@ type Sigset_t struct { Val [32]uint32 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1016,8 +962,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1120,7 +1065,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1142,38 +1086,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1186,7 +1113,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1444,21 +1370,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1507,9 +1418,6 @@ const ( SizeofTpacketHdr = 0x18 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2126,335 +2034,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 76c55e053..2f73f0086 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -445,181 +445,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -696,16 +654,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -821,8 +769,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1017,8 +963,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1121,7 +1066,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1143,38 +1087,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1187,7 +1114,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1445,21 +1371,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1508,9 +1419,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2127,335 +2035,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 4302d574f..4a2a18bcb 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -446,181 +446,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -697,16 +655,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x8 @@ -823,8 +771,6 @@ type Sigset_t struct { Val [32]uint32 } -const _C__NSIG = 0x80 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1021,8 +967,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1125,7 +1070,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1147,38 +1091,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1191,7 +1118,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1450,21 +1376,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1513,9 +1424,6 @@ const ( SizeofTpacketHdr = 0x18 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2132,335 +2040,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index 7ea742be6..41e4513de 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -445,181 +445,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -696,16 +654,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -823,8 +771,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x80 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1019,8 +965,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1123,7 +1068,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1145,38 +1089,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1189,7 +1116,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1447,21 +1373,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1510,9 +1421,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2129,335 +2037,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index 8f2b8ad4e..4a3d74b76 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -445,181 +445,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -696,16 +654,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -823,8 +771,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x80 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1019,8 +965,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1123,7 +1068,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1145,38 +1089,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1189,7 +1116,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1447,21 +1373,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1510,9 +1421,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2129,335 +2037,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index 865bf57da..8ae3ca4e4 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -446,181 +446,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -697,16 +655,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x8 @@ -823,8 +771,6 @@ type Sigset_t struct { Val [32]uint32 } -const _C__NSIG = 0x80 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1021,8 +967,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1125,7 +1070,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1147,38 +1091,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1191,7 +1118,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1450,21 +1376,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1513,9 +1424,6 @@ const ( SizeofTpacketHdr = 0x18 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2132,335 +2040,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 2b68027d5..50294c94c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -446,181 +446,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -697,16 +655,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -831,8 +779,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1027,8 +973,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1131,7 +1076,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1153,38 +1097,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1197,7 +1124,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1455,21 +1381,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1518,9 +1429,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2137,335 +2045,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 76cd7e643..d2acf3a73 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -446,181 +446,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -697,16 +655,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -831,8 +779,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1027,8 +973,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1131,7 +1076,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1153,38 +1097,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1197,7 +1124,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1455,21 +1381,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1518,9 +1429,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2137,335 +2045,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index f99f06155..675c59688 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -445,181 +445,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -696,16 +654,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -848,8 +796,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1044,8 +990,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1148,7 +1093,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1170,38 +1114,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1214,7 +1141,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1472,21 +1398,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1535,9 +1446,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2154,335 +2062,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index d9d03ae49..9f2cf0dfd 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -444,181 +444,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -695,16 +653,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -844,8 +792,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1040,8 +986,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1144,7 +1089,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1166,38 +1110,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1210,7 +1137,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1469,21 +1395,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1532,9 +1443,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2151,335 +2059,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index b247fe94b..68643903c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -448,181 +448,139 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_MAX = 0x33 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 ) type NlMsghdr struct { @@ -699,16 +657,6 @@ type NdUseroptmsg struct { Pad3 uint32 } -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - const ( SizeofSockFilter = 0x8 SizeofSockFprog = 0x10 @@ -826,8 +774,6 @@ type Sigset_t struct { Val [16]uint64 } -const _C__NSIG = 0x41 - type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1022,8 +968,7 @@ type PerfEventAttr struct { Clockid int32 Sample_regs_intr uint64 Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 + _ uint32 } type PerfEventMmapPage struct { @@ -1126,7 +1071,6 @@ const ( PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_TID = 0x2 @@ -1148,38 +1092,21 @@ const ( PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_KERNEL = -0x80 @@ -1192,7 +1119,6 @@ const ( PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 ) const ( @@ -1450,21 +1376,6 @@ type TpacketBlockDesc struct { Hdr [40]byte } -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - type TpacketReq struct { Block_size uint32 Block_nr uint32 @@ -1513,9 +1424,6 @@ const ( SizeofTpacketHdr = 0x20 SizeofTpacket2Hdr = 0x20 SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc ) const ( @@ -2132,335 +2040,3 @@ type SockExtendedErr struct { Info uint32 Data uint32 } - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatAKCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Verify_cnt uint64 - Sign_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go index a2268b4f6..2dae0c17a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -57,23 +57,23 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 + Dev uint64 + Mode uint32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 } type Statfs_t [0]byte diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go index 59e1da0a6..1f0e76c0c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -58,26 +58,26 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - _ [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - _ [4]byte - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - _ [4]byte + Dev uint64 + Mode uint32 + Pad_cgo_0 [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Pad_cgo_1 [4]byte + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + Pad_cgo_2 [4]byte } type Statfs_t [0]byte diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go index 1f1f0f381..53f2159c7 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -59,26 +59,26 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - _ [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - _ [4]byte - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - _ [4]byte + Dev uint64 + Mode uint32 + Pad_cgo_0 [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Pad_cgo_1 [4]byte + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + Pad_cgo_2 [4]byte } type Statfs_t [0]byte diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go index 8dca204a9..43da2c41c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -58,26 +58,26 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - Mode uint32 - _ [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - _ [4]byte - Rdev uint64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - _ [4]byte + Dev uint64 + Mode uint32 + Pad_cgo_0 [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Pad_cgo_1 [4]byte + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + Pad_cgo_2 [4]byte } type Statfs_t [0]byte diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go index 900fb4462..8b37d8399 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -558,13 +558,3 @@ type Uvmexp struct { Fpswtch int32 Kmapent int32 } - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go index 028fa78d7..6efea4635 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -558,13 +558,3 @@ type Uvmexp struct { Fpswtch int32 Kmapent int32 } - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go index b45d5eedf..510efc3ea 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -559,13 +559,3 @@ type Uvmexp struct { Fpswtch int32 Kmapent int32 } - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go deleted file mode 100644 index fa369a32a..000000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ /dev/null @@ -1,564 +0,0 @@ -// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,openbsd - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]int8 - F_mntonname [90]int8 - F_mntfromname [90]int8 - F_mntfromspec [90]int8 - _ [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - _ [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa8 - SizeofIfData = 0x90 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Rdomain uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -type Mclpool struct{} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_SYMLINK_NOFOLLOW = 0x2 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Sigset_t uint32 - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x158 - -type Uvmexp struct { - Pagesize int32 - Pagemask int32 - Pageshift int32 - Npages int32 - Free int32 - Active int32 - Inactive int32 - Paging int32 - Wired int32 - Zeropages int32 - Reserve_pagedaemon int32 - Reserve_kernel int32 - Unused01 int32 - Vnodepages int32 - Vtextpages int32 - Freemin int32 - Freetarg int32 - Inactarg int32 - Wiredmax int32 - Anonmin int32 - Vtextmin int32 - Vnodemin int32 - Anonminpct int32 - Vtextminpct int32 - Vnodeminpct int32 - Nswapdev int32 - Swpages int32 - Swpginuse int32 - Swpgonly int32 - Nswget int32 - Nanon int32 - Unused05 int32 - Unused06 int32 - Faults int32 - Traps int32 - Intrs int32 - Swtch int32 - Softs int32 - Syscalls int32 - Pageins int32 - Unused07 int32 - Unused08 int32 - Pgswapin int32 - Pgswapout int32 - Forks int32 - Forks_ppwait int32 - Forks_sharevm int32 - Pga_zerohit int32 - Pga_zeromiss int32 - Unused09 int32 - Fltnoram int32 - Fltnoanon int32 - Fltnoamap int32 - Fltpgwait int32 - Fltpgrele int32 - Fltrelck int32 - Fltrelckok int32 - Fltanget int32 - Fltanretry int32 - Fltamcopy int32 - Fltnamap int32 - Fltnomap int32 - Fltlget int32 - Fltget int32 - Flt_anon int32 - Flt_acow int32 - Flt_obj int32 - Flt_prcopy int32 - Flt_przero int32 - Pdwoke int32 - Pdrevs int32 - Pdswout int32 - Pdfreed int32 - Pdscans int32 - Pdanscan int32 - Pdobscan int32 - Pdreact int32 - Pdbusy int32 - Pdpageouts int32 - Pdpending int32 - Pddeact int32 - Unused11 int32 - Unused12 int32 - Unused13 int32 - Fpswtch int32 - Kmapent int32 -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go index ba67658db..e92c05b21 100644 --- a/vendor/golang.org/x/sys/windows/dll_windows.go +++ b/vendor/golang.org/x/sys/windows/dll_windows.go @@ -359,11 +359,11 @@ func loadLibraryEx(name string, system bool) (*DLL, error) { // trying to load "foo.dll" out of the system // folder, but LoadLibraryEx doesn't support // that yet on their system, so emulate it. - systemdir, err := GetSystemDirectory() - if err != nil { - return nil, err + windir, _ := Getenv("WINDIR") // old var; apparently works on XP + if windir == "" { + return nil, errString("%WINDIR% not defined") } - loadDLL = systemdir + "\\" + name + loadDLL = windir + "\\System32\\" + name } } h, err := LoadLibraryEx(loadDLL, 0, flags) diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go index f482a9fab..bdc71e241 100644 --- a/vendor/golang.org/x/sys/windows/env_windows.go +++ b/vendor/golang.org/x/sys/windows/env_windows.go @@ -6,11 +6,7 @@ package windows -import ( - "syscall" - "unicode/utf16" - "unsafe" -) +import "syscall" func Getenv(key string) (value string, found bool) { return syscall.Getenv(key) @@ -28,34 +24,6 @@ func Environ() []string { return syscall.Environ() } -// Returns a default environment associated with the token, rather than the current -// process. If inheritExisting is true, then this environment also inherits the -// environment of the current process. -func (token Token) Environ(inheritExisting bool) (env []string, err error) { - var block *uint16 - err = CreateEnvironmentBlock(&block, token, inheritExisting) - if err != nil { - return nil, err - } - defer DestroyEnvironmentBlock(block) - blockp := uintptr(unsafe.Pointer(block)) - for { - entry := (*[(1 << 30) - 1]uint16)(unsafe.Pointer(blockp))[:] - for i, v := range entry { - if v == 0 { - entry = entry[:i] - break - } - } - if len(entry) == 0 { - break - } - env = append(env, string(utf16.Decode(entry))) - blockp += 2 * (uintptr(len(entry)) + 1) - } - return env, nil -} - func Unsetenv(key string) error { return syscall.Unsetenv(key) } diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash deleted file mode 100644 index 2163843a1..000000000 --- a/vendor/golang.org/x/sys/windows/mkerrors.bash +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -# 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. - -set -e -shopt -s nullglob - -winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)" -[[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; } - -declare -A errors - -{ - echo "// Code generated by 'mkerrors.bash'; DO NOT EDIT." - echo - echo "package windows" - echo "import \"syscall\"" - echo "const (" - - while read -r line; do - unset vtype - if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - vtype="${BASH_REMATCH[2]}" - elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - vtype="${BASH_REMATCH[2]}" - else - continue - fi - [[ -n $key && -n $value ]] || continue - [[ -z ${errors["$key"]} ]] || continue - errors["$key"]="$value" - if [[ -v vtype ]]; then - if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then - vtype="" - elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then - vtype="Handle" - else - vtype="syscall.Errno" - fi - last_vtype="$vtype" - else - vtype="" - if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then - value="S_OK" - elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then - value="ERROR_SUCCESS" - fi - fi - - echo "$key $vtype = $value" - done < "$winerror" - - echo ")" -} | gofmt > "zerrors_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash deleted file mode 100644 index ab8924e93..000000000 --- a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -# 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. - -set -e -shopt -s nullglob - -knownfolders="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)" -[[ -n $knownfolders ]] || { echo "Unable to find KnownFolders.h" >&2; exit 1; } - -{ - echo "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT." - echo - echo "package windows" - echo "type KNOWNFOLDERID GUID" - echo "var (" - while read -r line; do - [[ $line =~ DEFINE_KNOWN_FOLDER\((FOLDERID_[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+)\) ]] || continue - printf "%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\n" \ - "${BASH_REMATCH[1]}" $(( "${BASH_REMATCH[2]}" )) $(( "${BASH_REMATCH[3]}" )) $(( "${BASH_REMATCH[4]}" )) \ - $(( "${BASH_REMATCH[5]}" )) $(( "${BASH_REMATCH[6]}" )) $(( "${BASH_REMATCH[7]}" )) $(( "${BASH_REMATCH[8]}" )) \ - $(( "${BASH_REMATCH[9]}" )) $(( "${BASH_REMATCH[10]}" )) $(( "${BASH_REMATCH[11]}" )) $(( "${BASH_REMATCH[12]}" )) - done < "$knownfolders" - echo ")" -} | gofmt > "zknownfolderids_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mksyscall.go b/vendor/golang.org/x/sys/windows/mksyscall.go index 627705727..fb7db0ef8 100644 --- a/vendor/golang.org/x/sys/windows/mksyscall.go +++ b/vendor/golang.org/x/sys/windows/mksyscall.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build generate - package windows //go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go diff --git a/vendor/golang.org/x/sys/windows/registry/mksyscall.go b/vendor/golang.org/x/sys/windows/registry/mksyscall.go index cf843ce2b..0ac95ffe7 100644 --- a/vendor/golang.org/x/sys/windows/registry/mksyscall.go +++ b/vendor/golang.org/x/sys/windows/registry/mksyscall.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build generate - package registry //go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go syscall.go diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go index 61b49647b..9f946da6f 100644 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -169,21 +169,15 @@ const ( //sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid //sys CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid //sys AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid -//sys createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid -//sys isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid //sys FreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid //sys EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid -//sys getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority -//sys getSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount -//sys getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority -//sys isValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid // The security identifier (SID) structure is a variable-length // structure used to uniquely identify users or groups. type SID struct{} // StringToSid converts a string-format security identifier -// SID into a valid, functional SID. +// sid into a valid, functional sid. func StringToSid(s string) (*SID, error) { var sid *SID p, e := UTF16PtrFromString(s) @@ -198,7 +192,7 @@ func StringToSid(s string) (*SID, error) { return sid.Copy() } -// LookupSID retrieves a security identifier SID for the account +// LookupSID retrieves a security identifier sid for the account // and the name of the domain on which the account was found. // System specify target computer to search. func LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) { @@ -235,7 +229,7 @@ func LookupSID(system, account string) (sid *SID, domain string, accType uint32, } } -// String converts SID to a string format +// String converts sid to a string format // suitable for display, storage, or transmission. func (sid *SID) String() (string, error) { var s *uint16 @@ -247,12 +241,12 @@ func (sid *SID) String() (string, error) { return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]), nil } -// Len returns the length, in bytes, of a valid security identifier SID. +// Len returns the length, in bytes, of a valid security identifier sid. func (sid *SID) Len() int { return int(GetLengthSid(sid)) } -// Copy creates a duplicate of security identifier SID. +// Copy creates a duplicate of security identifier sid. func (sid *SID) Copy() (*SID, error) { b := make([]byte, sid.Len()) sid2 := (*SID)(unsafe.Pointer(&b[0])) @@ -263,42 +257,8 @@ func (sid *SID) Copy() (*SID, error) { return sid2, nil } -// IdentifierAuthority returns the identifier authority of the SID. -func (sid *SID) IdentifierAuthority() SidIdentifierAuthority { - return *getSidIdentifierAuthority(sid) -} - -// SubAuthorityCount returns the number of sub-authorities in the SID. -func (sid *SID) SubAuthorityCount() uint8 { - return *getSidSubAuthorityCount(sid) -} - -// SubAuthority returns the sub-authority of the SID as specified by -// the index, which must be less than sid.SubAuthorityCount(). -func (sid *SID) SubAuthority(idx uint32) uint32 { - if idx >= uint32(sid.SubAuthorityCount()) { - panic("sub-authority index out of range") - } - return *getSidSubAuthority(sid, idx) -} - -// IsValid returns whether the SID has a valid revision and length. -func (sid *SID) IsValid() bool { - return isValidSid(sid) -} - -// Equals compares two SIDs for equality. -func (sid *SID) Equals(sid2 *SID) bool { - return EqualSid(sid, sid2) -} - -// IsWellKnown determines whether the SID matches the well-known sidType. -func (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool { - return isWellKnownSid(sid, sidType) -} - -// LookupAccount retrieves the name of the account for this SID -// and the name of the first domain on which this SID is found. +// LookupAccount retrieves the name of the account for this sid +// and the name of the first domain on which this sid is found. // System specify target computer to search for. func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { var sys *uint16 @@ -326,158 +286,6 @@ func (sid *SID) LookupAccount(system string) (account, domain string, accType ui } } -// Various types of pre-specified SIDs that can be synthesized and compared at runtime. -type WELL_KNOWN_SID_TYPE uint32 - -const ( - WinNullSid = 0 - WinWorldSid = 1 - WinLocalSid = 2 - WinCreatorOwnerSid = 3 - WinCreatorGroupSid = 4 - WinCreatorOwnerServerSid = 5 - WinCreatorGroupServerSid = 6 - WinNtAuthoritySid = 7 - WinDialupSid = 8 - WinNetworkSid = 9 - WinBatchSid = 10 - WinInteractiveSid = 11 - WinServiceSid = 12 - WinAnonymousSid = 13 - WinProxySid = 14 - WinEnterpriseControllersSid = 15 - WinSelfSid = 16 - WinAuthenticatedUserSid = 17 - WinRestrictedCodeSid = 18 - WinTerminalServerSid = 19 - WinRemoteLogonIdSid = 20 - WinLogonIdsSid = 21 - WinLocalSystemSid = 22 - WinLocalServiceSid = 23 - WinNetworkServiceSid = 24 - WinBuiltinDomainSid = 25 - WinBuiltinAdministratorsSid = 26 - WinBuiltinUsersSid = 27 - WinBuiltinGuestsSid = 28 - WinBuiltinPowerUsersSid = 29 - WinBuiltinAccountOperatorsSid = 30 - WinBuiltinSystemOperatorsSid = 31 - WinBuiltinPrintOperatorsSid = 32 - WinBuiltinBackupOperatorsSid = 33 - WinBuiltinReplicatorSid = 34 - WinBuiltinPreWindows2000CompatibleAccessSid = 35 - WinBuiltinRemoteDesktopUsersSid = 36 - WinBuiltinNetworkConfigurationOperatorsSid = 37 - WinAccountAdministratorSid = 38 - WinAccountGuestSid = 39 - WinAccountKrbtgtSid = 40 - WinAccountDomainAdminsSid = 41 - WinAccountDomainUsersSid = 42 - WinAccountDomainGuestsSid = 43 - WinAccountComputersSid = 44 - WinAccountControllersSid = 45 - WinAccountCertAdminsSid = 46 - WinAccountSchemaAdminsSid = 47 - WinAccountEnterpriseAdminsSid = 48 - WinAccountPolicyAdminsSid = 49 - WinAccountRasAndIasServersSid = 50 - WinNTLMAuthenticationSid = 51 - WinDigestAuthenticationSid = 52 - WinSChannelAuthenticationSid = 53 - WinThisOrganizationSid = 54 - WinOtherOrganizationSid = 55 - WinBuiltinIncomingForestTrustBuildersSid = 56 - WinBuiltinPerfMonitoringUsersSid = 57 - WinBuiltinPerfLoggingUsersSid = 58 - WinBuiltinAuthorizationAccessSid = 59 - WinBuiltinTerminalServerLicenseServersSid = 60 - WinBuiltinDCOMUsersSid = 61 - WinBuiltinIUsersSid = 62 - WinIUserSid = 63 - WinBuiltinCryptoOperatorsSid = 64 - WinUntrustedLabelSid = 65 - WinLowLabelSid = 66 - WinMediumLabelSid = 67 - WinHighLabelSid = 68 - WinSystemLabelSid = 69 - WinWriteRestrictedCodeSid = 70 - WinCreatorOwnerRightsSid = 71 - WinCacheablePrincipalsGroupSid = 72 - WinNonCacheablePrincipalsGroupSid = 73 - WinEnterpriseReadonlyControllersSid = 74 - WinAccountReadonlyControllersSid = 75 - WinBuiltinEventLogReadersGroup = 76 - WinNewEnterpriseReadonlyControllersSid = 77 - WinBuiltinCertSvcDComAccessGroup = 78 - WinMediumPlusLabelSid = 79 - WinLocalLogonSid = 80 - WinConsoleLogonSid = 81 - WinThisOrganizationCertificateSid = 82 - WinApplicationPackageAuthoritySid = 83 - WinBuiltinAnyPackageSid = 84 - WinCapabilityInternetClientSid = 85 - WinCapabilityInternetClientServerSid = 86 - WinCapabilityPrivateNetworkClientServerSid = 87 - WinCapabilityPicturesLibrarySid = 88 - WinCapabilityVideosLibrarySid = 89 - WinCapabilityMusicLibrarySid = 90 - WinCapabilityDocumentsLibrarySid = 91 - WinCapabilitySharedUserCertificatesSid = 92 - WinCapabilityEnterpriseAuthenticationSid = 93 - WinCapabilityRemovableStorageSid = 94 - WinBuiltinRDSRemoteAccessServersSid = 95 - WinBuiltinRDSEndpointServersSid = 96 - WinBuiltinRDSManagementServersSid = 97 - WinUserModeDriversSid = 98 - WinBuiltinHyperVAdminsSid = 99 - WinAccountCloneableControllersSid = 100 - WinBuiltinAccessControlAssistanceOperatorsSid = 101 - WinBuiltinRemoteManagementUsersSid = 102 - WinAuthenticationAuthorityAssertedSid = 103 - WinAuthenticationServiceAssertedSid = 104 - WinLocalAccountSid = 105 - WinLocalAccountAndAdministratorSid = 106 - WinAccountProtectedUsersSid = 107 - WinCapabilityAppointmentsSid = 108 - WinCapabilityContactsSid = 109 - WinAccountDefaultSystemManagedSid = 110 - WinBuiltinDefaultSystemManagedGroupSid = 111 - WinBuiltinStorageReplicaAdminsSid = 112 - WinAccountKeyAdminsSid = 113 - WinAccountEnterpriseKeyAdminsSid = 114 - WinAuthenticationKeyTrustSid = 115 - WinAuthenticationKeyPropertyMFASid = 116 - WinAuthenticationKeyPropertyAttestationSid = 117 - WinAuthenticationFreshKeyAuthSid = 118 - WinBuiltinDeviceOwnersSid = 119 -) - -// Creates a SID for a well-known predefined alias, generally using the constants of the form -// Win*Sid, for the local machine. -func CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) { - return CreateWellKnownDomainSid(sidType, nil) -} - -// Creates a SID for a well-known predefined alias, generally using the constants of the form -// Win*Sid, for the domain specified by the domainSid parameter. -func CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) { - n := uint32(50) - for { - b := make([]byte, n) - sid := (*SID)(unsafe.Pointer(&b[0])) - err := createWellKnownSid(sidType, domainSid, sid, &n) - if err == nil { - return sid, nil - } - if err != ERROR_INSUFFICIENT_BUFFER { - return nil, err - } - if n <= uint32(len(b)) { - return nil, err - } - } -} - const ( // do not reorder TOKEN_ASSIGN_PRIMARY = 1 << iota @@ -541,53 +349,6 @@ const ( MaxTokenInfoClass ) -// Group attributes inside of Tokengroups.Groups[i].Attributes -const ( - SE_GROUP_MANDATORY = 0x00000001 - SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 - SE_GROUP_ENABLED = 0x00000004 - SE_GROUP_OWNER = 0x00000008 - SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 - SE_GROUP_INTEGRITY = 0x00000020 - SE_GROUP_INTEGRITY_ENABLED = 0x00000040 - SE_GROUP_LOGON_ID = 0xC0000000 - SE_GROUP_RESOURCE = 0x20000000 - SE_GROUP_VALID_ATTRIBUTES = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED -) - -// Privilege attributes -const ( - SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 - SE_PRIVILEGE_ENABLED = 0x00000002 - SE_PRIVILEGE_REMOVED = 0x00000004 - SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 - SE_PRIVILEGE_VALID_ATTRIBUTES = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS -) - -// Token types -const ( - TokenPrimary = 1 - TokenImpersonation = 2 -) - -// Impersonation levels -const ( - SecurityAnonymous = 0 - SecurityIdentification = 1 - SecurityImpersonation = 2 - SecurityDelegation = 3 -) - -type LUID struct { - LowPart uint32 - HighPart int32 -} - -type LUIDAndAttributes struct { - Luid LUID - Attributes uint32 -} - type SIDAndAttributes struct { Sid *SID Attributes uint32 @@ -603,47 +364,14 @@ type Tokenprimarygroup struct { type Tokengroups struct { GroupCount uint32 - Groups [1]SIDAndAttributes // Use AllGroups() for iterating. -} - -// AllGroups returns a slice that can be used to iterate over the groups in g. -func (g *Tokengroups) AllGroups() []SIDAndAttributes { - return (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount] -} - -type Tokenprivileges struct { - PrivilegeCount uint32 - Privileges [1]LUIDAndAttributes // Use AllPrivileges() for iterating. -} - -// AllPrivileges returns a slice that can be used to iterate over the privileges in p. -func (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes { - return (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount] -} - -type Tokenmandatorylabel struct { - Label SIDAndAttributes -} - -func (tml *Tokenmandatorylabel) Size() uint32 { - return uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid) + Groups [1]SIDAndAttributes } // Authorization Functions -//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership -//sys OpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken -//sys OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken -//sys ImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf -//sys RevertToSelf() (err error) = advapi32.RevertToSelf -//sys SetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken -//sys LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW -//sys AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges -//sys AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups -//sys GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation -//sys SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation -//sys DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx +//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership +//sys OpenProcessToken(h Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken +//sys GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation //sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW -//sys getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW // An access token contains the security information for a logon session. // The system creates an access token when a user logs on, and every @@ -655,9 +383,7 @@ func (tml *Tokenmandatorylabel) Size() uint32 { type Token Handle // OpenCurrentProcessToken opens the access token -// associated with current process. It is a real -// token that needs to be closed, unlike -// GetCurrentProcessToken. +// associated with current process. func OpenCurrentProcessToken() (Token, error) { p, e := GetCurrentProcess() if e != nil { @@ -671,27 +397,6 @@ func OpenCurrentProcessToken() (Token, error) { return t, nil } -// GetCurrentProcessToken returns the access token associated with -// the current process. It is a pseudo token that does not need -// to be closed. -func GetCurrentProcessToken() Token { - return Token(^uintptr(4 - 1)) -} - -// GetCurrentThreadToken return the access token associated with -// the current thread. It is a pseudo token that does not need -// to be closed. -func GetCurrentThreadToken() Token { - return Token(^uintptr(5 - 1)) -} - -// GetCurrentThreadEffectiveToken returns the effective access token -// associated with the current thread. It is a pseudo token that does -// not need to be closed. -func GetCurrentThreadEffectiveToken() Token { - return Token(^uintptr(6 - 1)) -} - // Close releases access to access token. func (t Token) Close() error { return CloseHandle(Handle(t)) @@ -763,45 +468,6 @@ func (t Token) GetUserProfileDirectory() (string, error) { } } -// IsElevated returns whether the current token is elevated from a UAC perspective. -func (token Token) IsElevated() bool { - var isElevated uint32 - var outLen uint32 - err := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen) - if err != nil { - return false - } - return outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0 -} - -// GetLinkedToken returns the linked token, which may be an elevated UAC token. -func (token Token) GetLinkedToken() (Token, error) { - var linkedToken Token - var outLen uint32 - err := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen) - if err != nil { - return Token(0), err - } - return linkedToken, nil -} - -// GetSystemDirectory retrieves path to current location of the system -// directory, which is typically, though not always, C:\Windows\System32. -func GetSystemDirectory() (string, error) { - n := uint32(MAX_PATH) - for { - b := make([]uint16, n) - l, e := getSystemDirectory(&b[0], n) - if e != nil { - return "", e - } - if l <= n { - return UTF16ToString(b[:l]), nil - } - n = l - } -} - // IsMember reports whether the access token t is a member of the provided SID. func (t Token) IsMember(sid *SID) (bool, error) { var b int32 @@ -810,45 +476,3 @@ func (t Token) IsMember(sid *SID) (bool, error) { } return b != 0, nil } - -const ( - WTS_CONSOLE_CONNECT = 0x1 - WTS_CONSOLE_DISCONNECT = 0x2 - WTS_REMOTE_CONNECT = 0x3 - WTS_REMOTE_DISCONNECT = 0x4 - WTS_SESSION_LOGON = 0x5 - WTS_SESSION_LOGOFF = 0x6 - WTS_SESSION_LOCK = 0x7 - WTS_SESSION_UNLOCK = 0x8 - WTS_SESSION_REMOTE_CONTROL = 0x9 - WTS_SESSION_CREATE = 0xa - WTS_SESSION_TERMINATE = 0xb -) - -const ( - WTSActive = 0 - WTSConnected = 1 - WTSConnectQuery = 2 - WTSShadow = 3 - WTSDisconnected = 4 - WTSIdle = 5 - WTSListen = 6 - WTSReset = 7 - WTSDown = 8 - WTSInit = 9 -) - -type WTSSESSION_NOTIFICATION struct { - Size uint32 - SessionID uint32 -} - -type WTS_SESSION_INFO struct { - SessionID uint32 - WindowStationName *uint16 - State uint32 -} - -//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken -//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW -//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go index 03383f1df..62fc31b40 100644 --- a/vendor/golang.org/x/sys/windows/service.go +++ b/vendor/golang.org/x/sys/windows/service.go @@ -85,47 +85,23 @@ const ( SERVICE_INACTIVE = 2 SERVICE_STATE_ALL = 3 - SERVICE_QUERY_CONFIG = 1 - SERVICE_CHANGE_CONFIG = 2 - SERVICE_QUERY_STATUS = 4 - SERVICE_ENUMERATE_DEPENDENTS = 8 - SERVICE_START = 16 - SERVICE_STOP = 32 - SERVICE_PAUSE_CONTINUE = 64 - SERVICE_INTERROGATE = 128 - SERVICE_USER_DEFINED_CONTROL = 256 - SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL - + SERVICE_QUERY_CONFIG = 1 + SERVICE_CHANGE_CONFIG = 2 + SERVICE_QUERY_STATUS = 4 + SERVICE_ENUMERATE_DEPENDENTS = 8 + SERVICE_START = 16 + SERVICE_STOP = 32 + SERVICE_PAUSE_CONTINUE = 64 + SERVICE_INTERROGATE = 128 + SERVICE_USER_DEFINED_CONTROL = 256 + SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL SERVICE_RUNS_IN_SYSTEM_PROCESS = 1 + SERVICE_CONFIG_DESCRIPTION = 1 + SERVICE_CONFIG_FAILURE_ACTIONS = 2 - SERVICE_CONFIG_DESCRIPTION = 1 - SERVICE_CONFIG_FAILURE_ACTIONS = 2 - SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3 - SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4 - SERVICE_CONFIG_SERVICE_SID_INFO = 5 - SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6 - SERVICE_CONFIG_PRESHUTDOWN_INFO = 7 - SERVICE_CONFIG_TRIGGER_INFO = 8 - SERVICE_CONFIG_PREFERRED_NODE = 9 - SERVICE_CONFIG_LAUNCH_PROTECTED = 12 - - SERVICE_SID_TYPE_NONE = 0 - SERVICE_SID_TYPE_UNRESTRICTED = 1 - SERVICE_SID_TYPE_RESTRICTED = 2 | SERVICE_SID_TYPE_UNRESTRICTED + NO_ERROR = 0 SC_ENUM_PROCESS_INFO = 0 - - SERVICE_NOTIFY_STATUS_CHANGE = 2 - SERVICE_NOTIFY_STOPPED = 0x00000001 - SERVICE_NOTIFY_START_PENDING = 0x00000002 - SERVICE_NOTIFY_STOP_PENDING = 0x00000004 - SERVICE_NOTIFY_RUNNING = 0x00000008 - SERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010 - SERVICE_NOTIFY_PAUSE_PENDING = 0x00000020 - SERVICE_NOTIFY_PAUSED = 0x00000040 - SERVICE_NOTIFY_CREATED = 0x00000080 - SERVICE_NOTIFY_DELETED = 0x00000100 - SERVICE_NOTIFY_DELETE_PENDING = 0x00000200 ) type SERVICE_STATUS struct { @@ -177,16 +153,6 @@ type ENUM_SERVICE_STATUS_PROCESS struct { ServiceStatusProcess SERVICE_STATUS_PROCESS } -type SERVICE_NOTIFY struct { - Version uint32 - NotifyCallback uintptr - Context uintptr - NotificationStatus uint32 - ServiceStatus SERVICE_STATUS_PROCESS - NotificationTriggered uint32 - ServiceNames *uint16 -} - type SERVICE_FAILURE_ACTIONS struct { ResetPeriod uint32 RebootMsg *uint16 @@ -200,19 +166,12 @@ type SC_ACTION struct { Delay uint32 } -type QUERY_SERVICE_LOCK_STATUS struct { - IsLocked uint32 - LockOwner *uint16 - LockDuration uint32 -} - //sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle //sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW //sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW //sys DeleteService(service Handle) (err error) = advapi32.DeleteService //sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW //sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus -//sys QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW //sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService //sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW //sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus @@ -221,5 +180,4 @@ type QUERY_SERVICE_LOCK_STATUS struct { //sys ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W //sys QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W //sys EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW -//sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx -//sys NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW +//sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 92ce02bbc..f72fa55f3 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -10,7 +10,6 @@ import ( errorspkg "errors" "sync" "syscall" - "time" "unicode/utf16" "unsafe" ) @@ -56,10 +55,6 @@ const ( FILE_UNICODE_ON_DISK = 0x00000004 FILE_VOLUME_IS_COMPRESSED = 0x00008000 FILE_VOLUME_QUOTAS = 0x00000020 - - // Return values of SleepEx and other APC functions - STATUS_USER_APC = 0x000000C0 - WAIT_IO_COMPLETION = STATUS_USER_APC ) // StringToUTF16 is deprecated. Use UTF16FromString instead. @@ -139,11 +134,9 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys GetVersion() (ver uint32, err error) //sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW //sys ExitProcess(exitcode uint32) -//sys IsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process -//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW +//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW //sys ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) //sys WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) -//sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) //sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] //sys CloseHandle(handle Handle) (err error) //sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle] @@ -152,7 +145,6 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW //sys FindClose(handle Handle) (err error) //sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) -//sys GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) //sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW //sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW //sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW @@ -172,14 +164,11 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys CancelIo(s Handle) (err error) //sys CancelIoEx(s Handle, o *Overlapped) (err error) //sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW -//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) -//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) = shell32.ShellExecuteW -//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath +//sys OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) //sys TerminateProcess(handle Handle, exitcode uint32) (err error) //sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) //sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW //sys GetCurrentProcess() (pseudoHandle Handle, err error) -//sys GetCurrentThread() (pseudoHandle Handle, err error) //sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) //sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) //sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] @@ -194,9 +183,6 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW //sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW //sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW -//sys CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock -//sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock -//sys getTickCount64() (ms uint64) = kernel32.GetTickCount64 //sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) //sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW //sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW @@ -235,7 +221,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW //sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW //sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW -//sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys getCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId //sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo @@ -244,8 +230,6 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot //sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW //sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW -//sys Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) -//sys Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) //sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) // This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. //sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW @@ -257,18 +241,6 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys SetEvent(event Handle) (err error) = kernel32.SetEvent //sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent //sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent -//sys SleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx -//sys CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW -//sys AssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject -//sys TerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject -//sys SetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode -//sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread -//sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass -//sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass -//sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) -//sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) -//sys GetProcessId(process Handle) (id uint32, err error) -//sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) // Volume Management Functions //sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW @@ -290,11 +262,6 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW //sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW //sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW -//sys MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW -//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString -//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 -//sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid -//sys coTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree // syscall interface implementation for other packages @@ -509,10 +476,6 @@ func ComputerName() (name string, err error) { return string(utf16.Decode(b[0:n])), nil } -func DurationSinceBoot() time.Duration { - return time.Duration(getTickCount64()) * time.Millisecond -} - func Ftruncate(fd Handle, length int64) (err error) { curoffset, e := Seek(fd, 0, 1) if e != nil { @@ -596,6 +559,9 @@ func Fsync(fd Handle) (err error) { } func Chmod(path string, mode uint32) (err error) { + if mode == 0 { + return syscall.EINVAL + } p, e := UTF16PtrFromString(path) if e != nil { return e @@ -1122,7 +1088,7 @@ func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { return syscall.EWINDOWS } -func Getpid() (pid int) { return int(GetCurrentProcessId()) } +func Getpid() (pid int) { return int(getCurrentProcessId()) } func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { // NOTE(rsc): The Win32finddata struct is wrong for the system call: @@ -1250,57 +1216,3 @@ func Readlink(path string, buf []byte) (n int, err error) { return n, nil } - -// GUIDFromString parses a string in the form of -// "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" into a GUID. -func GUIDFromString(str string) (GUID, error) { - guid := GUID{} - str16, err := syscall.UTF16PtrFromString(str) - if err != nil { - return guid, err - } - err = clsidFromString(str16, &guid) - if err != nil { - return guid, err - } - return guid, nil -} - -// GenerateGUID creates a new random GUID. -func GenerateGUID() (GUID, error) { - guid := GUID{} - err := coCreateGuid(&guid) - if err != nil { - return guid, err - } - return guid, nil -} - -// String returns the canonical string form of the GUID, -// in the form of "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}". -func (guid GUID) String() string { - var str [100]uint16 - chars := stringFromGUID2(&guid, &str[0], int32(len(str))) - if chars <= 1 { - return "" - } - return string(utf16.Decode(str[:chars-1])) -} - -// KnownFolderPath returns a well-known folder path for the current user, specified by one of -// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. -func KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { - return Token(0).KnownFolderPath(folderID, flags) -} - -// KnownFolderPath returns a well-known folder path for the user token, specified by one of -// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. -func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { - var p *uint16 - err := shGetKnownFolderPath(folderID, flags, t, &p) - if err != nil { - return "", err - } - defer coTaskMemFree(unsafe.Pointer(p)) - return UTF16ToString((*[(1 << 30) - 1]uint16)(unsafe.Pointer(p))[:]), nil -} diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 1cba11ed5..141ca81bd 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -4,10 +4,33 @@ package windows -import ( - "net" - "syscall" - "unsafe" +import "syscall" + +const ( + // Windows errors. + ERROR_FILE_NOT_FOUND syscall.Errno = 2 + ERROR_PATH_NOT_FOUND syscall.Errno = 3 + ERROR_ACCESS_DENIED syscall.Errno = 5 + ERROR_NO_MORE_FILES syscall.Errno = 18 + ERROR_HANDLE_EOF syscall.Errno = 38 + ERROR_NETNAME_DELETED syscall.Errno = 64 + ERROR_FILE_EXISTS syscall.Errno = 80 + ERROR_BROKEN_PIPE syscall.Errno = 109 + ERROR_BUFFER_OVERFLOW syscall.Errno = 111 + ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 + ERROR_MOD_NOT_FOUND syscall.Errno = 126 + ERROR_PROC_NOT_FOUND syscall.Errno = 127 + ERROR_ALREADY_EXISTS syscall.Errno = 183 + ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 + ERROR_MORE_DATA syscall.Errno = 234 + ERROR_OPERATION_ABORTED syscall.Errno = 995 + ERROR_IO_PENDING syscall.Errno = 997 + ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 + ERROR_NOT_FOUND syscall.Errno = 1168 + ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 + WSAEACCES syscall.Errno = 10013 + WSAEMSGSIZE syscall.Errno = 10040 + WSAECONNRESET syscall.Errno = 10054 ) const ( @@ -103,19 +126,9 @@ const ( OPEN_ALWAYS = 4 TRUNCATE_EXISTING = 5 - FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000 - FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 - FILE_FLAG_OPEN_NO_RECALL = 0x00100000 - FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 - FILE_FLAG_SESSION_AWARE = 0x00800000 - FILE_FLAG_POSIX_SEMANTICS = 0x01000000 - FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 - FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 - FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 - FILE_FLAG_RANDOM_ACCESS = 0x10000000 - FILE_FLAG_NO_BUFFERING = 0x20000000 - FILE_FLAG_OVERLAPPED = 0x40000000 - FILE_FLAG_WRITE_THROUGH = 0x80000000 + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 + FILE_FLAG_OVERLAPPED = 0x40000000 HANDLE_FLAG_INHERIT = 0x00000001 STARTF_USESTDHANDLES = 0x00000100 @@ -154,43 +167,14 @@ const ( IGNORE = 0 INFINITE = 0xffffffff + WAIT_TIMEOUT = 258 WAIT_ABANDONED = 0x00000080 WAIT_OBJECT_0 = 0x00000000 WAIT_FAILED = 0xFFFFFFFF - // Standard access rights. - DELETE = 0x00010000 - READ_CONTROL = 0x00020000 - SYNCHRONIZE = 0x00100000 - WRITE_DAC = 0x00040000 - WRITE_OWNER = 0x00080000 - - // Access rights for process. - PROCESS_CREATE_PROCESS = 0x0080 - PROCESS_CREATE_THREAD = 0x0002 - PROCESS_DUP_HANDLE = 0x0040 - PROCESS_QUERY_INFORMATION = 0x0400 - PROCESS_QUERY_LIMITED_INFORMATION = 0x1000 - PROCESS_SET_INFORMATION = 0x0200 - PROCESS_SET_QUOTA = 0x0100 - PROCESS_SUSPEND_RESUME = 0x0800 - PROCESS_TERMINATE = 0x0001 - PROCESS_VM_OPERATION = 0x0008 - PROCESS_VM_READ = 0x0010 - PROCESS_VM_WRITE = 0x0020 - - // Access rights for thread. - THREAD_DIRECT_IMPERSONATION = 0x0200 - THREAD_GET_CONTEXT = 0x0008 - THREAD_IMPERSONATE = 0x0100 - THREAD_QUERY_INFORMATION = 0x0040 - THREAD_QUERY_LIMITED_INFORMATION = 0x0800 - THREAD_SET_CONTEXT = 0x0010 - THREAD_SET_INFORMATION = 0x0020 - THREAD_SET_LIMITED_INFORMATION = 0x0400 - THREAD_SET_THREAD_TOKEN = 0x0080 - THREAD_SUSPEND_RESUME = 0x0002 - THREAD_TERMINATE = 0x0001 + PROCESS_TERMINATE = 1 + PROCESS_QUERY_INFORMATION = 0x00000400 + SYNCHRONIZE = 0x00100000 FILE_MAP_COPY = 0x01 FILE_MAP_WRITE = 0x02 @@ -418,6 +402,12 @@ const ( CERT_CHAIN_POLICY_EV = 8 CERT_CHAIN_POLICY_SSL_F12 = 9 + CERT_E_EXPIRED = 0x800B0101 + CERT_E_ROLE = 0x800B0103 + CERT_E_PURPOSE = 0x800B0106 + CERT_E_UNTRUSTEDROOT = 0x800B0109 + CERT_E_CN_NO_MATCH = 0x800B010F + /* AuthType values for SSLExtraCertChainPolicyPara struct */ AUTHTYPE_CLIENT = 1 AUTHTYPE_SERVER = 2 @@ -430,26 +420,6 @@ const ( SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 ) -const ( - // flags for SetErrorMode - SEM_FAILCRITICALERRORS = 0x0001 - SEM_NOALIGNMENTFAULTEXCEPT = 0x0004 - SEM_NOGPFAULTERRORBOX = 0x0002 - SEM_NOOPENFILEERRORBOX = 0x8000 -) - -const ( - // Priority class. - ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 - BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 - HIGH_PRIORITY_CLASS = 0x00000080 - IDLE_PRIORITY_CLASS = 0x00000040 - NORMAL_PRIORITY_CLASS = 0x00000020 - PROCESS_MODE_BACKGROUND_BEGIN = 0x00100000 - PROCESS_MODE_BACKGROUND_END = 0x00200000 - REALTIME_PRIORITY_CLASS = 0x00000100 -) - var ( OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00") OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00") @@ -659,16 +629,6 @@ type ProcessEntry32 struct { ExeFile [MAX_PATH]uint16 } -type ThreadEntry32 struct { - Size uint32 - Usage uint32 - ThreadID uint32 - OwnerProcessID uint32 - BasePri int32 - DeltaPri int32 - Flags uint32 -} - type Systemtime struct { Year uint16 Month uint16 @@ -889,6 +849,10 @@ const ( DNS_TYPE_NBSTAT = 0xff01 ) +const ( + DNS_INFO_NO_RECORDS = 0x251D +) + const ( // flags inside DNSRecord.Dw DnsSectionQuestion = 0x0000 @@ -1350,41 +1314,6 @@ const ( ComputerNameMax = 8 ) -// For MessageBox() -const ( - MB_OK = 0x00000000 - MB_OKCANCEL = 0x00000001 - MB_ABORTRETRYIGNORE = 0x00000002 - MB_YESNOCANCEL = 0x00000003 - MB_YESNO = 0x00000004 - MB_RETRYCANCEL = 0x00000005 - MB_CANCELTRYCONTINUE = 0x00000006 - MB_ICONHAND = 0x00000010 - MB_ICONQUESTION = 0x00000020 - MB_ICONEXCLAMATION = 0x00000030 - MB_ICONASTERISK = 0x00000040 - MB_USERICON = 0x00000080 - MB_ICONWARNING = MB_ICONEXCLAMATION - MB_ICONERROR = MB_ICONHAND - MB_ICONINFORMATION = MB_ICONASTERISK - MB_ICONSTOP = MB_ICONHAND - MB_DEFBUTTON1 = 0x00000000 - MB_DEFBUTTON2 = 0x00000100 - MB_DEFBUTTON3 = 0x00000200 - MB_DEFBUTTON4 = 0x00000300 - MB_APPLMODAL = 0x00000000 - MB_SYSTEMMODAL = 0x00001000 - MB_TASKMODAL = 0x00002000 - MB_HELP = 0x00004000 - MB_NOFOCUS = 0x00008000 - MB_SETFOREGROUND = 0x00010000 - MB_DEFAULT_DESKTOP_ONLY = 0x00020000 - MB_TOPMOST = 0x00040000 - MB_RIGHT = 0x00080000 - MB_RTLREADING = 0x00100000 - MB_SERVICE_NOTIFICATION = 0x00200000 -) - const ( MOVEFILE_REPLACE_EXISTING = 0x1 MOVEFILE_COPY_ALLOWED = 0x2 @@ -1413,16 +1342,6 @@ type SocketAddress struct { SockaddrLength int32 } -// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither. -func (addr *SocketAddress) IP() net.IP { - if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET { - return (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:] - } else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 { - return (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:] - } - return nil -} - type IpAdapterUnicastAddress struct { Length uint32 Flags uint32 @@ -1548,104 +1467,3 @@ type ConsoleScreenBufferInfo struct { } const UNIX_PATH_MAX = 108 // defined in afunix.h - -const ( - // flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags - JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 - JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 - JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 - JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 - JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 - JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 - JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 - JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 - JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 - JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 - JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 - JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 - JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 - JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000 - JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 -) - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 -} - -type IO_COUNTERS struct { - ReadOperationCount uint64 - WriteOperationCount uint64 - OtherOperationCount uint64 - ReadTransferCount uint64 - WriteTransferCount uint64 - OtherTransferCount uint64 -} - -type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct { - BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION - IoInfo IO_COUNTERS - ProcessMemoryLimit uintptr - JobMemoryLimit uintptr - PeakProcessMemoryUsed uintptr - PeakJobMemoryUsed uintptr -} - -const ( - // UIRestrictionsClass - JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 - JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 - JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 - JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 - JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 - JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 - JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 - JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 -) - -type JOBOBJECT_BASIC_UI_RESTRICTIONS struct { - UIRestrictionsClass uint32 -} - -const ( - // JobObjectInformationClass - JobObjectAssociateCompletionPortInformation = 7 - JobObjectBasicLimitInformation = 2 - JobObjectBasicUIRestrictions = 4 - JobObjectCpuRateControlInformation = 15 - JobObjectEndOfJobTimeInformation = 6 - JobObjectExtendedLimitInformation = 9 - JobObjectGroupInformation = 11 - JobObjectGroupInformationEx = 14 - JobObjectLimitViolationInformation2 = 35 - JobObjectNetRateControlInformation = 32 - JobObjectNotificationLimitInformation = 12 - JobObjectNotificationLimitInformation2 = 34 - JobObjectSecurityLimitInformation = 5 -) - -const ( - KF_FLAG_DEFAULT = 0x00000000 - KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000 - KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000 - KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000 - KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000 - KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000 - KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000 - KF_FLAG_CREATE = 0x00008000 - KF_FLAG_DONT_VERIFY = 0x00004000 - KF_FLAG_DONT_UNEXPAND = 0x00002000 - KF_FLAG_NO_ALIAS = 0x00001000 - KF_FLAG_INIT = 0x00000800 - KF_FLAG_DEFAULT_PATH = 0x00000400 - KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200 - KF_FLAG_SIMPLE_IDLIST = 0x00000100 - KF_FLAG_ALIAS_ONLY = 0x80000000 -) diff --git a/vendor/golang.org/x/sys/windows/zerrors_windows.go b/vendor/golang.org/x/sys/windows/zerrors_windows.go deleted file mode 100644 index f02120035..000000000 --- a/vendor/golang.org/x/sys/windows/zerrors_windows.go +++ /dev/null @@ -1,6853 +0,0 @@ -// Code generated by 'mkerrors.bash'; DO NOT EDIT. - -package windows - -import "syscall" - -const ( - FACILITY_NULL = 0 - FACILITY_RPC = 1 - FACILITY_DISPATCH = 2 - FACILITY_STORAGE = 3 - FACILITY_ITF = 4 - FACILITY_WIN32 = 7 - FACILITY_WINDOWS = 8 - FACILITY_SSPI = 9 - FACILITY_SECURITY = 9 - FACILITY_CONTROL = 10 - FACILITY_CERT = 11 - FACILITY_INTERNET = 12 - FACILITY_MEDIASERVER = 13 - FACILITY_MSMQ = 14 - FACILITY_SETUPAPI = 15 - FACILITY_SCARD = 16 - FACILITY_COMPLUS = 17 - FACILITY_AAF = 18 - FACILITY_URT = 19 - FACILITY_ACS = 20 - FACILITY_DPLAY = 21 - FACILITY_UMI = 22 - FACILITY_SXS = 23 - FACILITY_WINDOWS_CE = 24 - FACILITY_HTTP = 25 - FACILITY_USERMODE_COMMONLOG = 26 - FACILITY_WER = 27 - FACILITY_USERMODE_FILTER_MANAGER = 31 - FACILITY_BACKGROUNDCOPY = 32 - FACILITY_CONFIGURATION = 33 - FACILITY_WIA = 33 - FACILITY_STATE_MANAGEMENT = 34 - FACILITY_METADIRECTORY = 35 - FACILITY_WINDOWSUPDATE = 36 - FACILITY_DIRECTORYSERVICE = 37 - FACILITY_GRAPHICS = 38 - FACILITY_SHELL = 39 - FACILITY_NAP = 39 - FACILITY_TPM_SERVICES = 40 - FACILITY_TPM_SOFTWARE = 41 - FACILITY_UI = 42 - FACILITY_XAML = 43 - FACILITY_ACTION_QUEUE = 44 - FACILITY_PLA = 48 - FACILITY_WINDOWS_SETUP = 48 - FACILITY_FVE = 49 - FACILITY_FWP = 50 - FACILITY_WINRM = 51 - FACILITY_NDIS = 52 - FACILITY_USERMODE_HYPERVISOR = 53 - FACILITY_CMI = 54 - FACILITY_USERMODE_VIRTUALIZATION = 55 - FACILITY_USERMODE_VOLMGR = 56 - FACILITY_BCD = 57 - FACILITY_USERMODE_VHD = 58 - FACILITY_USERMODE_HNS = 59 - FACILITY_SDIAG = 60 - FACILITY_WEBSERVICES = 61 - FACILITY_WINPE = 61 - FACILITY_WPN = 62 - FACILITY_WINDOWS_STORE = 63 - FACILITY_INPUT = 64 - FACILITY_EAP = 66 - FACILITY_WINDOWS_DEFENDER = 80 - FACILITY_OPC = 81 - FACILITY_XPS = 82 - FACILITY_MBN = 84 - FACILITY_POWERSHELL = 84 - FACILITY_RAS = 83 - FACILITY_P2P_INT = 98 - FACILITY_P2P = 99 - FACILITY_DAF = 100 - FACILITY_BLUETOOTH_ATT = 101 - FACILITY_AUDIO = 102 - FACILITY_STATEREPOSITORY = 103 - FACILITY_VISUALCPP = 109 - FACILITY_SCRIPT = 112 - FACILITY_PARSE = 113 - FACILITY_BLB = 120 - FACILITY_BLB_CLI = 121 - FACILITY_WSBAPP = 122 - FACILITY_BLBUI = 128 - FACILITY_USN = 129 - FACILITY_USERMODE_VOLSNAP = 130 - FACILITY_TIERING = 131 - FACILITY_WSB_ONLINE = 133 - FACILITY_ONLINE_ID = 134 - FACILITY_DEVICE_UPDATE_AGENT = 135 - FACILITY_DRVSERVICING = 136 - FACILITY_DLS = 153 - FACILITY_DELIVERY_OPTIMIZATION = 208 - FACILITY_USERMODE_SPACES = 231 - FACILITY_USER_MODE_SECURITY_CORE = 232 - FACILITY_USERMODE_LICENSING = 234 - FACILITY_SOS = 160 - FACILITY_DEBUGGERS = 176 - FACILITY_SPP = 256 - FACILITY_RESTORE = 256 - FACILITY_DMSERVER = 256 - FACILITY_DEPLOYMENT_SERVICES_SERVER = 257 - FACILITY_DEPLOYMENT_SERVICES_IMAGING = 258 - FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT = 259 - FACILITY_DEPLOYMENT_SERVICES_UTIL = 260 - FACILITY_DEPLOYMENT_SERVICES_BINLSVC = 261 - FACILITY_DEPLOYMENT_SERVICES_PXE = 263 - FACILITY_DEPLOYMENT_SERVICES_TFTP = 264 - FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT = 272 - FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING = 278 - FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER = 289 - FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT = 290 - FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER = 293 - FACILITY_LINGUISTIC_SERVICES = 305 - FACILITY_AUDIOSTREAMING = 1094 - FACILITY_ACCELERATOR = 1536 - FACILITY_WMAAECMA = 1996 - FACILITY_DIRECTMUSIC = 2168 - FACILITY_DIRECT3D10 = 2169 - FACILITY_DXGI = 2170 - FACILITY_DXGI_DDI = 2171 - FACILITY_DIRECT3D11 = 2172 - FACILITY_DIRECT3D11_DEBUG = 2173 - FACILITY_DIRECT3D12 = 2174 - FACILITY_DIRECT3D12_DEBUG = 2175 - FACILITY_LEAP = 2184 - FACILITY_AUDCLNT = 2185 - FACILITY_WINCODEC_DWRITE_DWM = 2200 - FACILITY_WINML = 2192 - FACILITY_DIRECT2D = 2201 - FACILITY_DEFRAG = 2304 - FACILITY_USERMODE_SDBUS = 2305 - FACILITY_JSCRIPT = 2306 - FACILITY_PIDGENX = 2561 - FACILITY_EAS = 85 - FACILITY_WEB = 885 - FACILITY_WEB_SOCKET = 886 - FACILITY_MOBILE = 1793 - FACILITY_SQLITE = 1967 - FACILITY_UTC = 1989 - FACILITY_WEP = 2049 - FACILITY_SYNCENGINE = 2050 - FACILITY_XBOX = 2339 - FACILITY_PIX = 2748 - ERROR_SUCCESS syscall.Errno = 0 - NO_ERROR = 0 - SEC_E_OK Handle = 0x00000000 - ERROR_INVALID_FUNCTION syscall.Errno = 1 - ERROR_FILE_NOT_FOUND syscall.Errno = 2 - ERROR_PATH_NOT_FOUND syscall.Errno = 3 - ERROR_TOO_MANY_OPEN_FILES syscall.Errno = 4 - ERROR_ACCESS_DENIED syscall.Errno = 5 - ERROR_INVALID_HANDLE syscall.Errno = 6 - ERROR_ARENA_TRASHED syscall.Errno = 7 - ERROR_NOT_ENOUGH_MEMORY syscall.Errno = 8 - ERROR_INVALID_BLOCK syscall.Errno = 9 - ERROR_BAD_ENVIRONMENT syscall.Errno = 10 - ERROR_BAD_FORMAT syscall.Errno = 11 - ERROR_INVALID_ACCESS syscall.Errno = 12 - ERROR_INVALID_DATA syscall.Errno = 13 - ERROR_OUTOFMEMORY syscall.Errno = 14 - ERROR_INVALID_DRIVE syscall.Errno = 15 - ERROR_CURRENT_DIRECTORY syscall.Errno = 16 - ERROR_NOT_SAME_DEVICE syscall.Errno = 17 - ERROR_NO_MORE_FILES syscall.Errno = 18 - ERROR_WRITE_PROTECT syscall.Errno = 19 - ERROR_BAD_UNIT syscall.Errno = 20 - ERROR_NOT_READY syscall.Errno = 21 - ERROR_BAD_COMMAND syscall.Errno = 22 - ERROR_CRC syscall.Errno = 23 - ERROR_BAD_LENGTH syscall.Errno = 24 - ERROR_SEEK syscall.Errno = 25 - ERROR_NOT_DOS_DISK syscall.Errno = 26 - ERROR_SECTOR_NOT_FOUND syscall.Errno = 27 - ERROR_OUT_OF_PAPER syscall.Errno = 28 - ERROR_WRITE_FAULT syscall.Errno = 29 - ERROR_READ_FAULT syscall.Errno = 30 - ERROR_GEN_FAILURE syscall.Errno = 31 - ERROR_SHARING_VIOLATION syscall.Errno = 32 - ERROR_LOCK_VIOLATION syscall.Errno = 33 - ERROR_WRONG_DISK syscall.Errno = 34 - ERROR_SHARING_BUFFER_EXCEEDED syscall.Errno = 36 - ERROR_HANDLE_EOF syscall.Errno = 38 - ERROR_HANDLE_DISK_FULL syscall.Errno = 39 - ERROR_NOT_SUPPORTED syscall.Errno = 50 - ERROR_REM_NOT_LIST syscall.Errno = 51 - ERROR_DUP_NAME syscall.Errno = 52 - ERROR_BAD_NETPATH syscall.Errno = 53 - ERROR_NETWORK_BUSY syscall.Errno = 54 - ERROR_DEV_NOT_EXIST syscall.Errno = 55 - ERROR_TOO_MANY_CMDS syscall.Errno = 56 - ERROR_ADAP_HDW_ERR syscall.Errno = 57 - ERROR_BAD_NET_RESP syscall.Errno = 58 - ERROR_UNEXP_NET_ERR syscall.Errno = 59 - ERROR_BAD_REM_ADAP syscall.Errno = 60 - ERROR_PRINTQ_FULL syscall.Errno = 61 - ERROR_NO_SPOOL_SPACE syscall.Errno = 62 - ERROR_PRINT_CANCELLED syscall.Errno = 63 - ERROR_NETNAME_DELETED syscall.Errno = 64 - ERROR_NETWORK_ACCESS_DENIED syscall.Errno = 65 - ERROR_BAD_DEV_TYPE syscall.Errno = 66 - ERROR_BAD_NET_NAME syscall.Errno = 67 - ERROR_TOO_MANY_NAMES syscall.Errno = 68 - ERROR_TOO_MANY_SESS syscall.Errno = 69 - ERROR_SHARING_PAUSED syscall.Errno = 70 - ERROR_REQ_NOT_ACCEP syscall.Errno = 71 - ERROR_REDIR_PAUSED syscall.Errno = 72 - ERROR_FILE_EXISTS syscall.Errno = 80 - ERROR_CANNOT_MAKE syscall.Errno = 82 - ERROR_FAIL_I24 syscall.Errno = 83 - ERROR_OUT_OF_STRUCTURES syscall.Errno = 84 - ERROR_ALREADY_ASSIGNED syscall.Errno = 85 - ERROR_INVALID_PASSWORD syscall.Errno = 86 - ERROR_INVALID_PARAMETER syscall.Errno = 87 - ERROR_NET_WRITE_FAULT syscall.Errno = 88 - ERROR_NO_PROC_SLOTS syscall.Errno = 89 - ERROR_TOO_MANY_SEMAPHORES syscall.Errno = 100 - ERROR_EXCL_SEM_ALREADY_OWNED syscall.Errno = 101 - ERROR_SEM_IS_SET syscall.Errno = 102 - ERROR_TOO_MANY_SEM_REQUESTS syscall.Errno = 103 - ERROR_INVALID_AT_INTERRUPT_TIME syscall.Errno = 104 - ERROR_SEM_OWNER_DIED syscall.Errno = 105 - ERROR_SEM_USER_LIMIT syscall.Errno = 106 - ERROR_DISK_CHANGE syscall.Errno = 107 - ERROR_DRIVE_LOCKED syscall.Errno = 108 - ERROR_BROKEN_PIPE syscall.Errno = 109 - ERROR_OPEN_FAILED syscall.Errno = 110 - ERROR_BUFFER_OVERFLOW syscall.Errno = 111 - ERROR_DISK_FULL syscall.Errno = 112 - ERROR_NO_MORE_SEARCH_HANDLES syscall.Errno = 113 - ERROR_INVALID_TARGET_HANDLE syscall.Errno = 114 - ERROR_INVALID_CATEGORY syscall.Errno = 117 - ERROR_INVALID_VERIFY_SWITCH syscall.Errno = 118 - ERROR_BAD_DRIVER_LEVEL syscall.Errno = 119 - ERROR_CALL_NOT_IMPLEMENTED syscall.Errno = 120 - ERROR_SEM_TIMEOUT syscall.Errno = 121 - ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 - ERROR_INVALID_NAME syscall.Errno = 123 - ERROR_INVALID_LEVEL syscall.Errno = 124 - ERROR_NO_VOLUME_LABEL syscall.Errno = 125 - ERROR_MOD_NOT_FOUND syscall.Errno = 126 - ERROR_PROC_NOT_FOUND syscall.Errno = 127 - ERROR_WAIT_NO_CHILDREN syscall.Errno = 128 - ERROR_CHILD_NOT_COMPLETE syscall.Errno = 129 - ERROR_DIRECT_ACCESS_HANDLE syscall.Errno = 130 - ERROR_NEGATIVE_SEEK syscall.Errno = 131 - ERROR_SEEK_ON_DEVICE syscall.Errno = 132 - ERROR_IS_JOIN_TARGET syscall.Errno = 133 - ERROR_IS_JOINED syscall.Errno = 134 - ERROR_IS_SUBSTED syscall.Errno = 135 - ERROR_NOT_JOINED syscall.Errno = 136 - ERROR_NOT_SUBSTED syscall.Errno = 137 - ERROR_JOIN_TO_JOIN syscall.Errno = 138 - ERROR_SUBST_TO_SUBST syscall.Errno = 139 - ERROR_JOIN_TO_SUBST syscall.Errno = 140 - ERROR_SUBST_TO_JOIN syscall.Errno = 141 - ERROR_BUSY_DRIVE syscall.Errno = 142 - ERROR_SAME_DRIVE syscall.Errno = 143 - ERROR_DIR_NOT_ROOT syscall.Errno = 144 - ERROR_DIR_NOT_EMPTY syscall.Errno = 145 - ERROR_IS_SUBST_PATH syscall.Errno = 146 - ERROR_IS_JOIN_PATH syscall.Errno = 147 - ERROR_PATH_BUSY syscall.Errno = 148 - ERROR_IS_SUBST_TARGET syscall.Errno = 149 - ERROR_SYSTEM_TRACE syscall.Errno = 150 - ERROR_INVALID_EVENT_COUNT syscall.Errno = 151 - ERROR_TOO_MANY_MUXWAITERS syscall.Errno = 152 - ERROR_INVALID_LIST_FORMAT syscall.Errno = 153 - ERROR_LABEL_TOO_LONG syscall.Errno = 154 - ERROR_TOO_MANY_TCBS syscall.Errno = 155 - ERROR_SIGNAL_REFUSED syscall.Errno = 156 - ERROR_DISCARDED syscall.Errno = 157 - ERROR_NOT_LOCKED syscall.Errno = 158 - ERROR_BAD_THREADID_ADDR syscall.Errno = 159 - ERROR_BAD_ARGUMENTS syscall.Errno = 160 - ERROR_BAD_PATHNAME syscall.Errno = 161 - ERROR_SIGNAL_PENDING syscall.Errno = 162 - ERROR_MAX_THRDS_REACHED syscall.Errno = 164 - ERROR_LOCK_FAILED syscall.Errno = 167 - ERROR_BUSY syscall.Errno = 170 - ERROR_DEVICE_SUPPORT_IN_PROGRESS syscall.Errno = 171 - ERROR_CANCEL_VIOLATION syscall.Errno = 173 - ERROR_ATOMIC_LOCKS_NOT_SUPPORTED syscall.Errno = 174 - ERROR_INVALID_SEGMENT_NUMBER syscall.Errno = 180 - ERROR_INVALID_ORDINAL syscall.Errno = 182 - ERROR_ALREADY_EXISTS syscall.Errno = 183 - ERROR_INVALID_FLAG_NUMBER syscall.Errno = 186 - ERROR_SEM_NOT_FOUND syscall.Errno = 187 - ERROR_INVALID_STARTING_CODESEG syscall.Errno = 188 - ERROR_INVALID_STACKSEG syscall.Errno = 189 - ERROR_INVALID_MODULETYPE syscall.Errno = 190 - ERROR_INVALID_EXE_SIGNATURE syscall.Errno = 191 - ERROR_EXE_MARKED_INVALID syscall.Errno = 192 - ERROR_BAD_EXE_FORMAT syscall.Errno = 193 - ERROR_ITERATED_DATA_EXCEEDS_64k syscall.Errno = 194 - ERROR_INVALID_MINALLOCSIZE syscall.Errno = 195 - ERROR_DYNLINK_FROM_INVALID_RING syscall.Errno = 196 - ERROR_IOPL_NOT_ENABLED syscall.Errno = 197 - ERROR_INVALID_SEGDPL syscall.Errno = 198 - ERROR_AUTODATASEG_EXCEEDS_64k syscall.Errno = 199 - ERROR_RING2SEG_MUST_BE_MOVABLE syscall.Errno = 200 - ERROR_RELOC_CHAIN_XEEDS_SEGLIM syscall.Errno = 201 - ERROR_INFLOOP_IN_RELOC_CHAIN syscall.Errno = 202 - ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 - ERROR_NO_SIGNAL_SENT syscall.Errno = 205 - ERROR_FILENAME_EXCED_RANGE syscall.Errno = 206 - ERROR_RING2_STACK_IN_USE syscall.Errno = 207 - ERROR_META_EXPANSION_TOO_LONG syscall.Errno = 208 - ERROR_INVALID_SIGNAL_NUMBER syscall.Errno = 209 - ERROR_THREAD_1_INACTIVE syscall.Errno = 210 - ERROR_LOCKED syscall.Errno = 212 - ERROR_TOO_MANY_MODULES syscall.Errno = 214 - ERROR_NESTING_NOT_ALLOWED syscall.Errno = 215 - ERROR_EXE_MACHINE_TYPE_MISMATCH syscall.Errno = 216 - ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY syscall.Errno = 217 - ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY syscall.Errno = 218 - ERROR_FILE_CHECKED_OUT syscall.Errno = 220 - ERROR_CHECKOUT_REQUIRED syscall.Errno = 221 - ERROR_BAD_FILE_TYPE syscall.Errno = 222 - ERROR_FILE_TOO_LARGE syscall.Errno = 223 - ERROR_FORMS_AUTH_REQUIRED syscall.Errno = 224 - ERROR_VIRUS_INFECTED syscall.Errno = 225 - ERROR_VIRUS_DELETED syscall.Errno = 226 - ERROR_PIPE_LOCAL syscall.Errno = 229 - ERROR_BAD_PIPE syscall.Errno = 230 - ERROR_PIPE_BUSY syscall.Errno = 231 - ERROR_NO_DATA syscall.Errno = 232 - ERROR_PIPE_NOT_CONNECTED syscall.Errno = 233 - ERROR_MORE_DATA syscall.Errno = 234 - ERROR_NO_WORK_DONE syscall.Errno = 235 - ERROR_VC_DISCONNECTED syscall.Errno = 240 - ERROR_INVALID_EA_NAME syscall.Errno = 254 - ERROR_EA_LIST_INCONSISTENT syscall.Errno = 255 - WAIT_TIMEOUT syscall.Errno = 258 - ERROR_NO_MORE_ITEMS syscall.Errno = 259 - ERROR_CANNOT_COPY syscall.Errno = 266 - ERROR_DIRECTORY syscall.Errno = 267 - ERROR_EAS_DIDNT_FIT syscall.Errno = 275 - ERROR_EA_FILE_CORRUPT syscall.Errno = 276 - ERROR_EA_TABLE_FULL syscall.Errno = 277 - ERROR_INVALID_EA_HANDLE syscall.Errno = 278 - ERROR_EAS_NOT_SUPPORTED syscall.Errno = 282 - ERROR_NOT_OWNER syscall.Errno = 288 - ERROR_TOO_MANY_POSTS syscall.Errno = 298 - ERROR_PARTIAL_COPY syscall.Errno = 299 - ERROR_OPLOCK_NOT_GRANTED syscall.Errno = 300 - ERROR_INVALID_OPLOCK_PROTOCOL syscall.Errno = 301 - ERROR_DISK_TOO_FRAGMENTED syscall.Errno = 302 - ERROR_DELETE_PENDING syscall.Errno = 303 - ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING syscall.Errno = 304 - ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME syscall.Errno = 305 - ERROR_SECURITY_STREAM_IS_INCONSISTENT syscall.Errno = 306 - ERROR_INVALID_LOCK_RANGE syscall.Errno = 307 - ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT syscall.Errno = 308 - ERROR_NOTIFICATION_GUID_ALREADY_DEFINED syscall.Errno = 309 - ERROR_INVALID_EXCEPTION_HANDLER syscall.Errno = 310 - ERROR_DUPLICATE_PRIVILEGES syscall.Errno = 311 - ERROR_NO_RANGES_PROCESSED syscall.Errno = 312 - ERROR_NOT_ALLOWED_ON_SYSTEM_FILE syscall.Errno = 313 - ERROR_DISK_RESOURCES_EXHAUSTED syscall.Errno = 314 - ERROR_INVALID_TOKEN syscall.Errno = 315 - ERROR_DEVICE_FEATURE_NOT_SUPPORTED syscall.Errno = 316 - ERROR_MR_MID_NOT_FOUND syscall.Errno = 317 - ERROR_SCOPE_NOT_FOUND syscall.Errno = 318 - ERROR_UNDEFINED_SCOPE syscall.Errno = 319 - ERROR_INVALID_CAP syscall.Errno = 320 - ERROR_DEVICE_UNREACHABLE syscall.Errno = 321 - ERROR_DEVICE_NO_RESOURCES syscall.Errno = 322 - ERROR_DATA_CHECKSUM_ERROR syscall.Errno = 323 - ERROR_INTERMIXED_KERNEL_EA_OPERATION syscall.Errno = 324 - ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED syscall.Errno = 326 - ERROR_OFFSET_ALIGNMENT_VIOLATION syscall.Errno = 327 - ERROR_INVALID_FIELD_IN_PARAMETER_LIST syscall.Errno = 328 - ERROR_OPERATION_IN_PROGRESS syscall.Errno = 329 - ERROR_BAD_DEVICE_PATH syscall.Errno = 330 - ERROR_TOO_MANY_DESCRIPTORS syscall.Errno = 331 - ERROR_SCRUB_DATA_DISABLED syscall.Errno = 332 - ERROR_NOT_REDUNDANT_STORAGE syscall.Errno = 333 - ERROR_RESIDENT_FILE_NOT_SUPPORTED syscall.Errno = 334 - ERROR_COMPRESSED_FILE_NOT_SUPPORTED syscall.Errno = 335 - ERROR_DIRECTORY_NOT_SUPPORTED syscall.Errno = 336 - ERROR_NOT_READ_FROM_COPY syscall.Errno = 337 - ERROR_FT_WRITE_FAILURE syscall.Errno = 338 - ERROR_FT_DI_SCAN_REQUIRED syscall.Errno = 339 - ERROR_INVALID_KERNEL_INFO_VERSION syscall.Errno = 340 - ERROR_INVALID_PEP_INFO_VERSION syscall.Errno = 341 - ERROR_OBJECT_NOT_EXTERNALLY_BACKED syscall.Errno = 342 - ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN syscall.Errno = 343 - ERROR_COMPRESSION_NOT_BENEFICIAL syscall.Errno = 344 - ERROR_STORAGE_TOPOLOGY_ID_MISMATCH syscall.Errno = 345 - ERROR_BLOCKED_BY_PARENTAL_CONTROLS syscall.Errno = 346 - ERROR_BLOCK_TOO_MANY_REFERENCES syscall.Errno = 347 - ERROR_MARKED_TO_DISALLOW_WRITES syscall.Errno = 348 - ERROR_ENCLAVE_FAILURE syscall.Errno = 349 - ERROR_FAIL_NOACTION_REBOOT syscall.Errno = 350 - ERROR_FAIL_SHUTDOWN syscall.Errno = 351 - ERROR_FAIL_RESTART syscall.Errno = 352 - ERROR_MAX_SESSIONS_REACHED syscall.Errno = 353 - ERROR_NETWORK_ACCESS_DENIED_EDP syscall.Errno = 354 - ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL syscall.Errno = 355 - ERROR_EDP_POLICY_DENIES_OPERATION syscall.Errno = 356 - ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED syscall.Errno = 357 - ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT syscall.Errno = 358 - ERROR_DEVICE_IN_MAINTENANCE syscall.Errno = 359 - ERROR_NOT_SUPPORTED_ON_DAX syscall.Errno = 360 - ERROR_DAX_MAPPING_EXISTS syscall.Errno = 361 - ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING syscall.Errno = 362 - ERROR_CLOUD_FILE_METADATA_CORRUPT syscall.Errno = 363 - ERROR_CLOUD_FILE_METADATA_TOO_LARGE syscall.Errno = 364 - ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE syscall.Errno = 365 - ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH syscall.Errno = 366 - ERROR_CHILD_PROCESS_BLOCKED syscall.Errno = 367 - ERROR_STORAGE_LOST_DATA_PERSISTENCE syscall.Errno = 368 - ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE syscall.Errno = 369 - ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT syscall.Errno = 370 - ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY syscall.Errno = 371 - ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN syscall.Errno = 372 - ERROR_GDI_HANDLE_LEAK syscall.Errno = 373 - ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS syscall.Errno = 374 - ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED syscall.Errno = 375 - ERROR_NOT_A_CLOUD_FILE syscall.Errno = 376 - ERROR_CLOUD_FILE_NOT_IN_SYNC syscall.Errno = 377 - ERROR_CLOUD_FILE_ALREADY_CONNECTED syscall.Errno = 378 - ERROR_CLOUD_FILE_NOT_SUPPORTED syscall.Errno = 379 - ERROR_CLOUD_FILE_INVALID_REQUEST syscall.Errno = 380 - ERROR_CLOUD_FILE_READ_ONLY_VOLUME syscall.Errno = 381 - ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY syscall.Errno = 382 - ERROR_CLOUD_FILE_VALIDATION_FAILED syscall.Errno = 383 - ERROR_SMB1_NOT_AVAILABLE syscall.Errno = 384 - ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION syscall.Errno = 385 - ERROR_CLOUD_FILE_AUTHENTICATION_FAILED syscall.Errno = 386 - ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES syscall.Errno = 387 - ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE syscall.Errno = 388 - ERROR_CLOUD_FILE_UNSUCCESSFUL syscall.Errno = 389 - ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT syscall.Errno = 390 - ERROR_CLOUD_FILE_IN_USE syscall.Errno = 391 - ERROR_CLOUD_FILE_PINNED syscall.Errno = 392 - ERROR_CLOUD_FILE_REQUEST_ABORTED syscall.Errno = 393 - ERROR_CLOUD_FILE_PROPERTY_CORRUPT syscall.Errno = 394 - ERROR_CLOUD_FILE_ACCESS_DENIED syscall.Errno = 395 - ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS syscall.Errno = 396 - ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT syscall.Errno = 397 - ERROR_CLOUD_FILE_REQUEST_CANCELED syscall.Errno = 398 - ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED syscall.Errno = 399 - ERROR_THREAD_MODE_ALREADY_BACKGROUND syscall.Errno = 400 - ERROR_THREAD_MODE_NOT_BACKGROUND syscall.Errno = 401 - ERROR_PROCESS_MODE_ALREADY_BACKGROUND syscall.Errno = 402 - ERROR_PROCESS_MODE_NOT_BACKGROUND syscall.Errno = 403 - ERROR_CLOUD_FILE_PROVIDER_TERMINATED syscall.Errno = 404 - ERROR_NOT_A_CLOUD_SYNC_ROOT syscall.Errno = 405 - ERROR_FILE_PROTECTED_UNDER_DPL syscall.Errno = 406 - ERROR_VOLUME_NOT_CLUSTER_ALIGNED syscall.Errno = 407 - ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND syscall.Errno = 408 - ERROR_APPX_FILE_NOT_ENCRYPTED syscall.Errno = 409 - ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED syscall.Errno = 410 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET syscall.Errno = 411 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE syscall.Errno = 412 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER syscall.Errno = 413 - ERROR_LINUX_SUBSYSTEM_NOT_PRESENT syscall.Errno = 414 - ERROR_FT_READ_FAILURE syscall.Errno = 415 - ERROR_STORAGE_RESERVE_ID_INVALID syscall.Errno = 416 - ERROR_STORAGE_RESERVE_DOES_NOT_EXIST syscall.Errno = 417 - ERROR_STORAGE_RESERVE_ALREADY_EXISTS syscall.Errno = 418 - ERROR_STORAGE_RESERVE_NOT_EMPTY syscall.Errno = 419 - ERROR_NOT_A_DAX_VOLUME syscall.Errno = 420 - ERROR_NOT_DAX_MAPPABLE syscall.Errno = 421 - ERROR_TIME_CRITICAL_THREAD syscall.Errno = 422 - ERROR_DPL_NOT_SUPPORTED_FOR_USER syscall.Errno = 423 - ERROR_CASE_DIFFERING_NAMES_IN_DIR syscall.Errno = 424 - ERROR_CAPAUTHZ_NOT_DEVUNLOCKED syscall.Errno = 450 - ERROR_CAPAUTHZ_CHANGE_TYPE syscall.Errno = 451 - ERROR_CAPAUTHZ_NOT_PROVISIONED syscall.Errno = 452 - ERROR_CAPAUTHZ_NOT_AUTHORIZED syscall.Errno = 453 - ERROR_CAPAUTHZ_NO_POLICY syscall.Errno = 454 - ERROR_CAPAUTHZ_DB_CORRUPTED syscall.Errno = 455 - ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG syscall.Errno = 456 - ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY syscall.Errno = 457 - ERROR_CAPAUTHZ_SCCD_PARSE_ERROR syscall.Errno = 458 - ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED syscall.Errno = 459 - ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH syscall.Errno = 460 - ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT syscall.Errno = 480 - ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT syscall.Errno = 481 - ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT syscall.Errno = 482 - ERROR_DEVICE_HARDWARE_ERROR syscall.Errno = 483 - ERROR_INVALID_ADDRESS syscall.Errno = 487 - ERROR_VRF_CFG_ENABLED syscall.Errno = 1183 - ERROR_PARTITION_TERMINATING syscall.Errno = 1184 - ERROR_USER_PROFILE_LOAD syscall.Errno = 500 - ERROR_ARITHMETIC_OVERFLOW syscall.Errno = 534 - ERROR_PIPE_CONNECTED syscall.Errno = 535 - ERROR_PIPE_LISTENING syscall.Errno = 536 - ERROR_VERIFIER_STOP syscall.Errno = 537 - ERROR_ABIOS_ERROR syscall.Errno = 538 - ERROR_WX86_WARNING syscall.Errno = 539 - ERROR_WX86_ERROR syscall.Errno = 540 - ERROR_TIMER_NOT_CANCELED syscall.Errno = 541 - ERROR_UNWIND syscall.Errno = 542 - ERROR_BAD_STACK syscall.Errno = 543 - ERROR_INVALID_UNWIND_TARGET syscall.Errno = 544 - ERROR_INVALID_PORT_ATTRIBUTES syscall.Errno = 545 - ERROR_PORT_MESSAGE_TOO_LONG syscall.Errno = 546 - ERROR_INVALID_QUOTA_LOWER syscall.Errno = 547 - ERROR_DEVICE_ALREADY_ATTACHED syscall.Errno = 548 - ERROR_INSTRUCTION_MISALIGNMENT syscall.Errno = 549 - ERROR_PROFILING_NOT_STARTED syscall.Errno = 550 - ERROR_PROFILING_NOT_STOPPED syscall.Errno = 551 - ERROR_COULD_NOT_INTERPRET syscall.Errno = 552 - ERROR_PROFILING_AT_LIMIT syscall.Errno = 553 - ERROR_CANT_WAIT syscall.Errno = 554 - ERROR_CANT_TERMINATE_SELF syscall.Errno = 555 - ERROR_UNEXPECTED_MM_CREATE_ERR syscall.Errno = 556 - ERROR_UNEXPECTED_MM_MAP_ERROR syscall.Errno = 557 - ERROR_UNEXPECTED_MM_EXTEND_ERR syscall.Errno = 558 - ERROR_BAD_FUNCTION_TABLE syscall.Errno = 559 - ERROR_NO_GUID_TRANSLATION syscall.Errno = 560 - ERROR_INVALID_LDT_SIZE syscall.Errno = 561 - ERROR_INVALID_LDT_OFFSET syscall.Errno = 563 - ERROR_INVALID_LDT_DESCRIPTOR syscall.Errno = 564 - ERROR_TOO_MANY_THREADS syscall.Errno = 565 - ERROR_THREAD_NOT_IN_PROCESS syscall.Errno = 566 - ERROR_PAGEFILE_QUOTA_EXCEEDED syscall.Errno = 567 - ERROR_LOGON_SERVER_CONFLICT syscall.Errno = 568 - ERROR_SYNCHRONIZATION_REQUIRED syscall.Errno = 569 - ERROR_NET_OPEN_FAILED syscall.Errno = 570 - ERROR_IO_PRIVILEGE_FAILED syscall.Errno = 571 - ERROR_CONTROL_C_EXIT syscall.Errno = 572 - ERROR_MISSING_SYSTEMFILE syscall.Errno = 573 - ERROR_UNHANDLED_EXCEPTION syscall.Errno = 574 - ERROR_APP_INIT_FAILURE syscall.Errno = 575 - ERROR_PAGEFILE_CREATE_FAILED syscall.Errno = 576 - ERROR_INVALID_IMAGE_HASH syscall.Errno = 577 - ERROR_NO_PAGEFILE syscall.Errno = 578 - ERROR_ILLEGAL_FLOAT_CONTEXT syscall.Errno = 579 - ERROR_NO_EVENT_PAIR syscall.Errno = 580 - ERROR_DOMAIN_CTRLR_CONFIG_ERROR syscall.Errno = 581 - ERROR_ILLEGAL_CHARACTER syscall.Errno = 582 - ERROR_UNDEFINED_CHARACTER syscall.Errno = 583 - ERROR_FLOPPY_VOLUME syscall.Errno = 584 - ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT syscall.Errno = 585 - ERROR_BACKUP_CONTROLLER syscall.Errno = 586 - ERROR_MUTANT_LIMIT_EXCEEDED syscall.Errno = 587 - ERROR_FS_DRIVER_REQUIRED syscall.Errno = 588 - ERROR_CANNOT_LOAD_REGISTRY_FILE syscall.Errno = 589 - ERROR_DEBUG_ATTACH_FAILED syscall.Errno = 590 - ERROR_SYSTEM_PROCESS_TERMINATED syscall.Errno = 591 - ERROR_DATA_NOT_ACCEPTED syscall.Errno = 592 - ERROR_VDM_HARD_ERROR syscall.Errno = 593 - ERROR_DRIVER_CANCEL_TIMEOUT syscall.Errno = 594 - ERROR_REPLY_MESSAGE_MISMATCH syscall.Errno = 595 - ERROR_LOST_WRITEBEHIND_DATA syscall.Errno = 596 - ERROR_CLIENT_SERVER_PARAMETERS_INVALID syscall.Errno = 597 - ERROR_NOT_TINY_STREAM syscall.Errno = 598 - ERROR_STACK_OVERFLOW_READ syscall.Errno = 599 - ERROR_CONVERT_TO_LARGE syscall.Errno = 600 - ERROR_FOUND_OUT_OF_SCOPE syscall.Errno = 601 - ERROR_ALLOCATE_BUCKET syscall.Errno = 602 - ERROR_MARSHALL_OVERFLOW syscall.Errno = 603 - ERROR_INVALID_VARIANT syscall.Errno = 604 - ERROR_BAD_COMPRESSION_BUFFER syscall.Errno = 605 - ERROR_AUDIT_FAILED syscall.Errno = 606 - ERROR_TIMER_RESOLUTION_NOT_SET syscall.Errno = 607 - ERROR_INSUFFICIENT_LOGON_INFO syscall.Errno = 608 - ERROR_BAD_DLL_ENTRYPOINT syscall.Errno = 609 - ERROR_BAD_SERVICE_ENTRYPOINT syscall.Errno = 610 - ERROR_IP_ADDRESS_CONFLICT1 syscall.Errno = 611 - ERROR_IP_ADDRESS_CONFLICT2 syscall.Errno = 612 - ERROR_REGISTRY_QUOTA_LIMIT syscall.Errno = 613 - ERROR_NO_CALLBACK_ACTIVE syscall.Errno = 614 - ERROR_PWD_TOO_SHORT syscall.Errno = 615 - ERROR_PWD_TOO_RECENT syscall.Errno = 616 - ERROR_PWD_HISTORY_CONFLICT syscall.Errno = 617 - ERROR_UNSUPPORTED_COMPRESSION syscall.Errno = 618 - ERROR_INVALID_HW_PROFILE syscall.Errno = 619 - ERROR_INVALID_PLUGPLAY_DEVICE_PATH syscall.Errno = 620 - ERROR_QUOTA_LIST_INCONSISTENT syscall.Errno = 621 - ERROR_EVALUATION_EXPIRATION syscall.Errno = 622 - ERROR_ILLEGAL_DLL_RELOCATION syscall.Errno = 623 - ERROR_DLL_INIT_FAILED_LOGOFF syscall.Errno = 624 - ERROR_VALIDATE_CONTINUE syscall.Errno = 625 - ERROR_NO_MORE_MATCHES syscall.Errno = 626 - ERROR_RANGE_LIST_CONFLICT syscall.Errno = 627 - ERROR_SERVER_SID_MISMATCH syscall.Errno = 628 - ERROR_CANT_ENABLE_DENY_ONLY syscall.Errno = 629 - ERROR_FLOAT_MULTIPLE_FAULTS syscall.Errno = 630 - ERROR_FLOAT_MULTIPLE_TRAPS syscall.Errno = 631 - ERROR_NOINTERFACE syscall.Errno = 632 - ERROR_DRIVER_FAILED_SLEEP syscall.Errno = 633 - ERROR_CORRUPT_SYSTEM_FILE syscall.Errno = 634 - ERROR_COMMITMENT_MINIMUM syscall.Errno = 635 - ERROR_PNP_RESTART_ENUMERATION syscall.Errno = 636 - ERROR_SYSTEM_IMAGE_BAD_SIGNATURE syscall.Errno = 637 - ERROR_PNP_REBOOT_REQUIRED syscall.Errno = 638 - ERROR_INSUFFICIENT_POWER syscall.Errno = 639 - ERROR_MULTIPLE_FAULT_VIOLATION syscall.Errno = 640 - ERROR_SYSTEM_SHUTDOWN syscall.Errno = 641 - ERROR_PORT_NOT_SET syscall.Errno = 642 - ERROR_DS_VERSION_CHECK_FAILURE syscall.Errno = 643 - ERROR_RANGE_NOT_FOUND syscall.Errno = 644 - ERROR_NOT_SAFE_MODE_DRIVER syscall.Errno = 646 - ERROR_FAILED_DRIVER_ENTRY syscall.Errno = 647 - ERROR_DEVICE_ENUMERATION_ERROR syscall.Errno = 648 - ERROR_MOUNT_POINT_NOT_RESOLVED syscall.Errno = 649 - ERROR_INVALID_DEVICE_OBJECT_PARAMETER syscall.Errno = 650 - ERROR_MCA_OCCURED syscall.Errno = 651 - ERROR_DRIVER_DATABASE_ERROR syscall.Errno = 652 - ERROR_SYSTEM_HIVE_TOO_LARGE syscall.Errno = 653 - ERROR_DRIVER_FAILED_PRIOR_UNLOAD syscall.Errno = 654 - ERROR_VOLSNAP_PREPARE_HIBERNATE syscall.Errno = 655 - ERROR_HIBERNATION_FAILURE syscall.Errno = 656 - ERROR_PWD_TOO_LONG syscall.Errno = 657 - ERROR_FILE_SYSTEM_LIMITATION syscall.Errno = 665 - ERROR_ASSERTION_FAILURE syscall.Errno = 668 - ERROR_ACPI_ERROR syscall.Errno = 669 - ERROR_WOW_ASSERTION syscall.Errno = 670 - ERROR_PNP_BAD_MPS_TABLE syscall.Errno = 671 - ERROR_PNP_TRANSLATION_FAILED syscall.Errno = 672 - ERROR_PNP_IRQ_TRANSLATION_FAILED syscall.Errno = 673 - ERROR_PNP_INVALID_ID syscall.Errno = 674 - ERROR_WAKE_SYSTEM_DEBUGGER syscall.Errno = 675 - ERROR_HANDLES_CLOSED syscall.Errno = 676 - ERROR_EXTRANEOUS_INFORMATION syscall.Errno = 677 - ERROR_RXACT_COMMIT_NECESSARY syscall.Errno = 678 - ERROR_MEDIA_CHECK syscall.Errno = 679 - ERROR_GUID_SUBSTITUTION_MADE syscall.Errno = 680 - ERROR_STOPPED_ON_SYMLINK syscall.Errno = 681 - ERROR_LONGJUMP syscall.Errno = 682 - ERROR_PLUGPLAY_QUERY_VETOED syscall.Errno = 683 - ERROR_UNWIND_CONSOLIDATE syscall.Errno = 684 - ERROR_REGISTRY_HIVE_RECOVERED syscall.Errno = 685 - ERROR_DLL_MIGHT_BE_INSECURE syscall.Errno = 686 - ERROR_DLL_MIGHT_BE_INCOMPATIBLE syscall.Errno = 687 - ERROR_DBG_EXCEPTION_NOT_HANDLED syscall.Errno = 688 - ERROR_DBG_REPLY_LATER syscall.Errno = 689 - ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE syscall.Errno = 690 - ERROR_DBG_TERMINATE_THREAD syscall.Errno = 691 - ERROR_DBG_TERMINATE_PROCESS syscall.Errno = 692 - ERROR_DBG_CONTROL_C syscall.Errno = 693 - ERROR_DBG_PRINTEXCEPTION_C syscall.Errno = 694 - ERROR_DBG_RIPEXCEPTION syscall.Errno = 695 - ERROR_DBG_CONTROL_BREAK syscall.Errno = 696 - ERROR_DBG_COMMAND_EXCEPTION syscall.Errno = 697 - ERROR_OBJECT_NAME_EXISTS syscall.Errno = 698 - ERROR_THREAD_WAS_SUSPENDED syscall.Errno = 699 - ERROR_IMAGE_NOT_AT_BASE syscall.Errno = 700 - ERROR_RXACT_STATE_CREATED syscall.Errno = 701 - ERROR_SEGMENT_NOTIFICATION syscall.Errno = 702 - ERROR_BAD_CURRENT_DIRECTORY syscall.Errno = 703 - ERROR_FT_READ_RECOVERY_FROM_BACKUP syscall.Errno = 704 - ERROR_FT_WRITE_RECOVERY syscall.Errno = 705 - ERROR_IMAGE_MACHINE_TYPE_MISMATCH syscall.Errno = 706 - ERROR_RECEIVE_PARTIAL syscall.Errno = 707 - ERROR_RECEIVE_EXPEDITED syscall.Errno = 708 - ERROR_RECEIVE_PARTIAL_EXPEDITED syscall.Errno = 709 - ERROR_EVENT_DONE syscall.Errno = 710 - ERROR_EVENT_PENDING syscall.Errno = 711 - ERROR_CHECKING_FILE_SYSTEM syscall.Errno = 712 - ERROR_FATAL_APP_EXIT syscall.Errno = 713 - ERROR_PREDEFINED_HANDLE syscall.Errno = 714 - ERROR_WAS_UNLOCKED syscall.Errno = 715 - ERROR_SERVICE_NOTIFICATION syscall.Errno = 716 - ERROR_WAS_LOCKED syscall.Errno = 717 - ERROR_LOG_HARD_ERROR syscall.Errno = 718 - ERROR_ALREADY_WIN32 syscall.Errno = 719 - ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE syscall.Errno = 720 - ERROR_NO_YIELD_PERFORMED syscall.Errno = 721 - ERROR_TIMER_RESUME_IGNORED syscall.Errno = 722 - ERROR_ARBITRATION_UNHANDLED syscall.Errno = 723 - ERROR_CARDBUS_NOT_SUPPORTED syscall.Errno = 724 - ERROR_MP_PROCESSOR_MISMATCH syscall.Errno = 725 - ERROR_HIBERNATED syscall.Errno = 726 - ERROR_RESUME_HIBERNATION syscall.Errno = 727 - ERROR_FIRMWARE_UPDATED syscall.Errno = 728 - ERROR_DRIVERS_LEAKING_LOCKED_PAGES syscall.Errno = 729 - ERROR_WAKE_SYSTEM syscall.Errno = 730 - ERROR_WAIT_1 syscall.Errno = 731 - ERROR_WAIT_2 syscall.Errno = 732 - ERROR_WAIT_3 syscall.Errno = 733 - ERROR_WAIT_63 syscall.Errno = 734 - ERROR_ABANDONED_WAIT_0 syscall.Errno = 735 - ERROR_ABANDONED_WAIT_63 syscall.Errno = 736 - ERROR_USER_APC syscall.Errno = 737 - ERROR_KERNEL_APC syscall.Errno = 738 - ERROR_ALERTED syscall.Errno = 739 - ERROR_ELEVATION_REQUIRED syscall.Errno = 740 - ERROR_REPARSE syscall.Errno = 741 - ERROR_OPLOCK_BREAK_IN_PROGRESS syscall.Errno = 742 - ERROR_VOLUME_MOUNTED syscall.Errno = 743 - ERROR_RXACT_COMMITTED syscall.Errno = 744 - ERROR_NOTIFY_CLEANUP syscall.Errno = 745 - ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED syscall.Errno = 746 - ERROR_PAGE_FAULT_TRANSITION syscall.Errno = 747 - ERROR_PAGE_FAULT_DEMAND_ZERO syscall.Errno = 748 - ERROR_PAGE_FAULT_COPY_ON_WRITE syscall.Errno = 749 - ERROR_PAGE_FAULT_GUARD_PAGE syscall.Errno = 750 - ERROR_PAGE_FAULT_PAGING_FILE syscall.Errno = 751 - ERROR_CACHE_PAGE_LOCKED syscall.Errno = 752 - ERROR_CRASH_DUMP syscall.Errno = 753 - ERROR_BUFFER_ALL_ZEROS syscall.Errno = 754 - ERROR_REPARSE_OBJECT syscall.Errno = 755 - ERROR_RESOURCE_REQUIREMENTS_CHANGED syscall.Errno = 756 - ERROR_TRANSLATION_COMPLETE syscall.Errno = 757 - ERROR_NOTHING_TO_TERMINATE syscall.Errno = 758 - ERROR_PROCESS_NOT_IN_JOB syscall.Errno = 759 - ERROR_PROCESS_IN_JOB syscall.Errno = 760 - ERROR_VOLSNAP_HIBERNATE_READY syscall.Errno = 761 - ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY syscall.Errno = 762 - ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED syscall.Errno = 763 - ERROR_INTERRUPT_STILL_CONNECTED syscall.Errno = 764 - ERROR_WAIT_FOR_OPLOCK syscall.Errno = 765 - ERROR_DBG_EXCEPTION_HANDLED syscall.Errno = 766 - ERROR_DBG_CONTINUE syscall.Errno = 767 - ERROR_CALLBACK_POP_STACK syscall.Errno = 768 - ERROR_COMPRESSION_DISABLED syscall.Errno = 769 - ERROR_CANTFETCHBACKWARDS syscall.Errno = 770 - ERROR_CANTSCROLLBACKWARDS syscall.Errno = 771 - ERROR_ROWSNOTRELEASED syscall.Errno = 772 - ERROR_BAD_ACCESSOR_FLAGS syscall.Errno = 773 - ERROR_ERRORS_ENCOUNTERED syscall.Errno = 774 - ERROR_NOT_CAPABLE syscall.Errno = 775 - ERROR_REQUEST_OUT_OF_SEQUENCE syscall.Errno = 776 - ERROR_VERSION_PARSE_ERROR syscall.Errno = 777 - ERROR_BADSTARTPOSITION syscall.Errno = 778 - ERROR_MEMORY_HARDWARE syscall.Errno = 779 - ERROR_DISK_REPAIR_DISABLED syscall.Errno = 780 - ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE syscall.Errno = 781 - ERROR_SYSTEM_POWERSTATE_TRANSITION syscall.Errno = 782 - ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION syscall.Errno = 783 - ERROR_MCA_EXCEPTION syscall.Errno = 784 - ERROR_ACCESS_AUDIT_BY_POLICY syscall.Errno = 785 - ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY syscall.Errno = 786 - ERROR_ABANDON_HIBERFILE syscall.Errno = 787 - ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED syscall.Errno = 788 - ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR syscall.Errno = 789 - ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR syscall.Errno = 790 - ERROR_BAD_MCFG_TABLE syscall.Errno = 791 - ERROR_DISK_REPAIR_REDIRECTED syscall.Errno = 792 - ERROR_DISK_REPAIR_UNSUCCESSFUL syscall.Errno = 793 - ERROR_CORRUPT_LOG_OVERFULL syscall.Errno = 794 - ERROR_CORRUPT_LOG_CORRUPTED syscall.Errno = 795 - ERROR_CORRUPT_LOG_UNAVAILABLE syscall.Errno = 796 - ERROR_CORRUPT_LOG_DELETED_FULL syscall.Errno = 797 - ERROR_CORRUPT_LOG_CLEARED syscall.Errno = 798 - ERROR_ORPHAN_NAME_EXHAUSTED syscall.Errno = 799 - ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE syscall.Errno = 800 - ERROR_CANNOT_GRANT_REQUESTED_OPLOCK syscall.Errno = 801 - ERROR_CANNOT_BREAK_OPLOCK syscall.Errno = 802 - ERROR_OPLOCK_HANDLE_CLOSED syscall.Errno = 803 - ERROR_NO_ACE_CONDITION syscall.Errno = 804 - ERROR_INVALID_ACE_CONDITION syscall.Errno = 805 - ERROR_FILE_HANDLE_REVOKED syscall.Errno = 806 - ERROR_IMAGE_AT_DIFFERENT_BASE syscall.Errno = 807 - ERROR_ENCRYPTED_IO_NOT_POSSIBLE syscall.Errno = 808 - ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS syscall.Errno = 809 - ERROR_QUOTA_ACTIVITY syscall.Errno = 810 - ERROR_HANDLE_REVOKED syscall.Errno = 811 - ERROR_CALLBACK_INVOKE_INLINE syscall.Errno = 812 - ERROR_CPU_SET_INVALID syscall.Errno = 813 - ERROR_ENCLAVE_NOT_TERMINATED syscall.Errno = 814 - ERROR_ENCLAVE_VIOLATION syscall.Errno = 815 - ERROR_EA_ACCESS_DENIED syscall.Errno = 994 - ERROR_OPERATION_ABORTED syscall.Errno = 995 - ERROR_IO_INCOMPLETE syscall.Errno = 996 - ERROR_IO_PENDING syscall.Errno = 997 - ERROR_NOACCESS syscall.Errno = 998 - ERROR_SWAPERROR syscall.Errno = 999 - ERROR_STACK_OVERFLOW syscall.Errno = 1001 - ERROR_INVALID_MESSAGE syscall.Errno = 1002 - ERROR_CAN_NOT_COMPLETE syscall.Errno = 1003 - ERROR_INVALID_FLAGS syscall.Errno = 1004 - ERROR_UNRECOGNIZED_VOLUME syscall.Errno = 1005 - ERROR_FILE_INVALID syscall.Errno = 1006 - ERROR_FULLSCREEN_MODE syscall.Errno = 1007 - ERROR_NO_TOKEN syscall.Errno = 1008 - ERROR_BADDB syscall.Errno = 1009 - ERROR_BADKEY syscall.Errno = 1010 - ERROR_CANTOPEN syscall.Errno = 1011 - ERROR_CANTREAD syscall.Errno = 1012 - ERROR_CANTWRITE syscall.Errno = 1013 - ERROR_REGISTRY_RECOVERED syscall.Errno = 1014 - ERROR_REGISTRY_CORRUPT syscall.Errno = 1015 - ERROR_REGISTRY_IO_FAILED syscall.Errno = 1016 - ERROR_NOT_REGISTRY_FILE syscall.Errno = 1017 - ERROR_KEY_DELETED syscall.Errno = 1018 - ERROR_NO_LOG_SPACE syscall.Errno = 1019 - ERROR_KEY_HAS_CHILDREN syscall.Errno = 1020 - ERROR_CHILD_MUST_BE_VOLATILE syscall.Errno = 1021 - ERROR_NOTIFY_ENUM_DIR syscall.Errno = 1022 - ERROR_DEPENDENT_SERVICES_RUNNING syscall.Errno = 1051 - ERROR_INVALID_SERVICE_CONTROL syscall.Errno = 1052 - ERROR_SERVICE_REQUEST_TIMEOUT syscall.Errno = 1053 - ERROR_SERVICE_NO_THREAD syscall.Errno = 1054 - ERROR_SERVICE_DATABASE_LOCKED syscall.Errno = 1055 - ERROR_SERVICE_ALREADY_RUNNING syscall.Errno = 1056 - ERROR_INVALID_SERVICE_ACCOUNT syscall.Errno = 1057 - ERROR_SERVICE_DISABLED syscall.Errno = 1058 - ERROR_CIRCULAR_DEPENDENCY syscall.Errno = 1059 - ERROR_SERVICE_DOES_NOT_EXIST syscall.Errno = 1060 - ERROR_SERVICE_CANNOT_ACCEPT_CTRL syscall.Errno = 1061 - ERROR_SERVICE_NOT_ACTIVE syscall.Errno = 1062 - ERROR_FAILED_SERVICE_CONTROLLER_CONNECT syscall.Errno = 1063 - ERROR_EXCEPTION_IN_SERVICE syscall.Errno = 1064 - ERROR_DATABASE_DOES_NOT_EXIST syscall.Errno = 1065 - ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 - ERROR_PROCESS_ABORTED syscall.Errno = 1067 - ERROR_SERVICE_DEPENDENCY_FAIL syscall.Errno = 1068 - ERROR_SERVICE_LOGON_FAILED syscall.Errno = 1069 - ERROR_SERVICE_START_HANG syscall.Errno = 1070 - ERROR_INVALID_SERVICE_LOCK syscall.Errno = 1071 - ERROR_SERVICE_MARKED_FOR_DELETE syscall.Errno = 1072 - ERROR_SERVICE_EXISTS syscall.Errno = 1073 - ERROR_ALREADY_RUNNING_LKG syscall.Errno = 1074 - ERROR_SERVICE_DEPENDENCY_DELETED syscall.Errno = 1075 - ERROR_BOOT_ALREADY_ACCEPTED syscall.Errno = 1076 - ERROR_SERVICE_NEVER_STARTED syscall.Errno = 1077 - ERROR_DUPLICATE_SERVICE_NAME syscall.Errno = 1078 - ERROR_DIFFERENT_SERVICE_ACCOUNT syscall.Errno = 1079 - ERROR_CANNOT_DETECT_DRIVER_FAILURE syscall.Errno = 1080 - ERROR_CANNOT_DETECT_PROCESS_ABORT syscall.Errno = 1081 - ERROR_NO_RECOVERY_PROGRAM syscall.Errno = 1082 - ERROR_SERVICE_NOT_IN_EXE syscall.Errno = 1083 - ERROR_NOT_SAFEBOOT_SERVICE syscall.Errno = 1084 - ERROR_END_OF_MEDIA syscall.Errno = 1100 - ERROR_FILEMARK_DETECTED syscall.Errno = 1101 - ERROR_BEGINNING_OF_MEDIA syscall.Errno = 1102 - ERROR_SETMARK_DETECTED syscall.Errno = 1103 - ERROR_NO_DATA_DETECTED syscall.Errno = 1104 - ERROR_PARTITION_FAILURE syscall.Errno = 1105 - ERROR_INVALID_BLOCK_LENGTH syscall.Errno = 1106 - ERROR_DEVICE_NOT_PARTITIONED syscall.Errno = 1107 - ERROR_UNABLE_TO_LOCK_MEDIA syscall.Errno = 1108 - ERROR_UNABLE_TO_UNLOAD_MEDIA syscall.Errno = 1109 - ERROR_MEDIA_CHANGED syscall.Errno = 1110 - ERROR_BUS_RESET syscall.Errno = 1111 - ERROR_NO_MEDIA_IN_DRIVE syscall.Errno = 1112 - ERROR_NO_UNICODE_TRANSLATION syscall.Errno = 1113 - ERROR_DLL_INIT_FAILED syscall.Errno = 1114 - ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 1115 - ERROR_NO_SHUTDOWN_IN_PROGRESS syscall.Errno = 1116 - ERROR_IO_DEVICE syscall.Errno = 1117 - ERROR_SERIAL_NO_DEVICE syscall.Errno = 1118 - ERROR_IRQ_BUSY syscall.Errno = 1119 - ERROR_MORE_WRITES syscall.Errno = 1120 - ERROR_COUNTER_TIMEOUT syscall.Errno = 1121 - ERROR_FLOPPY_ID_MARK_NOT_FOUND syscall.Errno = 1122 - ERROR_FLOPPY_WRONG_CYLINDER syscall.Errno = 1123 - ERROR_FLOPPY_UNKNOWN_ERROR syscall.Errno = 1124 - ERROR_FLOPPY_BAD_REGISTERS syscall.Errno = 1125 - ERROR_DISK_RECALIBRATE_FAILED syscall.Errno = 1126 - ERROR_DISK_OPERATION_FAILED syscall.Errno = 1127 - ERROR_DISK_RESET_FAILED syscall.Errno = 1128 - ERROR_EOM_OVERFLOW syscall.Errno = 1129 - ERROR_NOT_ENOUGH_SERVER_MEMORY syscall.Errno = 1130 - ERROR_POSSIBLE_DEADLOCK syscall.Errno = 1131 - ERROR_MAPPED_ALIGNMENT syscall.Errno = 1132 - ERROR_SET_POWER_STATE_VETOED syscall.Errno = 1140 - ERROR_SET_POWER_STATE_FAILED syscall.Errno = 1141 - ERROR_TOO_MANY_LINKS syscall.Errno = 1142 - ERROR_OLD_WIN_VERSION syscall.Errno = 1150 - ERROR_APP_WRONG_OS syscall.Errno = 1151 - ERROR_SINGLE_INSTANCE_APP syscall.Errno = 1152 - ERROR_RMODE_APP syscall.Errno = 1153 - ERROR_INVALID_DLL syscall.Errno = 1154 - ERROR_NO_ASSOCIATION syscall.Errno = 1155 - ERROR_DDE_FAIL syscall.Errno = 1156 - ERROR_DLL_NOT_FOUND syscall.Errno = 1157 - ERROR_NO_MORE_USER_HANDLES syscall.Errno = 1158 - ERROR_MESSAGE_SYNC_ONLY syscall.Errno = 1159 - ERROR_SOURCE_ELEMENT_EMPTY syscall.Errno = 1160 - ERROR_DESTINATION_ELEMENT_FULL syscall.Errno = 1161 - ERROR_ILLEGAL_ELEMENT_ADDRESS syscall.Errno = 1162 - ERROR_MAGAZINE_NOT_PRESENT syscall.Errno = 1163 - ERROR_DEVICE_REINITIALIZATION_NEEDED syscall.Errno = 1164 - ERROR_DEVICE_REQUIRES_CLEANING syscall.Errno = 1165 - ERROR_DEVICE_DOOR_OPEN syscall.Errno = 1166 - ERROR_DEVICE_NOT_CONNECTED syscall.Errno = 1167 - ERROR_NOT_FOUND syscall.Errno = 1168 - ERROR_NO_MATCH syscall.Errno = 1169 - ERROR_SET_NOT_FOUND syscall.Errno = 1170 - ERROR_POINT_NOT_FOUND syscall.Errno = 1171 - ERROR_NO_TRACKING_SERVICE syscall.Errno = 1172 - ERROR_NO_VOLUME_ID syscall.Errno = 1173 - ERROR_UNABLE_TO_REMOVE_REPLACED syscall.Errno = 1175 - ERROR_UNABLE_TO_MOVE_REPLACEMENT syscall.Errno = 1176 - ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 syscall.Errno = 1177 - ERROR_JOURNAL_DELETE_IN_PROGRESS syscall.Errno = 1178 - ERROR_JOURNAL_NOT_ACTIVE syscall.Errno = 1179 - ERROR_POTENTIAL_FILE_FOUND syscall.Errno = 1180 - ERROR_JOURNAL_ENTRY_DELETED syscall.Errno = 1181 - ERROR_SHUTDOWN_IS_SCHEDULED syscall.Errno = 1190 - ERROR_SHUTDOWN_USERS_LOGGED_ON syscall.Errno = 1191 - ERROR_BAD_DEVICE syscall.Errno = 1200 - ERROR_CONNECTION_UNAVAIL syscall.Errno = 1201 - ERROR_DEVICE_ALREADY_REMEMBERED syscall.Errno = 1202 - ERROR_NO_NET_OR_BAD_PATH syscall.Errno = 1203 - ERROR_BAD_PROVIDER syscall.Errno = 1204 - ERROR_CANNOT_OPEN_PROFILE syscall.Errno = 1205 - ERROR_BAD_PROFILE syscall.Errno = 1206 - ERROR_NOT_CONTAINER syscall.Errno = 1207 - ERROR_EXTENDED_ERROR syscall.Errno = 1208 - ERROR_INVALID_GROUPNAME syscall.Errno = 1209 - ERROR_INVALID_COMPUTERNAME syscall.Errno = 1210 - ERROR_INVALID_EVENTNAME syscall.Errno = 1211 - ERROR_INVALID_DOMAINNAME syscall.Errno = 1212 - ERROR_INVALID_SERVICENAME syscall.Errno = 1213 - ERROR_INVALID_NETNAME syscall.Errno = 1214 - ERROR_INVALID_SHARENAME syscall.Errno = 1215 - ERROR_INVALID_PASSWORDNAME syscall.Errno = 1216 - ERROR_INVALID_MESSAGENAME syscall.Errno = 1217 - ERROR_INVALID_MESSAGEDEST syscall.Errno = 1218 - ERROR_SESSION_CREDENTIAL_CONFLICT syscall.Errno = 1219 - ERROR_REMOTE_SESSION_LIMIT_EXCEEDED syscall.Errno = 1220 - ERROR_DUP_DOMAINNAME syscall.Errno = 1221 - ERROR_NO_NETWORK syscall.Errno = 1222 - ERROR_CANCELLED syscall.Errno = 1223 - ERROR_USER_MAPPED_FILE syscall.Errno = 1224 - ERROR_CONNECTION_REFUSED syscall.Errno = 1225 - ERROR_GRACEFUL_DISCONNECT syscall.Errno = 1226 - ERROR_ADDRESS_ALREADY_ASSOCIATED syscall.Errno = 1227 - ERROR_ADDRESS_NOT_ASSOCIATED syscall.Errno = 1228 - ERROR_CONNECTION_INVALID syscall.Errno = 1229 - ERROR_CONNECTION_ACTIVE syscall.Errno = 1230 - ERROR_NETWORK_UNREACHABLE syscall.Errno = 1231 - ERROR_HOST_UNREACHABLE syscall.Errno = 1232 - ERROR_PROTOCOL_UNREACHABLE syscall.Errno = 1233 - ERROR_PORT_UNREACHABLE syscall.Errno = 1234 - ERROR_REQUEST_ABORTED syscall.Errno = 1235 - ERROR_CONNECTION_ABORTED syscall.Errno = 1236 - ERROR_RETRY syscall.Errno = 1237 - ERROR_CONNECTION_COUNT_LIMIT syscall.Errno = 1238 - ERROR_LOGIN_TIME_RESTRICTION syscall.Errno = 1239 - ERROR_LOGIN_WKSTA_RESTRICTION syscall.Errno = 1240 - ERROR_INCORRECT_ADDRESS syscall.Errno = 1241 - ERROR_ALREADY_REGISTERED syscall.Errno = 1242 - ERROR_SERVICE_NOT_FOUND syscall.Errno = 1243 - ERROR_NOT_AUTHENTICATED syscall.Errno = 1244 - ERROR_NOT_LOGGED_ON syscall.Errno = 1245 - ERROR_CONTINUE syscall.Errno = 1246 - ERROR_ALREADY_INITIALIZED syscall.Errno = 1247 - ERROR_NO_MORE_DEVICES syscall.Errno = 1248 - ERROR_NO_SUCH_SITE syscall.Errno = 1249 - ERROR_DOMAIN_CONTROLLER_EXISTS syscall.Errno = 1250 - ERROR_ONLY_IF_CONNECTED syscall.Errno = 1251 - ERROR_OVERRIDE_NOCHANGES syscall.Errno = 1252 - ERROR_BAD_USER_PROFILE syscall.Errno = 1253 - ERROR_NOT_SUPPORTED_ON_SBS syscall.Errno = 1254 - ERROR_SERVER_SHUTDOWN_IN_PROGRESS syscall.Errno = 1255 - ERROR_HOST_DOWN syscall.Errno = 1256 - ERROR_NON_ACCOUNT_SID syscall.Errno = 1257 - ERROR_NON_DOMAIN_SID syscall.Errno = 1258 - ERROR_APPHELP_BLOCK syscall.Errno = 1259 - ERROR_ACCESS_DISABLED_BY_POLICY syscall.Errno = 1260 - ERROR_REG_NAT_CONSUMPTION syscall.Errno = 1261 - ERROR_CSCSHARE_OFFLINE syscall.Errno = 1262 - ERROR_PKINIT_FAILURE syscall.Errno = 1263 - ERROR_SMARTCARD_SUBSYSTEM_FAILURE syscall.Errno = 1264 - ERROR_DOWNGRADE_DETECTED syscall.Errno = 1265 - ERROR_MACHINE_LOCKED syscall.Errno = 1271 - ERROR_SMB_GUEST_LOGON_BLOCKED syscall.Errno = 1272 - ERROR_CALLBACK_SUPPLIED_INVALID_DATA syscall.Errno = 1273 - ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED syscall.Errno = 1274 - ERROR_DRIVER_BLOCKED syscall.Errno = 1275 - ERROR_INVALID_IMPORT_OF_NON_DLL syscall.Errno = 1276 - ERROR_ACCESS_DISABLED_WEBBLADE syscall.Errno = 1277 - ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER syscall.Errno = 1278 - ERROR_RECOVERY_FAILURE syscall.Errno = 1279 - ERROR_ALREADY_FIBER syscall.Errno = 1280 - ERROR_ALREADY_THREAD syscall.Errno = 1281 - ERROR_STACK_BUFFER_OVERRUN syscall.Errno = 1282 - ERROR_PARAMETER_QUOTA_EXCEEDED syscall.Errno = 1283 - ERROR_DEBUGGER_INACTIVE syscall.Errno = 1284 - ERROR_DELAY_LOAD_FAILED syscall.Errno = 1285 - ERROR_VDM_DISALLOWED syscall.Errno = 1286 - ERROR_UNIDENTIFIED_ERROR syscall.Errno = 1287 - ERROR_INVALID_CRUNTIME_PARAMETER syscall.Errno = 1288 - ERROR_BEYOND_VDL syscall.Errno = 1289 - ERROR_INCOMPATIBLE_SERVICE_SID_TYPE syscall.Errno = 1290 - ERROR_DRIVER_PROCESS_TERMINATED syscall.Errno = 1291 - ERROR_IMPLEMENTATION_LIMIT syscall.Errno = 1292 - ERROR_PROCESS_IS_PROTECTED syscall.Errno = 1293 - ERROR_SERVICE_NOTIFY_CLIENT_LAGGING syscall.Errno = 1294 - ERROR_DISK_QUOTA_EXCEEDED syscall.Errno = 1295 - ERROR_CONTENT_BLOCKED syscall.Errno = 1296 - ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE syscall.Errno = 1297 - ERROR_APP_HANG syscall.Errno = 1298 - ERROR_INVALID_LABEL syscall.Errno = 1299 - ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 - ERROR_SOME_NOT_MAPPED syscall.Errno = 1301 - ERROR_NO_QUOTAS_FOR_ACCOUNT syscall.Errno = 1302 - ERROR_LOCAL_USER_SESSION_KEY syscall.Errno = 1303 - ERROR_NULL_LM_PASSWORD syscall.Errno = 1304 - ERROR_UNKNOWN_REVISION syscall.Errno = 1305 - ERROR_REVISION_MISMATCH syscall.Errno = 1306 - ERROR_INVALID_OWNER syscall.Errno = 1307 - ERROR_INVALID_PRIMARY_GROUP syscall.Errno = 1308 - ERROR_NO_IMPERSONATION_TOKEN syscall.Errno = 1309 - ERROR_CANT_DISABLE_MANDATORY syscall.Errno = 1310 - ERROR_NO_LOGON_SERVERS syscall.Errno = 1311 - ERROR_NO_SUCH_LOGON_SESSION syscall.Errno = 1312 - ERROR_NO_SUCH_PRIVILEGE syscall.Errno = 1313 - ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 - ERROR_INVALID_ACCOUNT_NAME syscall.Errno = 1315 - ERROR_USER_EXISTS syscall.Errno = 1316 - ERROR_NO_SUCH_USER syscall.Errno = 1317 - ERROR_GROUP_EXISTS syscall.Errno = 1318 - ERROR_NO_SUCH_GROUP syscall.Errno = 1319 - ERROR_MEMBER_IN_GROUP syscall.Errno = 1320 - ERROR_MEMBER_NOT_IN_GROUP syscall.Errno = 1321 - ERROR_LAST_ADMIN syscall.Errno = 1322 - ERROR_WRONG_PASSWORD syscall.Errno = 1323 - ERROR_ILL_FORMED_PASSWORD syscall.Errno = 1324 - ERROR_PASSWORD_RESTRICTION syscall.Errno = 1325 - ERROR_LOGON_FAILURE syscall.Errno = 1326 - ERROR_ACCOUNT_RESTRICTION syscall.Errno = 1327 - ERROR_INVALID_LOGON_HOURS syscall.Errno = 1328 - ERROR_INVALID_WORKSTATION syscall.Errno = 1329 - ERROR_PASSWORD_EXPIRED syscall.Errno = 1330 - ERROR_ACCOUNT_DISABLED syscall.Errno = 1331 - ERROR_NONE_MAPPED syscall.Errno = 1332 - ERROR_TOO_MANY_LUIDS_REQUESTED syscall.Errno = 1333 - ERROR_LUIDS_EXHAUSTED syscall.Errno = 1334 - ERROR_INVALID_SUB_AUTHORITY syscall.Errno = 1335 - ERROR_INVALID_ACL syscall.Errno = 1336 - ERROR_INVALID_SID syscall.Errno = 1337 - ERROR_INVALID_SECURITY_DESCR syscall.Errno = 1338 - ERROR_BAD_INHERITANCE_ACL syscall.Errno = 1340 - ERROR_SERVER_DISABLED syscall.Errno = 1341 - ERROR_SERVER_NOT_DISABLED syscall.Errno = 1342 - ERROR_INVALID_ID_AUTHORITY syscall.Errno = 1343 - ERROR_ALLOTTED_SPACE_EXCEEDED syscall.Errno = 1344 - ERROR_INVALID_GROUP_ATTRIBUTES syscall.Errno = 1345 - ERROR_BAD_IMPERSONATION_LEVEL syscall.Errno = 1346 - ERROR_CANT_OPEN_ANONYMOUS syscall.Errno = 1347 - ERROR_BAD_VALIDATION_CLASS syscall.Errno = 1348 - ERROR_BAD_TOKEN_TYPE syscall.Errno = 1349 - ERROR_NO_SECURITY_ON_OBJECT syscall.Errno = 1350 - ERROR_CANT_ACCESS_DOMAIN_INFO syscall.Errno = 1351 - ERROR_INVALID_SERVER_STATE syscall.Errno = 1352 - ERROR_INVALID_DOMAIN_STATE syscall.Errno = 1353 - ERROR_INVALID_DOMAIN_ROLE syscall.Errno = 1354 - ERROR_NO_SUCH_DOMAIN syscall.Errno = 1355 - ERROR_DOMAIN_EXISTS syscall.Errno = 1356 - ERROR_DOMAIN_LIMIT_EXCEEDED syscall.Errno = 1357 - ERROR_INTERNAL_DB_CORRUPTION syscall.Errno = 1358 - ERROR_INTERNAL_ERROR syscall.Errno = 1359 - ERROR_GENERIC_NOT_MAPPED syscall.Errno = 1360 - ERROR_BAD_DESCRIPTOR_FORMAT syscall.Errno = 1361 - ERROR_NOT_LOGON_PROCESS syscall.Errno = 1362 - ERROR_LOGON_SESSION_EXISTS syscall.Errno = 1363 - ERROR_NO_SUCH_PACKAGE syscall.Errno = 1364 - ERROR_BAD_LOGON_SESSION_STATE syscall.Errno = 1365 - ERROR_LOGON_SESSION_COLLISION syscall.Errno = 1366 - ERROR_INVALID_LOGON_TYPE syscall.Errno = 1367 - ERROR_CANNOT_IMPERSONATE syscall.Errno = 1368 - ERROR_RXACT_INVALID_STATE syscall.Errno = 1369 - ERROR_RXACT_COMMIT_FAILURE syscall.Errno = 1370 - ERROR_SPECIAL_ACCOUNT syscall.Errno = 1371 - ERROR_SPECIAL_GROUP syscall.Errno = 1372 - ERROR_SPECIAL_USER syscall.Errno = 1373 - ERROR_MEMBERS_PRIMARY_GROUP syscall.Errno = 1374 - ERROR_TOKEN_ALREADY_IN_USE syscall.Errno = 1375 - ERROR_NO_SUCH_ALIAS syscall.Errno = 1376 - ERROR_MEMBER_NOT_IN_ALIAS syscall.Errno = 1377 - ERROR_MEMBER_IN_ALIAS syscall.Errno = 1378 - ERROR_ALIAS_EXISTS syscall.Errno = 1379 - ERROR_LOGON_NOT_GRANTED syscall.Errno = 1380 - ERROR_TOO_MANY_SECRETS syscall.Errno = 1381 - ERROR_SECRET_TOO_LONG syscall.Errno = 1382 - ERROR_INTERNAL_DB_ERROR syscall.Errno = 1383 - ERROR_TOO_MANY_CONTEXT_IDS syscall.Errno = 1384 - ERROR_LOGON_TYPE_NOT_GRANTED syscall.Errno = 1385 - ERROR_NT_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1386 - ERROR_NO_SUCH_MEMBER syscall.Errno = 1387 - ERROR_INVALID_MEMBER syscall.Errno = 1388 - ERROR_TOO_MANY_SIDS syscall.Errno = 1389 - ERROR_LM_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1390 - ERROR_NO_INHERITANCE syscall.Errno = 1391 - ERROR_FILE_CORRUPT syscall.Errno = 1392 - ERROR_DISK_CORRUPT syscall.Errno = 1393 - ERROR_NO_USER_SESSION_KEY syscall.Errno = 1394 - ERROR_LICENSE_QUOTA_EXCEEDED syscall.Errno = 1395 - ERROR_WRONG_TARGET_NAME syscall.Errno = 1396 - ERROR_MUTUAL_AUTH_FAILED syscall.Errno = 1397 - ERROR_TIME_SKEW syscall.Errno = 1398 - ERROR_CURRENT_DOMAIN_NOT_ALLOWED syscall.Errno = 1399 - ERROR_INVALID_WINDOW_HANDLE syscall.Errno = 1400 - ERROR_INVALID_MENU_HANDLE syscall.Errno = 1401 - ERROR_INVALID_CURSOR_HANDLE syscall.Errno = 1402 - ERROR_INVALID_ACCEL_HANDLE syscall.Errno = 1403 - ERROR_INVALID_HOOK_HANDLE syscall.Errno = 1404 - ERROR_INVALID_DWP_HANDLE syscall.Errno = 1405 - ERROR_TLW_WITH_WSCHILD syscall.Errno = 1406 - ERROR_CANNOT_FIND_WND_CLASS syscall.Errno = 1407 - ERROR_WINDOW_OF_OTHER_THREAD syscall.Errno = 1408 - ERROR_HOTKEY_ALREADY_REGISTERED syscall.Errno = 1409 - ERROR_CLASS_ALREADY_EXISTS syscall.Errno = 1410 - ERROR_CLASS_DOES_NOT_EXIST syscall.Errno = 1411 - ERROR_CLASS_HAS_WINDOWS syscall.Errno = 1412 - ERROR_INVALID_INDEX syscall.Errno = 1413 - ERROR_INVALID_ICON_HANDLE syscall.Errno = 1414 - ERROR_PRIVATE_DIALOG_INDEX syscall.Errno = 1415 - ERROR_LISTBOX_ID_NOT_FOUND syscall.Errno = 1416 - ERROR_NO_WILDCARD_CHARACTERS syscall.Errno = 1417 - ERROR_CLIPBOARD_NOT_OPEN syscall.Errno = 1418 - ERROR_HOTKEY_NOT_REGISTERED syscall.Errno = 1419 - ERROR_WINDOW_NOT_DIALOG syscall.Errno = 1420 - ERROR_CONTROL_ID_NOT_FOUND syscall.Errno = 1421 - ERROR_INVALID_COMBOBOX_MESSAGE syscall.Errno = 1422 - ERROR_WINDOW_NOT_COMBOBOX syscall.Errno = 1423 - ERROR_INVALID_EDIT_HEIGHT syscall.Errno = 1424 - ERROR_DC_NOT_FOUND syscall.Errno = 1425 - ERROR_INVALID_HOOK_FILTER syscall.Errno = 1426 - ERROR_INVALID_FILTER_PROC syscall.Errno = 1427 - ERROR_HOOK_NEEDS_HMOD syscall.Errno = 1428 - ERROR_GLOBAL_ONLY_HOOK syscall.Errno = 1429 - ERROR_JOURNAL_HOOK_SET syscall.Errno = 1430 - ERROR_HOOK_NOT_INSTALLED syscall.Errno = 1431 - ERROR_INVALID_LB_MESSAGE syscall.Errno = 1432 - ERROR_SETCOUNT_ON_BAD_LB syscall.Errno = 1433 - ERROR_LB_WITHOUT_TABSTOPS syscall.Errno = 1434 - ERROR_DESTROY_OBJECT_OF_OTHER_THREAD syscall.Errno = 1435 - ERROR_CHILD_WINDOW_MENU syscall.Errno = 1436 - ERROR_NO_SYSTEM_MENU syscall.Errno = 1437 - ERROR_INVALID_MSGBOX_STYLE syscall.Errno = 1438 - ERROR_INVALID_SPI_VALUE syscall.Errno = 1439 - ERROR_SCREEN_ALREADY_LOCKED syscall.Errno = 1440 - ERROR_HWNDS_HAVE_DIFF_PARENT syscall.Errno = 1441 - ERROR_NOT_CHILD_WINDOW syscall.Errno = 1442 - ERROR_INVALID_GW_COMMAND syscall.Errno = 1443 - ERROR_INVALID_THREAD_ID syscall.Errno = 1444 - ERROR_NON_MDICHILD_WINDOW syscall.Errno = 1445 - ERROR_POPUP_ALREADY_ACTIVE syscall.Errno = 1446 - ERROR_NO_SCROLLBARS syscall.Errno = 1447 - ERROR_INVALID_SCROLLBAR_RANGE syscall.Errno = 1448 - ERROR_INVALID_SHOWWIN_COMMAND syscall.Errno = 1449 - ERROR_NO_SYSTEM_RESOURCES syscall.Errno = 1450 - ERROR_NONPAGED_SYSTEM_RESOURCES syscall.Errno = 1451 - ERROR_PAGED_SYSTEM_RESOURCES syscall.Errno = 1452 - ERROR_WORKING_SET_QUOTA syscall.Errno = 1453 - ERROR_PAGEFILE_QUOTA syscall.Errno = 1454 - ERROR_COMMITMENT_LIMIT syscall.Errno = 1455 - ERROR_MENU_ITEM_NOT_FOUND syscall.Errno = 1456 - ERROR_INVALID_KEYBOARD_HANDLE syscall.Errno = 1457 - ERROR_HOOK_TYPE_NOT_ALLOWED syscall.Errno = 1458 - ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION syscall.Errno = 1459 - ERROR_TIMEOUT syscall.Errno = 1460 - ERROR_INVALID_MONITOR_HANDLE syscall.Errno = 1461 - ERROR_INCORRECT_SIZE syscall.Errno = 1462 - ERROR_SYMLINK_CLASS_DISABLED syscall.Errno = 1463 - ERROR_SYMLINK_NOT_SUPPORTED syscall.Errno = 1464 - ERROR_XML_PARSE_ERROR syscall.Errno = 1465 - ERROR_XMLDSIG_ERROR syscall.Errno = 1466 - ERROR_RESTART_APPLICATION syscall.Errno = 1467 - ERROR_WRONG_COMPARTMENT syscall.Errno = 1468 - ERROR_AUTHIP_FAILURE syscall.Errno = 1469 - ERROR_NO_NVRAM_RESOURCES syscall.Errno = 1470 - ERROR_NOT_GUI_PROCESS syscall.Errno = 1471 - ERROR_EVENTLOG_FILE_CORRUPT syscall.Errno = 1500 - ERROR_EVENTLOG_CANT_START syscall.Errno = 1501 - ERROR_LOG_FILE_FULL syscall.Errno = 1502 - ERROR_EVENTLOG_FILE_CHANGED syscall.Errno = 1503 - ERROR_CONTAINER_ASSIGNED syscall.Errno = 1504 - ERROR_JOB_NO_CONTAINER syscall.Errno = 1505 - ERROR_INVALID_TASK_NAME syscall.Errno = 1550 - ERROR_INVALID_TASK_INDEX syscall.Errno = 1551 - ERROR_THREAD_ALREADY_IN_TASK syscall.Errno = 1552 - ERROR_INSTALL_SERVICE_FAILURE syscall.Errno = 1601 - ERROR_INSTALL_USEREXIT syscall.Errno = 1602 - ERROR_INSTALL_FAILURE syscall.Errno = 1603 - ERROR_INSTALL_SUSPEND syscall.Errno = 1604 - ERROR_UNKNOWN_PRODUCT syscall.Errno = 1605 - ERROR_UNKNOWN_FEATURE syscall.Errno = 1606 - ERROR_UNKNOWN_COMPONENT syscall.Errno = 1607 - ERROR_UNKNOWN_PROPERTY syscall.Errno = 1608 - ERROR_INVALID_HANDLE_STATE syscall.Errno = 1609 - ERROR_BAD_CONFIGURATION syscall.Errno = 1610 - ERROR_INDEX_ABSENT syscall.Errno = 1611 - ERROR_INSTALL_SOURCE_ABSENT syscall.Errno = 1612 - ERROR_INSTALL_PACKAGE_VERSION syscall.Errno = 1613 - ERROR_PRODUCT_UNINSTALLED syscall.Errno = 1614 - ERROR_BAD_QUERY_SYNTAX syscall.Errno = 1615 - ERROR_INVALID_FIELD syscall.Errno = 1616 - ERROR_DEVICE_REMOVED syscall.Errno = 1617 - ERROR_INSTALL_ALREADY_RUNNING syscall.Errno = 1618 - ERROR_INSTALL_PACKAGE_OPEN_FAILED syscall.Errno = 1619 - ERROR_INSTALL_PACKAGE_INVALID syscall.Errno = 1620 - ERROR_INSTALL_UI_FAILURE syscall.Errno = 1621 - ERROR_INSTALL_LOG_FAILURE syscall.Errno = 1622 - ERROR_INSTALL_LANGUAGE_UNSUPPORTED syscall.Errno = 1623 - ERROR_INSTALL_TRANSFORM_FAILURE syscall.Errno = 1624 - ERROR_INSTALL_PACKAGE_REJECTED syscall.Errno = 1625 - ERROR_FUNCTION_NOT_CALLED syscall.Errno = 1626 - ERROR_FUNCTION_FAILED syscall.Errno = 1627 - ERROR_INVALID_TABLE syscall.Errno = 1628 - ERROR_DATATYPE_MISMATCH syscall.Errno = 1629 - ERROR_UNSUPPORTED_TYPE syscall.Errno = 1630 - ERROR_CREATE_FAILED syscall.Errno = 1631 - ERROR_INSTALL_TEMP_UNWRITABLE syscall.Errno = 1632 - ERROR_INSTALL_PLATFORM_UNSUPPORTED syscall.Errno = 1633 - ERROR_INSTALL_NOTUSED syscall.Errno = 1634 - ERROR_PATCH_PACKAGE_OPEN_FAILED syscall.Errno = 1635 - ERROR_PATCH_PACKAGE_INVALID syscall.Errno = 1636 - ERROR_PATCH_PACKAGE_UNSUPPORTED syscall.Errno = 1637 - ERROR_PRODUCT_VERSION syscall.Errno = 1638 - ERROR_INVALID_COMMAND_LINE syscall.Errno = 1639 - ERROR_INSTALL_REMOTE_DISALLOWED syscall.Errno = 1640 - ERROR_SUCCESS_REBOOT_INITIATED syscall.Errno = 1641 - ERROR_PATCH_TARGET_NOT_FOUND syscall.Errno = 1642 - ERROR_PATCH_PACKAGE_REJECTED syscall.Errno = 1643 - ERROR_INSTALL_TRANSFORM_REJECTED syscall.Errno = 1644 - ERROR_INSTALL_REMOTE_PROHIBITED syscall.Errno = 1645 - ERROR_PATCH_REMOVAL_UNSUPPORTED syscall.Errno = 1646 - ERROR_UNKNOWN_PATCH syscall.Errno = 1647 - ERROR_PATCH_NO_SEQUENCE syscall.Errno = 1648 - ERROR_PATCH_REMOVAL_DISALLOWED syscall.Errno = 1649 - ERROR_INVALID_PATCH_XML syscall.Errno = 1650 - ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT syscall.Errno = 1651 - ERROR_INSTALL_SERVICE_SAFEBOOT syscall.Errno = 1652 - ERROR_FAIL_FAST_EXCEPTION syscall.Errno = 1653 - ERROR_INSTALL_REJECTED syscall.Errno = 1654 - ERROR_DYNAMIC_CODE_BLOCKED syscall.Errno = 1655 - ERROR_NOT_SAME_OBJECT syscall.Errno = 1656 - ERROR_STRICT_CFG_VIOLATION syscall.Errno = 1657 - ERROR_SET_CONTEXT_DENIED syscall.Errno = 1660 - ERROR_CROSS_PARTITION_VIOLATION syscall.Errno = 1661 - RPC_S_INVALID_STRING_BINDING syscall.Errno = 1700 - RPC_S_WRONG_KIND_OF_BINDING syscall.Errno = 1701 - RPC_S_INVALID_BINDING syscall.Errno = 1702 - RPC_S_PROTSEQ_NOT_SUPPORTED syscall.Errno = 1703 - RPC_S_INVALID_RPC_PROTSEQ syscall.Errno = 1704 - RPC_S_INVALID_STRING_UUID syscall.Errno = 1705 - RPC_S_INVALID_ENDPOINT_FORMAT syscall.Errno = 1706 - RPC_S_INVALID_NET_ADDR syscall.Errno = 1707 - RPC_S_NO_ENDPOINT_FOUND syscall.Errno = 1708 - RPC_S_INVALID_TIMEOUT syscall.Errno = 1709 - RPC_S_OBJECT_NOT_FOUND syscall.Errno = 1710 - RPC_S_ALREADY_REGISTERED syscall.Errno = 1711 - RPC_S_TYPE_ALREADY_REGISTERED syscall.Errno = 1712 - RPC_S_ALREADY_LISTENING syscall.Errno = 1713 - RPC_S_NO_PROTSEQS_REGISTERED syscall.Errno = 1714 - RPC_S_NOT_LISTENING syscall.Errno = 1715 - RPC_S_UNKNOWN_MGR_TYPE syscall.Errno = 1716 - RPC_S_UNKNOWN_IF syscall.Errno = 1717 - RPC_S_NO_BINDINGS syscall.Errno = 1718 - RPC_S_NO_PROTSEQS syscall.Errno = 1719 - RPC_S_CANT_CREATE_ENDPOINT syscall.Errno = 1720 - RPC_S_OUT_OF_RESOURCES syscall.Errno = 1721 - RPC_S_SERVER_UNAVAILABLE syscall.Errno = 1722 - RPC_S_SERVER_TOO_BUSY syscall.Errno = 1723 - RPC_S_INVALID_NETWORK_OPTIONS syscall.Errno = 1724 - RPC_S_NO_CALL_ACTIVE syscall.Errno = 1725 - RPC_S_CALL_FAILED syscall.Errno = 1726 - RPC_S_CALL_FAILED_DNE syscall.Errno = 1727 - RPC_S_PROTOCOL_ERROR syscall.Errno = 1728 - RPC_S_PROXY_ACCESS_DENIED syscall.Errno = 1729 - RPC_S_UNSUPPORTED_TRANS_SYN syscall.Errno = 1730 - RPC_S_UNSUPPORTED_TYPE syscall.Errno = 1732 - RPC_S_INVALID_TAG syscall.Errno = 1733 - RPC_S_INVALID_BOUND syscall.Errno = 1734 - RPC_S_NO_ENTRY_NAME syscall.Errno = 1735 - RPC_S_INVALID_NAME_SYNTAX syscall.Errno = 1736 - RPC_S_UNSUPPORTED_NAME_SYNTAX syscall.Errno = 1737 - RPC_S_UUID_NO_ADDRESS syscall.Errno = 1739 - RPC_S_DUPLICATE_ENDPOINT syscall.Errno = 1740 - RPC_S_UNKNOWN_AUTHN_TYPE syscall.Errno = 1741 - RPC_S_MAX_CALLS_TOO_SMALL syscall.Errno = 1742 - RPC_S_STRING_TOO_LONG syscall.Errno = 1743 - RPC_S_PROTSEQ_NOT_FOUND syscall.Errno = 1744 - RPC_S_PROCNUM_OUT_OF_RANGE syscall.Errno = 1745 - RPC_S_BINDING_HAS_NO_AUTH syscall.Errno = 1746 - RPC_S_UNKNOWN_AUTHN_SERVICE syscall.Errno = 1747 - RPC_S_UNKNOWN_AUTHN_LEVEL syscall.Errno = 1748 - RPC_S_INVALID_AUTH_IDENTITY syscall.Errno = 1749 - RPC_S_UNKNOWN_AUTHZ_SERVICE syscall.Errno = 1750 - EPT_S_INVALID_ENTRY syscall.Errno = 1751 - EPT_S_CANT_PERFORM_OP syscall.Errno = 1752 - EPT_S_NOT_REGISTERED syscall.Errno = 1753 - RPC_S_NOTHING_TO_EXPORT syscall.Errno = 1754 - RPC_S_INCOMPLETE_NAME syscall.Errno = 1755 - RPC_S_INVALID_VERS_OPTION syscall.Errno = 1756 - RPC_S_NO_MORE_MEMBERS syscall.Errno = 1757 - RPC_S_NOT_ALL_OBJS_UNEXPORTED syscall.Errno = 1758 - RPC_S_INTERFACE_NOT_FOUND syscall.Errno = 1759 - RPC_S_ENTRY_ALREADY_EXISTS syscall.Errno = 1760 - RPC_S_ENTRY_NOT_FOUND syscall.Errno = 1761 - RPC_S_NAME_SERVICE_UNAVAILABLE syscall.Errno = 1762 - RPC_S_INVALID_NAF_ID syscall.Errno = 1763 - RPC_S_CANNOT_SUPPORT syscall.Errno = 1764 - RPC_S_NO_CONTEXT_AVAILABLE syscall.Errno = 1765 - RPC_S_INTERNAL_ERROR syscall.Errno = 1766 - RPC_S_ZERO_DIVIDE syscall.Errno = 1767 - RPC_S_ADDRESS_ERROR syscall.Errno = 1768 - RPC_S_FP_DIV_ZERO syscall.Errno = 1769 - RPC_S_FP_UNDERFLOW syscall.Errno = 1770 - RPC_S_FP_OVERFLOW syscall.Errno = 1771 - RPC_X_NO_MORE_ENTRIES syscall.Errno = 1772 - RPC_X_SS_CHAR_TRANS_OPEN_FAIL syscall.Errno = 1773 - RPC_X_SS_CHAR_TRANS_SHORT_FILE syscall.Errno = 1774 - RPC_X_SS_IN_NULL_CONTEXT syscall.Errno = 1775 - RPC_X_SS_CONTEXT_DAMAGED syscall.Errno = 1777 - RPC_X_SS_HANDLES_MISMATCH syscall.Errno = 1778 - RPC_X_SS_CANNOT_GET_CALL_HANDLE syscall.Errno = 1779 - RPC_X_NULL_REF_POINTER syscall.Errno = 1780 - RPC_X_ENUM_VALUE_OUT_OF_RANGE syscall.Errno = 1781 - RPC_X_BYTE_COUNT_TOO_SMALL syscall.Errno = 1782 - RPC_X_BAD_STUB_DATA syscall.Errno = 1783 - ERROR_INVALID_USER_BUFFER syscall.Errno = 1784 - ERROR_UNRECOGNIZED_MEDIA syscall.Errno = 1785 - ERROR_NO_TRUST_LSA_SECRET syscall.Errno = 1786 - ERROR_NO_TRUST_SAM_ACCOUNT syscall.Errno = 1787 - ERROR_TRUSTED_DOMAIN_FAILURE syscall.Errno = 1788 - ERROR_TRUSTED_RELATIONSHIP_FAILURE syscall.Errno = 1789 - ERROR_TRUST_FAILURE syscall.Errno = 1790 - RPC_S_CALL_IN_PROGRESS syscall.Errno = 1791 - ERROR_NETLOGON_NOT_STARTED syscall.Errno = 1792 - ERROR_ACCOUNT_EXPIRED syscall.Errno = 1793 - ERROR_REDIRECTOR_HAS_OPEN_HANDLES syscall.Errno = 1794 - ERROR_PRINTER_DRIVER_ALREADY_INSTALLED syscall.Errno = 1795 - ERROR_UNKNOWN_PORT syscall.Errno = 1796 - ERROR_UNKNOWN_PRINTER_DRIVER syscall.Errno = 1797 - ERROR_UNKNOWN_PRINTPROCESSOR syscall.Errno = 1798 - ERROR_INVALID_SEPARATOR_FILE syscall.Errno = 1799 - ERROR_INVALID_PRIORITY syscall.Errno = 1800 - ERROR_INVALID_PRINTER_NAME syscall.Errno = 1801 - ERROR_PRINTER_ALREADY_EXISTS syscall.Errno = 1802 - ERROR_INVALID_PRINTER_COMMAND syscall.Errno = 1803 - ERROR_INVALID_DATATYPE syscall.Errno = 1804 - ERROR_INVALID_ENVIRONMENT syscall.Errno = 1805 - RPC_S_NO_MORE_BINDINGS syscall.Errno = 1806 - ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT syscall.Errno = 1807 - ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT syscall.Errno = 1808 - ERROR_NOLOGON_SERVER_TRUST_ACCOUNT syscall.Errno = 1809 - ERROR_DOMAIN_TRUST_INCONSISTENT syscall.Errno = 1810 - ERROR_SERVER_HAS_OPEN_HANDLES syscall.Errno = 1811 - ERROR_RESOURCE_DATA_NOT_FOUND syscall.Errno = 1812 - ERROR_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 1813 - ERROR_RESOURCE_NAME_NOT_FOUND syscall.Errno = 1814 - ERROR_RESOURCE_LANG_NOT_FOUND syscall.Errno = 1815 - ERROR_NOT_ENOUGH_QUOTA syscall.Errno = 1816 - RPC_S_NO_INTERFACES syscall.Errno = 1817 - RPC_S_CALL_CANCELLED syscall.Errno = 1818 - RPC_S_BINDING_INCOMPLETE syscall.Errno = 1819 - RPC_S_COMM_FAILURE syscall.Errno = 1820 - RPC_S_UNSUPPORTED_AUTHN_LEVEL syscall.Errno = 1821 - RPC_S_NO_PRINC_NAME syscall.Errno = 1822 - RPC_S_NOT_RPC_ERROR syscall.Errno = 1823 - RPC_S_UUID_LOCAL_ONLY syscall.Errno = 1824 - RPC_S_SEC_PKG_ERROR syscall.Errno = 1825 - RPC_S_NOT_CANCELLED syscall.Errno = 1826 - RPC_X_INVALID_ES_ACTION syscall.Errno = 1827 - RPC_X_WRONG_ES_VERSION syscall.Errno = 1828 - RPC_X_WRONG_STUB_VERSION syscall.Errno = 1829 - RPC_X_INVALID_PIPE_OBJECT syscall.Errno = 1830 - RPC_X_WRONG_PIPE_ORDER syscall.Errno = 1831 - RPC_X_WRONG_PIPE_VERSION syscall.Errno = 1832 - RPC_S_COOKIE_AUTH_FAILED syscall.Errno = 1833 - RPC_S_DO_NOT_DISTURB syscall.Errno = 1834 - RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED syscall.Errno = 1835 - RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH syscall.Errno = 1836 - RPC_S_GROUP_MEMBER_NOT_FOUND syscall.Errno = 1898 - EPT_S_CANT_CREATE syscall.Errno = 1899 - RPC_S_INVALID_OBJECT syscall.Errno = 1900 - ERROR_INVALID_TIME syscall.Errno = 1901 - ERROR_INVALID_FORM_NAME syscall.Errno = 1902 - ERROR_INVALID_FORM_SIZE syscall.Errno = 1903 - ERROR_ALREADY_WAITING syscall.Errno = 1904 - ERROR_PRINTER_DELETED syscall.Errno = 1905 - ERROR_INVALID_PRINTER_STATE syscall.Errno = 1906 - ERROR_PASSWORD_MUST_CHANGE syscall.Errno = 1907 - ERROR_DOMAIN_CONTROLLER_NOT_FOUND syscall.Errno = 1908 - ERROR_ACCOUNT_LOCKED_OUT syscall.Errno = 1909 - OR_INVALID_OXID syscall.Errno = 1910 - OR_INVALID_OID syscall.Errno = 1911 - OR_INVALID_SET syscall.Errno = 1912 - RPC_S_SEND_INCOMPLETE syscall.Errno = 1913 - RPC_S_INVALID_ASYNC_HANDLE syscall.Errno = 1914 - RPC_S_INVALID_ASYNC_CALL syscall.Errno = 1915 - RPC_X_PIPE_CLOSED syscall.Errno = 1916 - RPC_X_PIPE_DISCIPLINE_ERROR syscall.Errno = 1917 - RPC_X_PIPE_EMPTY syscall.Errno = 1918 - ERROR_NO_SITENAME syscall.Errno = 1919 - ERROR_CANT_ACCESS_FILE syscall.Errno = 1920 - ERROR_CANT_RESOLVE_FILENAME syscall.Errno = 1921 - RPC_S_ENTRY_TYPE_MISMATCH syscall.Errno = 1922 - RPC_S_NOT_ALL_OBJS_EXPORTED syscall.Errno = 1923 - RPC_S_INTERFACE_NOT_EXPORTED syscall.Errno = 1924 - RPC_S_PROFILE_NOT_ADDED syscall.Errno = 1925 - RPC_S_PRF_ELT_NOT_ADDED syscall.Errno = 1926 - RPC_S_PRF_ELT_NOT_REMOVED syscall.Errno = 1927 - RPC_S_GRP_ELT_NOT_ADDED syscall.Errno = 1928 - RPC_S_GRP_ELT_NOT_REMOVED syscall.Errno = 1929 - ERROR_KM_DRIVER_BLOCKED syscall.Errno = 1930 - ERROR_CONTEXT_EXPIRED syscall.Errno = 1931 - ERROR_PER_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1932 - ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1933 - ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED syscall.Errno = 1934 - ERROR_AUTHENTICATION_FIREWALL_FAILED syscall.Errno = 1935 - ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED syscall.Errno = 1936 - ERROR_NTLM_BLOCKED syscall.Errno = 1937 - ERROR_PASSWORD_CHANGE_REQUIRED syscall.Errno = 1938 - ERROR_LOST_MODE_LOGON_RESTRICTION syscall.Errno = 1939 - ERROR_INVALID_PIXEL_FORMAT syscall.Errno = 2000 - ERROR_BAD_DRIVER syscall.Errno = 2001 - ERROR_INVALID_WINDOW_STYLE syscall.Errno = 2002 - ERROR_METAFILE_NOT_SUPPORTED syscall.Errno = 2003 - ERROR_TRANSFORM_NOT_SUPPORTED syscall.Errno = 2004 - ERROR_CLIPPING_NOT_SUPPORTED syscall.Errno = 2005 - ERROR_INVALID_CMM syscall.Errno = 2010 - ERROR_INVALID_PROFILE syscall.Errno = 2011 - ERROR_TAG_NOT_FOUND syscall.Errno = 2012 - ERROR_TAG_NOT_PRESENT syscall.Errno = 2013 - ERROR_DUPLICATE_TAG syscall.Errno = 2014 - ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE syscall.Errno = 2015 - ERROR_PROFILE_NOT_FOUND syscall.Errno = 2016 - ERROR_INVALID_COLORSPACE syscall.Errno = 2017 - ERROR_ICM_NOT_ENABLED syscall.Errno = 2018 - ERROR_DELETING_ICM_XFORM syscall.Errno = 2019 - ERROR_INVALID_TRANSFORM syscall.Errno = 2020 - ERROR_COLORSPACE_MISMATCH syscall.Errno = 2021 - ERROR_INVALID_COLORINDEX syscall.Errno = 2022 - ERROR_PROFILE_DOES_NOT_MATCH_DEVICE syscall.Errno = 2023 - ERROR_CONNECTED_OTHER_PASSWORD syscall.Errno = 2108 - ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT syscall.Errno = 2109 - ERROR_BAD_USERNAME syscall.Errno = 2202 - ERROR_NOT_CONNECTED syscall.Errno = 2250 - ERROR_OPEN_FILES syscall.Errno = 2401 - ERROR_ACTIVE_CONNECTIONS syscall.Errno = 2402 - ERROR_DEVICE_IN_USE syscall.Errno = 2404 - ERROR_UNKNOWN_PRINT_MONITOR syscall.Errno = 3000 - ERROR_PRINTER_DRIVER_IN_USE syscall.Errno = 3001 - ERROR_SPOOL_FILE_NOT_FOUND syscall.Errno = 3002 - ERROR_SPL_NO_STARTDOC syscall.Errno = 3003 - ERROR_SPL_NO_ADDJOB syscall.Errno = 3004 - ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED syscall.Errno = 3005 - ERROR_PRINT_MONITOR_ALREADY_INSTALLED syscall.Errno = 3006 - ERROR_INVALID_PRINT_MONITOR syscall.Errno = 3007 - ERROR_PRINT_MONITOR_IN_USE syscall.Errno = 3008 - ERROR_PRINTER_HAS_JOBS_QUEUED syscall.Errno = 3009 - ERROR_SUCCESS_REBOOT_REQUIRED syscall.Errno = 3010 - ERROR_SUCCESS_RESTART_REQUIRED syscall.Errno = 3011 - ERROR_PRINTER_NOT_FOUND syscall.Errno = 3012 - ERROR_PRINTER_DRIVER_WARNED syscall.Errno = 3013 - ERROR_PRINTER_DRIVER_BLOCKED syscall.Errno = 3014 - ERROR_PRINTER_DRIVER_PACKAGE_IN_USE syscall.Errno = 3015 - ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND syscall.Errno = 3016 - ERROR_FAIL_REBOOT_REQUIRED syscall.Errno = 3017 - ERROR_FAIL_REBOOT_INITIATED syscall.Errno = 3018 - ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED syscall.Errno = 3019 - ERROR_PRINT_JOB_RESTART_REQUIRED syscall.Errno = 3020 - ERROR_INVALID_PRINTER_DRIVER_MANIFEST syscall.Errno = 3021 - ERROR_PRINTER_NOT_SHAREABLE syscall.Errno = 3022 - ERROR_REQUEST_PAUSED syscall.Errno = 3050 - ERROR_APPEXEC_CONDITION_NOT_SATISFIED syscall.Errno = 3060 - ERROR_APPEXEC_HANDLE_INVALIDATED syscall.Errno = 3061 - ERROR_APPEXEC_INVALID_HOST_GENERATION syscall.Errno = 3062 - ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION syscall.Errno = 3063 - ERROR_APPEXEC_INVALID_HOST_STATE syscall.Errno = 3064 - ERROR_APPEXEC_NO_DONOR syscall.Errno = 3065 - ERROR_APPEXEC_HOST_ID_MISMATCH syscall.Errno = 3066 - ERROR_APPEXEC_UNKNOWN_USER syscall.Errno = 3067 - ERROR_IO_REISSUE_AS_CACHED syscall.Errno = 3950 - ERROR_WINS_INTERNAL syscall.Errno = 4000 - ERROR_CAN_NOT_DEL_LOCAL_WINS syscall.Errno = 4001 - ERROR_STATIC_INIT syscall.Errno = 4002 - ERROR_INC_BACKUP syscall.Errno = 4003 - ERROR_FULL_BACKUP syscall.Errno = 4004 - ERROR_REC_NON_EXISTENT syscall.Errno = 4005 - ERROR_RPL_NOT_ALLOWED syscall.Errno = 4006 - PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED syscall.Errno = 4050 - PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO syscall.Errno = 4051 - PEERDIST_ERROR_MISSING_DATA syscall.Errno = 4052 - PEERDIST_ERROR_NO_MORE syscall.Errno = 4053 - PEERDIST_ERROR_NOT_INITIALIZED syscall.Errno = 4054 - PEERDIST_ERROR_ALREADY_INITIALIZED syscall.Errno = 4055 - PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 4056 - PEERDIST_ERROR_INVALIDATED syscall.Errno = 4057 - PEERDIST_ERROR_ALREADY_EXISTS syscall.Errno = 4058 - PEERDIST_ERROR_OPERATION_NOTFOUND syscall.Errno = 4059 - PEERDIST_ERROR_ALREADY_COMPLETED syscall.Errno = 4060 - PEERDIST_ERROR_OUT_OF_BOUNDS syscall.Errno = 4061 - PEERDIST_ERROR_VERSION_UNSUPPORTED syscall.Errno = 4062 - PEERDIST_ERROR_INVALID_CONFIGURATION syscall.Errno = 4063 - PEERDIST_ERROR_NOT_LICENSED syscall.Errno = 4064 - PEERDIST_ERROR_SERVICE_UNAVAILABLE syscall.Errno = 4065 - PEERDIST_ERROR_TRUST_FAILURE syscall.Errno = 4066 - ERROR_DHCP_ADDRESS_CONFLICT syscall.Errno = 4100 - ERROR_WMI_GUID_NOT_FOUND syscall.Errno = 4200 - ERROR_WMI_INSTANCE_NOT_FOUND syscall.Errno = 4201 - ERROR_WMI_ITEMID_NOT_FOUND syscall.Errno = 4202 - ERROR_WMI_TRY_AGAIN syscall.Errno = 4203 - ERROR_WMI_DP_NOT_FOUND syscall.Errno = 4204 - ERROR_WMI_UNRESOLVED_INSTANCE_REF syscall.Errno = 4205 - ERROR_WMI_ALREADY_ENABLED syscall.Errno = 4206 - ERROR_WMI_GUID_DISCONNECTED syscall.Errno = 4207 - ERROR_WMI_SERVER_UNAVAILABLE syscall.Errno = 4208 - ERROR_WMI_DP_FAILED syscall.Errno = 4209 - ERROR_WMI_INVALID_MOF syscall.Errno = 4210 - ERROR_WMI_INVALID_REGINFO syscall.Errno = 4211 - ERROR_WMI_ALREADY_DISABLED syscall.Errno = 4212 - ERROR_WMI_READ_ONLY syscall.Errno = 4213 - ERROR_WMI_SET_FAILURE syscall.Errno = 4214 - ERROR_NOT_APPCONTAINER syscall.Errno = 4250 - ERROR_APPCONTAINER_REQUIRED syscall.Errno = 4251 - ERROR_NOT_SUPPORTED_IN_APPCONTAINER syscall.Errno = 4252 - ERROR_INVALID_PACKAGE_SID_LENGTH syscall.Errno = 4253 - ERROR_INVALID_MEDIA syscall.Errno = 4300 - ERROR_INVALID_LIBRARY syscall.Errno = 4301 - ERROR_INVALID_MEDIA_POOL syscall.Errno = 4302 - ERROR_DRIVE_MEDIA_MISMATCH syscall.Errno = 4303 - ERROR_MEDIA_OFFLINE syscall.Errno = 4304 - ERROR_LIBRARY_OFFLINE syscall.Errno = 4305 - ERROR_EMPTY syscall.Errno = 4306 - ERROR_NOT_EMPTY syscall.Errno = 4307 - ERROR_MEDIA_UNAVAILABLE syscall.Errno = 4308 - ERROR_RESOURCE_DISABLED syscall.Errno = 4309 - ERROR_INVALID_CLEANER syscall.Errno = 4310 - ERROR_UNABLE_TO_CLEAN syscall.Errno = 4311 - ERROR_OBJECT_NOT_FOUND syscall.Errno = 4312 - ERROR_DATABASE_FAILURE syscall.Errno = 4313 - ERROR_DATABASE_FULL syscall.Errno = 4314 - ERROR_MEDIA_INCOMPATIBLE syscall.Errno = 4315 - ERROR_RESOURCE_NOT_PRESENT syscall.Errno = 4316 - ERROR_INVALID_OPERATION syscall.Errno = 4317 - ERROR_MEDIA_NOT_AVAILABLE syscall.Errno = 4318 - ERROR_DEVICE_NOT_AVAILABLE syscall.Errno = 4319 - ERROR_REQUEST_REFUSED syscall.Errno = 4320 - ERROR_INVALID_DRIVE_OBJECT syscall.Errno = 4321 - ERROR_LIBRARY_FULL syscall.Errno = 4322 - ERROR_MEDIUM_NOT_ACCESSIBLE syscall.Errno = 4323 - ERROR_UNABLE_TO_LOAD_MEDIUM syscall.Errno = 4324 - ERROR_UNABLE_TO_INVENTORY_DRIVE syscall.Errno = 4325 - ERROR_UNABLE_TO_INVENTORY_SLOT syscall.Errno = 4326 - ERROR_UNABLE_TO_INVENTORY_TRANSPORT syscall.Errno = 4327 - ERROR_TRANSPORT_FULL syscall.Errno = 4328 - ERROR_CONTROLLING_IEPORT syscall.Errno = 4329 - ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA syscall.Errno = 4330 - ERROR_CLEANER_SLOT_SET syscall.Errno = 4331 - ERROR_CLEANER_SLOT_NOT_SET syscall.Errno = 4332 - ERROR_CLEANER_CARTRIDGE_SPENT syscall.Errno = 4333 - ERROR_UNEXPECTED_OMID syscall.Errno = 4334 - ERROR_CANT_DELETE_LAST_ITEM syscall.Errno = 4335 - ERROR_MESSAGE_EXCEEDS_MAX_SIZE syscall.Errno = 4336 - ERROR_VOLUME_CONTAINS_SYS_FILES syscall.Errno = 4337 - ERROR_INDIGENOUS_TYPE syscall.Errno = 4338 - ERROR_NO_SUPPORTING_DRIVES syscall.Errno = 4339 - ERROR_CLEANER_CARTRIDGE_INSTALLED syscall.Errno = 4340 - ERROR_IEPORT_FULL syscall.Errno = 4341 - ERROR_FILE_OFFLINE syscall.Errno = 4350 - ERROR_REMOTE_STORAGE_NOT_ACTIVE syscall.Errno = 4351 - ERROR_REMOTE_STORAGE_MEDIA_ERROR syscall.Errno = 4352 - ERROR_NOT_A_REPARSE_POINT syscall.Errno = 4390 - ERROR_REPARSE_ATTRIBUTE_CONFLICT syscall.Errno = 4391 - ERROR_INVALID_REPARSE_DATA syscall.Errno = 4392 - ERROR_REPARSE_TAG_INVALID syscall.Errno = 4393 - ERROR_REPARSE_TAG_MISMATCH syscall.Errno = 4394 - ERROR_REPARSE_POINT_ENCOUNTERED syscall.Errno = 4395 - ERROR_APP_DATA_NOT_FOUND syscall.Errno = 4400 - ERROR_APP_DATA_EXPIRED syscall.Errno = 4401 - ERROR_APP_DATA_CORRUPT syscall.Errno = 4402 - ERROR_APP_DATA_LIMIT_EXCEEDED syscall.Errno = 4403 - ERROR_APP_DATA_REBOOT_REQUIRED syscall.Errno = 4404 - ERROR_SECUREBOOT_ROLLBACK_DETECTED syscall.Errno = 4420 - ERROR_SECUREBOOT_POLICY_VIOLATION syscall.Errno = 4421 - ERROR_SECUREBOOT_INVALID_POLICY syscall.Errno = 4422 - ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND syscall.Errno = 4423 - ERROR_SECUREBOOT_POLICY_NOT_SIGNED syscall.Errno = 4424 - ERROR_SECUREBOOT_NOT_ENABLED syscall.Errno = 4425 - ERROR_SECUREBOOT_FILE_REPLACED syscall.Errno = 4426 - ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED syscall.Errno = 4427 - ERROR_SECUREBOOT_POLICY_UNKNOWN syscall.Errno = 4428 - ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION syscall.Errno = 4429 - ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH syscall.Errno = 4430 - ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED syscall.Errno = 4431 - ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH syscall.Errno = 4432 - ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING syscall.Errno = 4433 - ERROR_SECUREBOOT_NOT_BASE_POLICY syscall.Errno = 4434 - ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY syscall.Errno = 4435 - ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED syscall.Errno = 4440 - ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED syscall.Errno = 4441 - ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED syscall.Errno = 4442 - ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED syscall.Errno = 4443 - ERROR_ALREADY_HAS_STREAM_ID syscall.Errno = 4444 - ERROR_SMR_GARBAGE_COLLECTION_REQUIRED syscall.Errno = 4445 - ERROR_WOF_WIM_HEADER_CORRUPT syscall.Errno = 4446 - ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT syscall.Errno = 4447 - ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT syscall.Errno = 4448 - ERROR_VOLUME_NOT_SIS_ENABLED syscall.Errno = 4500 - ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED syscall.Errno = 4550 - ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION syscall.Errno = 4551 - ERROR_SYSTEM_INTEGRITY_INVALID_POLICY syscall.Errno = 4552 - ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED syscall.Errno = 4553 - ERROR_VSM_NOT_INITIALIZED syscall.Errno = 4560 - ERROR_VSM_DMA_PROTECTION_NOT_IN_USE syscall.Errno = 4561 - ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED syscall.Errno = 4570 - ERROR_PLATFORM_MANIFEST_INVALID syscall.Errno = 4571 - ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED syscall.Errno = 4572 - ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED syscall.Errno = 4573 - ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND syscall.Errno = 4574 - ERROR_PLATFORM_MANIFEST_NOT_ACTIVE syscall.Errno = 4575 - ERROR_PLATFORM_MANIFEST_NOT_SIGNED syscall.Errno = 4576 - ERROR_DEPENDENT_RESOURCE_EXISTS syscall.Errno = 5001 - ERROR_DEPENDENCY_NOT_FOUND syscall.Errno = 5002 - ERROR_DEPENDENCY_ALREADY_EXISTS syscall.Errno = 5003 - ERROR_RESOURCE_NOT_ONLINE syscall.Errno = 5004 - ERROR_HOST_NODE_NOT_AVAILABLE syscall.Errno = 5005 - ERROR_RESOURCE_NOT_AVAILABLE syscall.Errno = 5006 - ERROR_RESOURCE_NOT_FOUND syscall.Errno = 5007 - ERROR_SHUTDOWN_CLUSTER syscall.Errno = 5008 - ERROR_CANT_EVICT_ACTIVE_NODE syscall.Errno = 5009 - ERROR_OBJECT_ALREADY_EXISTS syscall.Errno = 5010 - ERROR_OBJECT_IN_LIST syscall.Errno = 5011 - ERROR_GROUP_NOT_AVAILABLE syscall.Errno = 5012 - ERROR_GROUP_NOT_FOUND syscall.Errno = 5013 - ERROR_GROUP_NOT_ONLINE syscall.Errno = 5014 - ERROR_HOST_NODE_NOT_RESOURCE_OWNER syscall.Errno = 5015 - ERROR_HOST_NODE_NOT_GROUP_OWNER syscall.Errno = 5016 - ERROR_RESMON_CREATE_FAILED syscall.Errno = 5017 - ERROR_RESMON_ONLINE_FAILED syscall.Errno = 5018 - ERROR_RESOURCE_ONLINE syscall.Errno = 5019 - ERROR_QUORUM_RESOURCE syscall.Errno = 5020 - ERROR_NOT_QUORUM_CAPABLE syscall.Errno = 5021 - ERROR_CLUSTER_SHUTTING_DOWN syscall.Errno = 5022 - ERROR_INVALID_STATE syscall.Errno = 5023 - ERROR_RESOURCE_PROPERTIES_STORED syscall.Errno = 5024 - ERROR_NOT_QUORUM_CLASS syscall.Errno = 5025 - ERROR_CORE_RESOURCE syscall.Errno = 5026 - ERROR_QUORUM_RESOURCE_ONLINE_FAILED syscall.Errno = 5027 - ERROR_QUORUMLOG_OPEN_FAILED syscall.Errno = 5028 - ERROR_CLUSTERLOG_CORRUPT syscall.Errno = 5029 - ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE syscall.Errno = 5030 - ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE syscall.Errno = 5031 - ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND syscall.Errno = 5032 - ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE syscall.Errno = 5033 - ERROR_QUORUM_OWNER_ALIVE syscall.Errno = 5034 - ERROR_NETWORK_NOT_AVAILABLE syscall.Errno = 5035 - ERROR_NODE_NOT_AVAILABLE syscall.Errno = 5036 - ERROR_ALL_NODES_NOT_AVAILABLE syscall.Errno = 5037 - ERROR_RESOURCE_FAILED syscall.Errno = 5038 - ERROR_CLUSTER_INVALID_NODE syscall.Errno = 5039 - ERROR_CLUSTER_NODE_EXISTS syscall.Errno = 5040 - ERROR_CLUSTER_JOIN_IN_PROGRESS syscall.Errno = 5041 - ERROR_CLUSTER_NODE_NOT_FOUND syscall.Errno = 5042 - ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND syscall.Errno = 5043 - ERROR_CLUSTER_NETWORK_EXISTS syscall.Errno = 5044 - ERROR_CLUSTER_NETWORK_NOT_FOUND syscall.Errno = 5045 - ERROR_CLUSTER_NETINTERFACE_EXISTS syscall.Errno = 5046 - ERROR_CLUSTER_NETINTERFACE_NOT_FOUND syscall.Errno = 5047 - ERROR_CLUSTER_INVALID_REQUEST syscall.Errno = 5048 - ERROR_CLUSTER_INVALID_NETWORK_PROVIDER syscall.Errno = 5049 - ERROR_CLUSTER_NODE_DOWN syscall.Errno = 5050 - ERROR_CLUSTER_NODE_UNREACHABLE syscall.Errno = 5051 - ERROR_CLUSTER_NODE_NOT_MEMBER syscall.Errno = 5052 - ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS syscall.Errno = 5053 - ERROR_CLUSTER_INVALID_NETWORK syscall.Errno = 5054 - ERROR_CLUSTER_NODE_UP syscall.Errno = 5056 - ERROR_CLUSTER_IPADDR_IN_USE syscall.Errno = 5057 - ERROR_CLUSTER_NODE_NOT_PAUSED syscall.Errno = 5058 - ERROR_CLUSTER_NO_SECURITY_CONTEXT syscall.Errno = 5059 - ERROR_CLUSTER_NETWORK_NOT_INTERNAL syscall.Errno = 5060 - ERROR_CLUSTER_NODE_ALREADY_UP syscall.Errno = 5061 - ERROR_CLUSTER_NODE_ALREADY_DOWN syscall.Errno = 5062 - ERROR_CLUSTER_NETWORK_ALREADY_ONLINE syscall.Errno = 5063 - ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE syscall.Errno = 5064 - ERROR_CLUSTER_NODE_ALREADY_MEMBER syscall.Errno = 5065 - ERROR_CLUSTER_LAST_INTERNAL_NETWORK syscall.Errno = 5066 - ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS syscall.Errno = 5067 - ERROR_INVALID_OPERATION_ON_QUORUM syscall.Errno = 5068 - ERROR_DEPENDENCY_NOT_ALLOWED syscall.Errno = 5069 - ERROR_CLUSTER_NODE_PAUSED syscall.Errno = 5070 - ERROR_NODE_CANT_HOST_RESOURCE syscall.Errno = 5071 - ERROR_CLUSTER_NODE_NOT_READY syscall.Errno = 5072 - ERROR_CLUSTER_NODE_SHUTTING_DOWN syscall.Errno = 5073 - ERROR_CLUSTER_JOIN_ABORTED syscall.Errno = 5074 - ERROR_CLUSTER_INCOMPATIBLE_VERSIONS syscall.Errno = 5075 - ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED syscall.Errno = 5076 - ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED syscall.Errno = 5077 - ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 5078 - ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED syscall.Errno = 5079 - ERROR_CLUSTER_RESNAME_NOT_FOUND syscall.Errno = 5080 - ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED syscall.Errno = 5081 - ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST syscall.Errno = 5082 - ERROR_CLUSTER_DATABASE_SEQMISMATCH syscall.Errno = 5083 - ERROR_RESMON_INVALID_STATE syscall.Errno = 5084 - ERROR_CLUSTER_GUM_NOT_LOCKER syscall.Errno = 5085 - ERROR_QUORUM_DISK_NOT_FOUND syscall.Errno = 5086 - ERROR_DATABASE_BACKUP_CORRUPT syscall.Errno = 5087 - ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT syscall.Errno = 5088 - ERROR_RESOURCE_PROPERTY_UNCHANGEABLE syscall.Errno = 5089 - ERROR_NO_ADMIN_ACCESS_POINT syscall.Errno = 5090 - ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE syscall.Errno = 5890 - ERROR_CLUSTER_QUORUMLOG_NOT_FOUND syscall.Errno = 5891 - ERROR_CLUSTER_MEMBERSHIP_HALT syscall.Errno = 5892 - ERROR_CLUSTER_INSTANCE_ID_MISMATCH syscall.Errno = 5893 - ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP syscall.Errno = 5894 - ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH syscall.Errno = 5895 - ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP syscall.Errno = 5896 - ERROR_CLUSTER_PARAMETER_MISMATCH syscall.Errno = 5897 - ERROR_NODE_CANNOT_BE_CLUSTERED syscall.Errno = 5898 - ERROR_CLUSTER_WRONG_OS_VERSION syscall.Errno = 5899 - ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME syscall.Errno = 5900 - ERROR_CLUSCFG_ALREADY_COMMITTED syscall.Errno = 5901 - ERROR_CLUSCFG_ROLLBACK_FAILED syscall.Errno = 5902 - ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT syscall.Errno = 5903 - ERROR_CLUSTER_OLD_VERSION syscall.Errno = 5904 - ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME syscall.Errno = 5905 - ERROR_CLUSTER_NO_NET_ADAPTERS syscall.Errno = 5906 - ERROR_CLUSTER_POISONED syscall.Errno = 5907 - ERROR_CLUSTER_GROUP_MOVING syscall.Errno = 5908 - ERROR_CLUSTER_RESOURCE_TYPE_BUSY syscall.Errno = 5909 - ERROR_RESOURCE_CALL_TIMED_OUT syscall.Errno = 5910 - ERROR_INVALID_CLUSTER_IPV6_ADDRESS syscall.Errno = 5911 - ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION syscall.Errno = 5912 - ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS syscall.Errno = 5913 - ERROR_CLUSTER_PARTIAL_SEND syscall.Errno = 5914 - ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION syscall.Errno = 5915 - ERROR_CLUSTER_INVALID_STRING_TERMINATION syscall.Errno = 5916 - ERROR_CLUSTER_INVALID_STRING_FORMAT syscall.Errno = 5917 - ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS syscall.Errno = 5918 - ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS syscall.Errno = 5919 - ERROR_CLUSTER_NULL_DATA syscall.Errno = 5920 - ERROR_CLUSTER_PARTIAL_READ syscall.Errno = 5921 - ERROR_CLUSTER_PARTIAL_WRITE syscall.Errno = 5922 - ERROR_CLUSTER_CANT_DESERIALIZE_DATA syscall.Errno = 5923 - ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT syscall.Errno = 5924 - ERROR_CLUSTER_NO_QUORUM syscall.Errno = 5925 - ERROR_CLUSTER_INVALID_IPV6_NETWORK syscall.Errno = 5926 - ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK syscall.Errno = 5927 - ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP syscall.Errno = 5928 - ERROR_DEPENDENCY_TREE_TOO_COMPLEX syscall.Errno = 5929 - ERROR_EXCEPTION_IN_RESOURCE_CALL syscall.Errno = 5930 - ERROR_CLUSTER_RHS_FAILED_INITIALIZATION syscall.Errno = 5931 - ERROR_CLUSTER_NOT_INSTALLED syscall.Errno = 5932 - ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE syscall.Errno = 5933 - ERROR_CLUSTER_MAX_NODES_IN_CLUSTER syscall.Errno = 5934 - ERROR_CLUSTER_TOO_MANY_NODES syscall.Errno = 5935 - ERROR_CLUSTER_OBJECT_ALREADY_USED syscall.Errno = 5936 - ERROR_NONCORE_GROUPS_FOUND syscall.Errno = 5937 - ERROR_FILE_SHARE_RESOURCE_CONFLICT syscall.Errno = 5938 - ERROR_CLUSTER_EVICT_INVALID_REQUEST syscall.Errno = 5939 - ERROR_CLUSTER_SINGLETON_RESOURCE syscall.Errno = 5940 - ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE syscall.Errno = 5941 - ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED syscall.Errno = 5942 - ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR syscall.Errno = 5943 - ERROR_CLUSTER_GROUP_BUSY syscall.Errno = 5944 - ERROR_CLUSTER_NOT_SHARED_VOLUME syscall.Errno = 5945 - ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR syscall.Errno = 5946 - ERROR_CLUSTER_SHARED_VOLUMES_IN_USE syscall.Errno = 5947 - ERROR_CLUSTER_USE_SHARED_VOLUMES_API syscall.Errno = 5948 - ERROR_CLUSTER_BACKUP_IN_PROGRESS syscall.Errno = 5949 - ERROR_NON_CSV_PATH syscall.Errno = 5950 - ERROR_CSV_VOLUME_NOT_LOCAL syscall.Errno = 5951 - ERROR_CLUSTER_WATCHDOG_TERMINATING syscall.Errno = 5952 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES syscall.Errno = 5953 - ERROR_CLUSTER_INVALID_NODE_WEIGHT syscall.Errno = 5954 - ERROR_CLUSTER_RESOURCE_VETOED_CALL syscall.Errno = 5955 - ERROR_RESMON_SYSTEM_RESOURCES_LACKING syscall.Errno = 5956 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION syscall.Errno = 5957 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE syscall.Errno = 5958 - ERROR_CLUSTER_GROUP_QUEUED syscall.Errno = 5959 - ERROR_CLUSTER_RESOURCE_LOCKED_STATUS syscall.Errno = 5960 - ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED syscall.Errno = 5961 - ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS syscall.Errno = 5962 - ERROR_CLUSTER_DISK_NOT_CONNECTED syscall.Errno = 5963 - ERROR_DISK_NOT_CSV_CAPABLE syscall.Errno = 5964 - ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE syscall.Errno = 5965 - ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED syscall.Errno = 5966 - ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED syscall.Errno = 5967 - ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES syscall.Errno = 5968 - ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES syscall.Errno = 5969 - ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE syscall.Errno = 5970 - ERROR_CLUSTER_AFFINITY_CONFLICT syscall.Errno = 5971 - ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE syscall.Errno = 5972 - ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS syscall.Errno = 5973 - ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED syscall.Errno = 5974 - ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED syscall.Errno = 5975 - ERROR_CLUSTER_UPGRADE_IN_PROGRESS syscall.Errno = 5976 - ERROR_CLUSTER_UPGRADE_INCOMPLETE syscall.Errno = 5977 - ERROR_CLUSTER_NODE_IN_GRACE_PERIOD syscall.Errno = 5978 - ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT syscall.Errno = 5979 - ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER syscall.Errno = 5980 - ERROR_CLUSTER_RESOURCE_NOT_MONITORED syscall.Errno = 5981 - ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED syscall.Errno = 5982 - ERROR_CLUSTER_RESOURCE_IS_REPLICATED syscall.Errno = 5983 - ERROR_CLUSTER_NODE_ISOLATED syscall.Errno = 5984 - ERROR_CLUSTER_NODE_QUARANTINED syscall.Errno = 5985 - ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED syscall.Errno = 5986 - ERROR_CLUSTER_SPACE_DEGRADED syscall.Errno = 5987 - ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED syscall.Errno = 5988 - ERROR_CLUSTER_CSV_INVALID_HANDLE syscall.Errno = 5989 - ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR syscall.Errno = 5990 - ERROR_GROUPSET_NOT_AVAILABLE syscall.Errno = 5991 - ERROR_GROUPSET_NOT_FOUND syscall.Errno = 5992 - ERROR_GROUPSET_CANT_PROVIDE syscall.Errno = 5993 - ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND syscall.Errno = 5994 - ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY syscall.Errno = 5995 - ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION syscall.Errno = 5996 - ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS syscall.Errno = 5997 - ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME syscall.Errno = 5998 - ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE syscall.Errno = 5999 - ERROR_ENCRYPTION_FAILED syscall.Errno = 6000 - ERROR_DECRYPTION_FAILED syscall.Errno = 6001 - ERROR_FILE_ENCRYPTED syscall.Errno = 6002 - ERROR_NO_RECOVERY_POLICY syscall.Errno = 6003 - ERROR_NO_EFS syscall.Errno = 6004 - ERROR_WRONG_EFS syscall.Errno = 6005 - ERROR_NO_USER_KEYS syscall.Errno = 6006 - ERROR_FILE_NOT_ENCRYPTED syscall.Errno = 6007 - ERROR_NOT_EXPORT_FORMAT syscall.Errno = 6008 - ERROR_FILE_READ_ONLY syscall.Errno = 6009 - ERROR_DIR_EFS_DISALLOWED syscall.Errno = 6010 - ERROR_EFS_SERVER_NOT_TRUSTED syscall.Errno = 6011 - ERROR_BAD_RECOVERY_POLICY syscall.Errno = 6012 - ERROR_EFS_ALG_BLOB_TOO_BIG syscall.Errno = 6013 - ERROR_VOLUME_NOT_SUPPORT_EFS syscall.Errno = 6014 - ERROR_EFS_DISABLED syscall.Errno = 6015 - ERROR_EFS_VERSION_NOT_SUPPORT syscall.Errno = 6016 - ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE syscall.Errno = 6017 - ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER syscall.Errno = 6018 - ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE syscall.Errno = 6019 - ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE syscall.Errno = 6020 - ERROR_CS_ENCRYPTION_FILE_NOT_CSE syscall.Errno = 6021 - ERROR_ENCRYPTION_POLICY_DENIES_OPERATION syscall.Errno = 6022 - ERROR_NO_BROWSER_SERVERS_FOUND syscall.Errno = 6118 - SCHED_E_SERVICE_NOT_LOCALSYSTEM syscall.Errno = 6200 - ERROR_LOG_SECTOR_INVALID syscall.Errno = 6600 - ERROR_LOG_SECTOR_PARITY_INVALID syscall.Errno = 6601 - ERROR_LOG_SECTOR_REMAPPED syscall.Errno = 6602 - ERROR_LOG_BLOCK_INCOMPLETE syscall.Errno = 6603 - ERROR_LOG_INVALID_RANGE syscall.Errno = 6604 - ERROR_LOG_BLOCKS_EXHAUSTED syscall.Errno = 6605 - ERROR_LOG_READ_CONTEXT_INVALID syscall.Errno = 6606 - ERROR_LOG_RESTART_INVALID syscall.Errno = 6607 - ERROR_LOG_BLOCK_VERSION syscall.Errno = 6608 - ERROR_LOG_BLOCK_INVALID syscall.Errno = 6609 - ERROR_LOG_READ_MODE_INVALID syscall.Errno = 6610 - ERROR_LOG_NO_RESTART syscall.Errno = 6611 - ERROR_LOG_METADATA_CORRUPT syscall.Errno = 6612 - ERROR_LOG_METADATA_INVALID syscall.Errno = 6613 - ERROR_LOG_METADATA_INCONSISTENT syscall.Errno = 6614 - ERROR_LOG_RESERVATION_INVALID syscall.Errno = 6615 - ERROR_LOG_CANT_DELETE syscall.Errno = 6616 - ERROR_LOG_CONTAINER_LIMIT_EXCEEDED syscall.Errno = 6617 - ERROR_LOG_START_OF_LOG syscall.Errno = 6618 - ERROR_LOG_POLICY_ALREADY_INSTALLED syscall.Errno = 6619 - ERROR_LOG_POLICY_NOT_INSTALLED syscall.Errno = 6620 - ERROR_LOG_POLICY_INVALID syscall.Errno = 6621 - ERROR_LOG_POLICY_CONFLICT syscall.Errno = 6622 - ERROR_LOG_PINNED_ARCHIVE_TAIL syscall.Errno = 6623 - ERROR_LOG_RECORD_NONEXISTENT syscall.Errno = 6624 - ERROR_LOG_RECORDS_RESERVED_INVALID syscall.Errno = 6625 - ERROR_LOG_SPACE_RESERVED_INVALID syscall.Errno = 6626 - ERROR_LOG_TAIL_INVALID syscall.Errno = 6627 - ERROR_LOG_FULL syscall.Errno = 6628 - ERROR_COULD_NOT_RESIZE_LOG syscall.Errno = 6629 - ERROR_LOG_MULTIPLEXED syscall.Errno = 6630 - ERROR_LOG_DEDICATED syscall.Errno = 6631 - ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS syscall.Errno = 6632 - ERROR_LOG_ARCHIVE_IN_PROGRESS syscall.Errno = 6633 - ERROR_LOG_EPHEMERAL syscall.Errno = 6634 - ERROR_LOG_NOT_ENOUGH_CONTAINERS syscall.Errno = 6635 - ERROR_LOG_CLIENT_ALREADY_REGISTERED syscall.Errno = 6636 - ERROR_LOG_CLIENT_NOT_REGISTERED syscall.Errno = 6637 - ERROR_LOG_FULL_HANDLER_IN_PROGRESS syscall.Errno = 6638 - ERROR_LOG_CONTAINER_READ_FAILED syscall.Errno = 6639 - ERROR_LOG_CONTAINER_WRITE_FAILED syscall.Errno = 6640 - ERROR_LOG_CONTAINER_OPEN_FAILED syscall.Errno = 6641 - ERROR_LOG_CONTAINER_STATE_INVALID syscall.Errno = 6642 - ERROR_LOG_STATE_INVALID syscall.Errno = 6643 - ERROR_LOG_PINNED syscall.Errno = 6644 - ERROR_LOG_METADATA_FLUSH_FAILED syscall.Errno = 6645 - ERROR_LOG_INCONSISTENT_SECURITY syscall.Errno = 6646 - ERROR_LOG_APPENDED_FLUSH_FAILED syscall.Errno = 6647 - ERROR_LOG_PINNED_RESERVATION syscall.Errno = 6648 - ERROR_INVALID_TRANSACTION syscall.Errno = 6700 - ERROR_TRANSACTION_NOT_ACTIVE syscall.Errno = 6701 - ERROR_TRANSACTION_REQUEST_NOT_VALID syscall.Errno = 6702 - ERROR_TRANSACTION_NOT_REQUESTED syscall.Errno = 6703 - ERROR_TRANSACTION_ALREADY_ABORTED syscall.Errno = 6704 - ERROR_TRANSACTION_ALREADY_COMMITTED syscall.Errno = 6705 - ERROR_TM_INITIALIZATION_FAILED syscall.Errno = 6706 - ERROR_RESOURCEMANAGER_READ_ONLY syscall.Errno = 6707 - ERROR_TRANSACTION_NOT_JOINED syscall.Errno = 6708 - ERROR_TRANSACTION_SUPERIOR_EXISTS syscall.Errno = 6709 - ERROR_CRM_PROTOCOL_ALREADY_EXISTS syscall.Errno = 6710 - ERROR_TRANSACTION_PROPAGATION_FAILED syscall.Errno = 6711 - ERROR_CRM_PROTOCOL_NOT_FOUND syscall.Errno = 6712 - ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER syscall.Errno = 6713 - ERROR_CURRENT_TRANSACTION_NOT_VALID syscall.Errno = 6714 - ERROR_TRANSACTION_NOT_FOUND syscall.Errno = 6715 - ERROR_RESOURCEMANAGER_NOT_FOUND syscall.Errno = 6716 - ERROR_ENLISTMENT_NOT_FOUND syscall.Errno = 6717 - ERROR_TRANSACTIONMANAGER_NOT_FOUND syscall.Errno = 6718 - ERROR_TRANSACTIONMANAGER_NOT_ONLINE syscall.Errno = 6719 - ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION syscall.Errno = 6720 - ERROR_TRANSACTION_NOT_ROOT syscall.Errno = 6721 - ERROR_TRANSACTION_OBJECT_EXPIRED syscall.Errno = 6722 - ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED syscall.Errno = 6723 - ERROR_TRANSACTION_RECORD_TOO_LONG syscall.Errno = 6724 - ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED syscall.Errno = 6725 - ERROR_TRANSACTION_INTEGRITY_VIOLATED syscall.Errno = 6726 - ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH syscall.Errno = 6727 - ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT syscall.Errno = 6728 - ERROR_TRANSACTION_MUST_WRITETHROUGH syscall.Errno = 6729 - ERROR_TRANSACTION_NO_SUPERIOR syscall.Errno = 6730 - ERROR_HEURISTIC_DAMAGE_POSSIBLE syscall.Errno = 6731 - ERROR_TRANSACTIONAL_CONFLICT syscall.Errno = 6800 - ERROR_RM_NOT_ACTIVE syscall.Errno = 6801 - ERROR_RM_METADATA_CORRUPT syscall.Errno = 6802 - ERROR_DIRECTORY_NOT_RM syscall.Errno = 6803 - ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE syscall.Errno = 6805 - ERROR_LOG_RESIZE_INVALID_SIZE syscall.Errno = 6806 - ERROR_OBJECT_NO_LONGER_EXISTS syscall.Errno = 6807 - ERROR_STREAM_MINIVERSION_NOT_FOUND syscall.Errno = 6808 - ERROR_STREAM_MINIVERSION_NOT_VALID syscall.Errno = 6809 - ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION syscall.Errno = 6810 - ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT syscall.Errno = 6811 - ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS syscall.Errno = 6812 - ERROR_REMOTE_FILE_VERSION_MISMATCH syscall.Errno = 6814 - ERROR_HANDLE_NO_LONGER_VALID syscall.Errno = 6815 - ERROR_NO_TXF_METADATA syscall.Errno = 6816 - ERROR_LOG_CORRUPTION_DETECTED syscall.Errno = 6817 - ERROR_CANT_RECOVER_WITH_HANDLE_OPEN syscall.Errno = 6818 - ERROR_RM_DISCONNECTED syscall.Errno = 6819 - ERROR_ENLISTMENT_NOT_SUPERIOR syscall.Errno = 6820 - ERROR_RECOVERY_NOT_NEEDED syscall.Errno = 6821 - ERROR_RM_ALREADY_STARTED syscall.Errno = 6822 - ERROR_FILE_IDENTITY_NOT_PERSISTENT syscall.Errno = 6823 - ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY syscall.Errno = 6824 - ERROR_CANT_CROSS_RM_BOUNDARY syscall.Errno = 6825 - ERROR_TXF_DIR_NOT_EMPTY syscall.Errno = 6826 - ERROR_INDOUBT_TRANSACTIONS_EXIST syscall.Errno = 6827 - ERROR_TM_VOLATILE syscall.Errno = 6828 - ERROR_ROLLBACK_TIMER_EXPIRED syscall.Errno = 6829 - ERROR_TXF_ATTRIBUTE_CORRUPT syscall.Errno = 6830 - ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6831 - ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED syscall.Errno = 6832 - ERROR_LOG_GROWTH_FAILED syscall.Errno = 6833 - ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE syscall.Errno = 6834 - ERROR_TXF_METADATA_ALREADY_PRESENT syscall.Errno = 6835 - ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET syscall.Errno = 6836 - ERROR_TRANSACTION_REQUIRED_PROMOTION syscall.Errno = 6837 - ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION syscall.Errno = 6838 - ERROR_TRANSACTIONS_NOT_FROZEN syscall.Errno = 6839 - ERROR_TRANSACTION_FREEZE_IN_PROGRESS syscall.Errno = 6840 - ERROR_NOT_SNAPSHOT_VOLUME syscall.Errno = 6841 - ERROR_NO_SAVEPOINT_WITH_OPEN_FILES syscall.Errno = 6842 - ERROR_DATA_LOST_REPAIR syscall.Errno = 6843 - ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6844 - ERROR_TM_IDENTITY_MISMATCH syscall.Errno = 6845 - ERROR_FLOATED_SECTION syscall.Errno = 6846 - ERROR_CANNOT_ACCEPT_TRANSACTED_WORK syscall.Errno = 6847 - ERROR_CANNOT_ABORT_TRANSACTIONS syscall.Errno = 6848 - ERROR_BAD_CLUSTERS syscall.Errno = 6849 - ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6850 - ERROR_VOLUME_DIRTY syscall.Errno = 6851 - ERROR_NO_LINK_TRACKING_IN_TRANSACTION syscall.Errno = 6852 - ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION syscall.Errno = 6853 - ERROR_EXPIRED_HANDLE syscall.Errno = 6854 - ERROR_TRANSACTION_NOT_ENLISTED syscall.Errno = 6855 - ERROR_CTX_WINSTATION_NAME_INVALID syscall.Errno = 7001 - ERROR_CTX_INVALID_PD syscall.Errno = 7002 - ERROR_CTX_PD_NOT_FOUND syscall.Errno = 7003 - ERROR_CTX_WD_NOT_FOUND syscall.Errno = 7004 - ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY syscall.Errno = 7005 - ERROR_CTX_SERVICE_NAME_COLLISION syscall.Errno = 7006 - ERROR_CTX_CLOSE_PENDING syscall.Errno = 7007 - ERROR_CTX_NO_OUTBUF syscall.Errno = 7008 - ERROR_CTX_MODEM_INF_NOT_FOUND syscall.Errno = 7009 - ERROR_CTX_INVALID_MODEMNAME syscall.Errno = 7010 - ERROR_CTX_MODEM_RESPONSE_ERROR syscall.Errno = 7011 - ERROR_CTX_MODEM_RESPONSE_TIMEOUT syscall.Errno = 7012 - ERROR_CTX_MODEM_RESPONSE_NO_CARRIER syscall.Errno = 7013 - ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE syscall.Errno = 7014 - ERROR_CTX_MODEM_RESPONSE_BUSY syscall.Errno = 7015 - ERROR_CTX_MODEM_RESPONSE_VOICE syscall.Errno = 7016 - ERROR_CTX_TD_ERROR syscall.Errno = 7017 - ERROR_CTX_WINSTATION_NOT_FOUND syscall.Errno = 7022 - ERROR_CTX_WINSTATION_ALREADY_EXISTS syscall.Errno = 7023 - ERROR_CTX_WINSTATION_BUSY syscall.Errno = 7024 - ERROR_CTX_BAD_VIDEO_MODE syscall.Errno = 7025 - ERROR_CTX_GRAPHICS_INVALID syscall.Errno = 7035 - ERROR_CTX_LOGON_DISABLED syscall.Errno = 7037 - ERROR_CTX_NOT_CONSOLE syscall.Errno = 7038 - ERROR_CTX_CLIENT_QUERY_TIMEOUT syscall.Errno = 7040 - ERROR_CTX_CONSOLE_DISCONNECT syscall.Errno = 7041 - ERROR_CTX_CONSOLE_CONNECT syscall.Errno = 7042 - ERROR_CTX_SHADOW_DENIED syscall.Errno = 7044 - ERROR_CTX_WINSTATION_ACCESS_DENIED syscall.Errno = 7045 - ERROR_CTX_INVALID_WD syscall.Errno = 7049 - ERROR_CTX_SHADOW_INVALID syscall.Errno = 7050 - ERROR_CTX_SHADOW_DISABLED syscall.Errno = 7051 - ERROR_CTX_CLIENT_LICENSE_IN_USE syscall.Errno = 7052 - ERROR_CTX_CLIENT_LICENSE_NOT_SET syscall.Errno = 7053 - ERROR_CTX_LICENSE_NOT_AVAILABLE syscall.Errno = 7054 - ERROR_CTX_LICENSE_CLIENT_INVALID syscall.Errno = 7055 - ERROR_CTX_LICENSE_EXPIRED syscall.Errno = 7056 - ERROR_CTX_SHADOW_NOT_RUNNING syscall.Errno = 7057 - ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE syscall.Errno = 7058 - ERROR_ACTIVATION_COUNT_EXCEEDED syscall.Errno = 7059 - ERROR_CTX_WINSTATIONS_DISABLED syscall.Errno = 7060 - ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED syscall.Errno = 7061 - ERROR_CTX_SESSION_IN_USE syscall.Errno = 7062 - ERROR_CTX_NO_FORCE_LOGOFF syscall.Errno = 7063 - ERROR_CTX_ACCOUNT_RESTRICTION syscall.Errno = 7064 - ERROR_RDP_PROTOCOL_ERROR syscall.Errno = 7065 - ERROR_CTX_CDM_CONNECT syscall.Errno = 7066 - ERROR_CTX_CDM_DISCONNECT syscall.Errno = 7067 - ERROR_CTX_SECURITY_LAYER_ERROR syscall.Errno = 7068 - ERROR_TS_INCOMPATIBLE_SESSIONS syscall.Errno = 7069 - ERROR_TS_VIDEO_SUBSYSTEM_ERROR syscall.Errno = 7070 - FRS_ERR_INVALID_API_SEQUENCE syscall.Errno = 8001 - FRS_ERR_STARTING_SERVICE syscall.Errno = 8002 - FRS_ERR_STOPPING_SERVICE syscall.Errno = 8003 - FRS_ERR_INTERNAL_API syscall.Errno = 8004 - FRS_ERR_INTERNAL syscall.Errno = 8005 - FRS_ERR_SERVICE_COMM syscall.Errno = 8006 - FRS_ERR_INSUFFICIENT_PRIV syscall.Errno = 8007 - FRS_ERR_AUTHENTICATION syscall.Errno = 8008 - FRS_ERR_PARENT_INSUFFICIENT_PRIV syscall.Errno = 8009 - FRS_ERR_PARENT_AUTHENTICATION syscall.Errno = 8010 - FRS_ERR_CHILD_TO_PARENT_COMM syscall.Errno = 8011 - FRS_ERR_PARENT_TO_CHILD_COMM syscall.Errno = 8012 - FRS_ERR_SYSVOL_POPULATE syscall.Errno = 8013 - FRS_ERR_SYSVOL_POPULATE_TIMEOUT syscall.Errno = 8014 - FRS_ERR_SYSVOL_IS_BUSY syscall.Errno = 8015 - FRS_ERR_SYSVOL_DEMOTE syscall.Errno = 8016 - FRS_ERR_INVALID_SERVICE_PARAMETER syscall.Errno = 8017 - DS_S_SUCCESS = ERROR_SUCCESS - ERROR_DS_NOT_INSTALLED syscall.Errno = 8200 - ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY syscall.Errno = 8201 - ERROR_DS_NO_ATTRIBUTE_OR_VALUE syscall.Errno = 8202 - ERROR_DS_INVALID_ATTRIBUTE_SYNTAX syscall.Errno = 8203 - ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED syscall.Errno = 8204 - ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS syscall.Errno = 8205 - ERROR_DS_BUSY syscall.Errno = 8206 - ERROR_DS_UNAVAILABLE syscall.Errno = 8207 - ERROR_DS_NO_RIDS_ALLOCATED syscall.Errno = 8208 - ERROR_DS_NO_MORE_RIDS syscall.Errno = 8209 - ERROR_DS_INCORRECT_ROLE_OWNER syscall.Errno = 8210 - ERROR_DS_RIDMGR_INIT_ERROR syscall.Errno = 8211 - ERROR_DS_OBJ_CLASS_VIOLATION syscall.Errno = 8212 - ERROR_DS_CANT_ON_NON_LEAF syscall.Errno = 8213 - ERROR_DS_CANT_ON_RDN syscall.Errno = 8214 - ERROR_DS_CANT_MOD_OBJ_CLASS syscall.Errno = 8215 - ERROR_DS_CROSS_DOM_MOVE_ERROR syscall.Errno = 8216 - ERROR_DS_GC_NOT_AVAILABLE syscall.Errno = 8217 - ERROR_SHARED_POLICY syscall.Errno = 8218 - ERROR_POLICY_OBJECT_NOT_FOUND syscall.Errno = 8219 - ERROR_POLICY_ONLY_IN_DS syscall.Errno = 8220 - ERROR_PROMOTION_ACTIVE syscall.Errno = 8221 - ERROR_NO_PROMOTION_ACTIVE syscall.Errno = 8222 - ERROR_DS_OPERATIONS_ERROR syscall.Errno = 8224 - ERROR_DS_PROTOCOL_ERROR syscall.Errno = 8225 - ERROR_DS_TIMELIMIT_EXCEEDED syscall.Errno = 8226 - ERROR_DS_SIZELIMIT_EXCEEDED syscall.Errno = 8227 - ERROR_DS_ADMIN_LIMIT_EXCEEDED syscall.Errno = 8228 - ERROR_DS_COMPARE_FALSE syscall.Errno = 8229 - ERROR_DS_COMPARE_TRUE syscall.Errno = 8230 - ERROR_DS_AUTH_METHOD_NOT_SUPPORTED syscall.Errno = 8231 - ERROR_DS_STRONG_AUTH_REQUIRED syscall.Errno = 8232 - ERROR_DS_INAPPROPRIATE_AUTH syscall.Errno = 8233 - ERROR_DS_AUTH_UNKNOWN syscall.Errno = 8234 - ERROR_DS_REFERRAL syscall.Errno = 8235 - ERROR_DS_UNAVAILABLE_CRIT_EXTENSION syscall.Errno = 8236 - ERROR_DS_CONFIDENTIALITY_REQUIRED syscall.Errno = 8237 - ERROR_DS_INAPPROPRIATE_MATCHING syscall.Errno = 8238 - ERROR_DS_CONSTRAINT_VIOLATION syscall.Errno = 8239 - ERROR_DS_NO_SUCH_OBJECT syscall.Errno = 8240 - ERROR_DS_ALIAS_PROBLEM syscall.Errno = 8241 - ERROR_DS_INVALID_DN_SYNTAX syscall.Errno = 8242 - ERROR_DS_IS_LEAF syscall.Errno = 8243 - ERROR_DS_ALIAS_DEREF_PROBLEM syscall.Errno = 8244 - ERROR_DS_UNWILLING_TO_PERFORM syscall.Errno = 8245 - ERROR_DS_LOOP_DETECT syscall.Errno = 8246 - ERROR_DS_NAMING_VIOLATION syscall.Errno = 8247 - ERROR_DS_OBJECT_RESULTS_TOO_LARGE syscall.Errno = 8248 - ERROR_DS_AFFECTS_MULTIPLE_DSAS syscall.Errno = 8249 - ERROR_DS_SERVER_DOWN syscall.Errno = 8250 - ERROR_DS_LOCAL_ERROR syscall.Errno = 8251 - ERROR_DS_ENCODING_ERROR syscall.Errno = 8252 - ERROR_DS_DECODING_ERROR syscall.Errno = 8253 - ERROR_DS_FILTER_UNKNOWN syscall.Errno = 8254 - ERROR_DS_PARAM_ERROR syscall.Errno = 8255 - ERROR_DS_NOT_SUPPORTED syscall.Errno = 8256 - ERROR_DS_NO_RESULTS_RETURNED syscall.Errno = 8257 - ERROR_DS_CONTROL_NOT_FOUND syscall.Errno = 8258 - ERROR_DS_CLIENT_LOOP syscall.Errno = 8259 - ERROR_DS_REFERRAL_LIMIT_EXCEEDED syscall.Errno = 8260 - ERROR_DS_SORT_CONTROL_MISSING syscall.Errno = 8261 - ERROR_DS_OFFSET_RANGE_ERROR syscall.Errno = 8262 - ERROR_DS_RIDMGR_DISABLED syscall.Errno = 8263 - ERROR_DS_ROOT_MUST_BE_NC syscall.Errno = 8301 - ERROR_DS_ADD_REPLICA_INHIBITED syscall.Errno = 8302 - ERROR_DS_ATT_NOT_DEF_IN_SCHEMA syscall.Errno = 8303 - ERROR_DS_MAX_OBJ_SIZE_EXCEEDED syscall.Errno = 8304 - ERROR_DS_OBJ_STRING_NAME_EXISTS syscall.Errno = 8305 - ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA syscall.Errno = 8306 - ERROR_DS_RDN_DOESNT_MATCH_SCHEMA syscall.Errno = 8307 - ERROR_DS_NO_REQUESTED_ATTS_FOUND syscall.Errno = 8308 - ERROR_DS_USER_BUFFER_TO_SMALL syscall.Errno = 8309 - ERROR_DS_ATT_IS_NOT_ON_OBJ syscall.Errno = 8310 - ERROR_DS_ILLEGAL_MOD_OPERATION syscall.Errno = 8311 - ERROR_DS_OBJ_TOO_LARGE syscall.Errno = 8312 - ERROR_DS_BAD_INSTANCE_TYPE syscall.Errno = 8313 - ERROR_DS_MASTERDSA_REQUIRED syscall.Errno = 8314 - ERROR_DS_OBJECT_CLASS_REQUIRED syscall.Errno = 8315 - ERROR_DS_MISSING_REQUIRED_ATT syscall.Errno = 8316 - ERROR_DS_ATT_NOT_DEF_FOR_CLASS syscall.Errno = 8317 - ERROR_DS_ATT_ALREADY_EXISTS syscall.Errno = 8318 - ERROR_DS_CANT_ADD_ATT_VALUES syscall.Errno = 8320 - ERROR_DS_SINGLE_VALUE_CONSTRAINT syscall.Errno = 8321 - ERROR_DS_RANGE_CONSTRAINT syscall.Errno = 8322 - ERROR_DS_ATT_VAL_ALREADY_EXISTS syscall.Errno = 8323 - ERROR_DS_CANT_REM_MISSING_ATT syscall.Errno = 8324 - ERROR_DS_CANT_REM_MISSING_ATT_VAL syscall.Errno = 8325 - ERROR_DS_ROOT_CANT_BE_SUBREF syscall.Errno = 8326 - ERROR_DS_NO_CHAINING syscall.Errno = 8327 - ERROR_DS_NO_CHAINED_EVAL syscall.Errno = 8328 - ERROR_DS_NO_PARENT_OBJECT syscall.Errno = 8329 - ERROR_DS_PARENT_IS_AN_ALIAS syscall.Errno = 8330 - ERROR_DS_CANT_MIX_MASTER_AND_REPS syscall.Errno = 8331 - ERROR_DS_CHILDREN_EXIST syscall.Errno = 8332 - ERROR_DS_OBJ_NOT_FOUND syscall.Errno = 8333 - ERROR_DS_ALIASED_OBJ_MISSING syscall.Errno = 8334 - ERROR_DS_BAD_NAME_SYNTAX syscall.Errno = 8335 - ERROR_DS_ALIAS_POINTS_TO_ALIAS syscall.Errno = 8336 - ERROR_DS_CANT_DEREF_ALIAS syscall.Errno = 8337 - ERROR_DS_OUT_OF_SCOPE syscall.Errno = 8338 - ERROR_DS_OBJECT_BEING_REMOVED syscall.Errno = 8339 - ERROR_DS_CANT_DELETE_DSA_OBJ syscall.Errno = 8340 - ERROR_DS_GENERIC_ERROR syscall.Errno = 8341 - ERROR_DS_DSA_MUST_BE_INT_MASTER syscall.Errno = 8342 - ERROR_DS_CLASS_NOT_DSA syscall.Errno = 8343 - ERROR_DS_INSUFF_ACCESS_RIGHTS syscall.Errno = 8344 - ERROR_DS_ILLEGAL_SUPERIOR syscall.Errno = 8345 - ERROR_DS_ATTRIBUTE_OWNED_BY_SAM syscall.Errno = 8346 - ERROR_DS_NAME_TOO_MANY_PARTS syscall.Errno = 8347 - ERROR_DS_NAME_TOO_LONG syscall.Errno = 8348 - ERROR_DS_NAME_VALUE_TOO_LONG syscall.Errno = 8349 - ERROR_DS_NAME_UNPARSEABLE syscall.Errno = 8350 - ERROR_DS_NAME_TYPE_UNKNOWN syscall.Errno = 8351 - ERROR_DS_NOT_AN_OBJECT syscall.Errno = 8352 - ERROR_DS_SEC_DESC_TOO_SHORT syscall.Errno = 8353 - ERROR_DS_SEC_DESC_INVALID syscall.Errno = 8354 - ERROR_DS_NO_DELETED_NAME syscall.Errno = 8355 - ERROR_DS_SUBREF_MUST_HAVE_PARENT syscall.Errno = 8356 - ERROR_DS_NCNAME_MUST_BE_NC syscall.Errno = 8357 - ERROR_DS_CANT_ADD_SYSTEM_ONLY syscall.Errno = 8358 - ERROR_DS_CLASS_MUST_BE_CONCRETE syscall.Errno = 8359 - ERROR_DS_INVALID_DMD syscall.Errno = 8360 - ERROR_DS_OBJ_GUID_EXISTS syscall.Errno = 8361 - ERROR_DS_NOT_ON_BACKLINK syscall.Errno = 8362 - ERROR_DS_NO_CROSSREF_FOR_NC syscall.Errno = 8363 - ERROR_DS_SHUTTING_DOWN syscall.Errno = 8364 - ERROR_DS_UNKNOWN_OPERATION syscall.Errno = 8365 - ERROR_DS_INVALID_ROLE_OWNER syscall.Errno = 8366 - ERROR_DS_COULDNT_CONTACT_FSMO syscall.Errno = 8367 - ERROR_DS_CROSS_NC_DN_RENAME syscall.Errno = 8368 - ERROR_DS_CANT_MOD_SYSTEM_ONLY syscall.Errno = 8369 - ERROR_DS_REPLICATOR_ONLY syscall.Errno = 8370 - ERROR_DS_OBJ_CLASS_NOT_DEFINED syscall.Errno = 8371 - ERROR_DS_OBJ_CLASS_NOT_SUBCLASS syscall.Errno = 8372 - ERROR_DS_NAME_REFERENCE_INVALID syscall.Errno = 8373 - ERROR_DS_CROSS_REF_EXISTS syscall.Errno = 8374 - ERROR_DS_CANT_DEL_MASTER_CROSSREF syscall.Errno = 8375 - ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD syscall.Errno = 8376 - ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX syscall.Errno = 8377 - ERROR_DS_DUP_RDN syscall.Errno = 8378 - ERROR_DS_DUP_OID syscall.Errno = 8379 - ERROR_DS_DUP_MAPI_ID syscall.Errno = 8380 - ERROR_DS_DUP_SCHEMA_ID_GUID syscall.Errno = 8381 - ERROR_DS_DUP_LDAP_DISPLAY_NAME syscall.Errno = 8382 - ERROR_DS_SEMANTIC_ATT_TEST syscall.Errno = 8383 - ERROR_DS_SYNTAX_MISMATCH syscall.Errno = 8384 - ERROR_DS_EXISTS_IN_MUST_HAVE syscall.Errno = 8385 - ERROR_DS_EXISTS_IN_MAY_HAVE syscall.Errno = 8386 - ERROR_DS_NONEXISTENT_MAY_HAVE syscall.Errno = 8387 - ERROR_DS_NONEXISTENT_MUST_HAVE syscall.Errno = 8388 - ERROR_DS_AUX_CLS_TEST_FAIL syscall.Errno = 8389 - ERROR_DS_NONEXISTENT_POSS_SUP syscall.Errno = 8390 - ERROR_DS_SUB_CLS_TEST_FAIL syscall.Errno = 8391 - ERROR_DS_BAD_RDN_ATT_ID_SYNTAX syscall.Errno = 8392 - ERROR_DS_EXISTS_IN_AUX_CLS syscall.Errno = 8393 - ERROR_DS_EXISTS_IN_SUB_CLS syscall.Errno = 8394 - ERROR_DS_EXISTS_IN_POSS_SUP syscall.Errno = 8395 - ERROR_DS_RECALCSCHEMA_FAILED syscall.Errno = 8396 - ERROR_DS_TREE_DELETE_NOT_FINISHED syscall.Errno = 8397 - ERROR_DS_CANT_DELETE syscall.Errno = 8398 - ERROR_DS_ATT_SCHEMA_REQ_ID syscall.Errno = 8399 - ERROR_DS_BAD_ATT_SCHEMA_SYNTAX syscall.Errno = 8400 - ERROR_DS_CANT_CACHE_ATT syscall.Errno = 8401 - ERROR_DS_CANT_CACHE_CLASS syscall.Errno = 8402 - ERROR_DS_CANT_REMOVE_ATT_CACHE syscall.Errno = 8403 - ERROR_DS_CANT_REMOVE_CLASS_CACHE syscall.Errno = 8404 - ERROR_DS_CANT_RETRIEVE_DN syscall.Errno = 8405 - ERROR_DS_MISSING_SUPREF syscall.Errno = 8406 - ERROR_DS_CANT_RETRIEVE_INSTANCE syscall.Errno = 8407 - ERROR_DS_CODE_INCONSISTENCY syscall.Errno = 8408 - ERROR_DS_DATABASE_ERROR syscall.Errno = 8409 - ERROR_DS_GOVERNSID_MISSING syscall.Errno = 8410 - ERROR_DS_MISSING_EXPECTED_ATT syscall.Errno = 8411 - ERROR_DS_NCNAME_MISSING_CR_REF syscall.Errno = 8412 - ERROR_DS_SECURITY_CHECKING_ERROR syscall.Errno = 8413 - ERROR_DS_SCHEMA_NOT_LOADED syscall.Errno = 8414 - ERROR_DS_SCHEMA_ALLOC_FAILED syscall.Errno = 8415 - ERROR_DS_ATT_SCHEMA_REQ_SYNTAX syscall.Errno = 8416 - ERROR_DS_GCVERIFY_ERROR syscall.Errno = 8417 - ERROR_DS_DRA_SCHEMA_MISMATCH syscall.Errno = 8418 - ERROR_DS_CANT_FIND_DSA_OBJ syscall.Errno = 8419 - ERROR_DS_CANT_FIND_EXPECTED_NC syscall.Errno = 8420 - ERROR_DS_CANT_FIND_NC_IN_CACHE syscall.Errno = 8421 - ERROR_DS_CANT_RETRIEVE_CHILD syscall.Errno = 8422 - ERROR_DS_SECURITY_ILLEGAL_MODIFY syscall.Errno = 8423 - ERROR_DS_CANT_REPLACE_HIDDEN_REC syscall.Errno = 8424 - ERROR_DS_BAD_HIERARCHY_FILE syscall.Errno = 8425 - ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED syscall.Errno = 8426 - ERROR_DS_CONFIG_PARAM_MISSING syscall.Errno = 8427 - ERROR_DS_COUNTING_AB_INDICES_FAILED syscall.Errno = 8428 - ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED syscall.Errno = 8429 - ERROR_DS_INTERNAL_FAILURE syscall.Errno = 8430 - ERROR_DS_UNKNOWN_ERROR syscall.Errno = 8431 - ERROR_DS_ROOT_REQUIRES_CLASS_TOP syscall.Errno = 8432 - ERROR_DS_REFUSING_FSMO_ROLES syscall.Errno = 8433 - ERROR_DS_MISSING_FSMO_SETTINGS syscall.Errno = 8434 - ERROR_DS_UNABLE_TO_SURRENDER_ROLES syscall.Errno = 8435 - ERROR_DS_DRA_GENERIC syscall.Errno = 8436 - ERROR_DS_DRA_INVALID_PARAMETER syscall.Errno = 8437 - ERROR_DS_DRA_BUSY syscall.Errno = 8438 - ERROR_DS_DRA_BAD_DN syscall.Errno = 8439 - ERROR_DS_DRA_BAD_NC syscall.Errno = 8440 - ERROR_DS_DRA_DN_EXISTS syscall.Errno = 8441 - ERROR_DS_DRA_INTERNAL_ERROR syscall.Errno = 8442 - ERROR_DS_DRA_INCONSISTENT_DIT syscall.Errno = 8443 - ERROR_DS_DRA_CONNECTION_FAILED syscall.Errno = 8444 - ERROR_DS_DRA_BAD_INSTANCE_TYPE syscall.Errno = 8445 - ERROR_DS_DRA_OUT_OF_MEM syscall.Errno = 8446 - ERROR_DS_DRA_MAIL_PROBLEM syscall.Errno = 8447 - ERROR_DS_DRA_REF_ALREADY_EXISTS syscall.Errno = 8448 - ERROR_DS_DRA_REF_NOT_FOUND syscall.Errno = 8449 - ERROR_DS_DRA_OBJ_IS_REP_SOURCE syscall.Errno = 8450 - ERROR_DS_DRA_DB_ERROR syscall.Errno = 8451 - ERROR_DS_DRA_NO_REPLICA syscall.Errno = 8452 - ERROR_DS_DRA_ACCESS_DENIED syscall.Errno = 8453 - ERROR_DS_DRA_NOT_SUPPORTED syscall.Errno = 8454 - ERROR_DS_DRA_RPC_CANCELLED syscall.Errno = 8455 - ERROR_DS_DRA_SOURCE_DISABLED syscall.Errno = 8456 - ERROR_DS_DRA_SINK_DISABLED syscall.Errno = 8457 - ERROR_DS_DRA_NAME_COLLISION syscall.Errno = 8458 - ERROR_DS_DRA_SOURCE_REINSTALLED syscall.Errno = 8459 - ERROR_DS_DRA_MISSING_PARENT syscall.Errno = 8460 - ERROR_DS_DRA_PREEMPTED syscall.Errno = 8461 - ERROR_DS_DRA_ABANDON_SYNC syscall.Errno = 8462 - ERROR_DS_DRA_SHUTDOWN syscall.Errno = 8463 - ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET syscall.Errno = 8464 - ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA syscall.Errno = 8465 - ERROR_DS_DRA_EXTN_CONNECTION_FAILED syscall.Errno = 8466 - ERROR_DS_INSTALL_SCHEMA_MISMATCH syscall.Errno = 8467 - ERROR_DS_DUP_LINK_ID syscall.Errno = 8468 - ERROR_DS_NAME_ERROR_RESOLVING syscall.Errno = 8469 - ERROR_DS_NAME_ERROR_NOT_FOUND syscall.Errno = 8470 - ERROR_DS_NAME_ERROR_NOT_UNIQUE syscall.Errno = 8471 - ERROR_DS_NAME_ERROR_NO_MAPPING syscall.Errno = 8472 - ERROR_DS_NAME_ERROR_DOMAIN_ONLY syscall.Errno = 8473 - ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING syscall.Errno = 8474 - ERROR_DS_CONSTRUCTED_ATT_MOD syscall.Errno = 8475 - ERROR_DS_WRONG_OM_OBJ_CLASS syscall.Errno = 8476 - ERROR_DS_DRA_REPL_PENDING syscall.Errno = 8477 - ERROR_DS_DS_REQUIRED syscall.Errno = 8478 - ERROR_DS_INVALID_LDAP_DISPLAY_NAME syscall.Errno = 8479 - ERROR_DS_NON_BASE_SEARCH syscall.Errno = 8480 - ERROR_DS_CANT_RETRIEVE_ATTS syscall.Errno = 8481 - ERROR_DS_BACKLINK_WITHOUT_LINK syscall.Errno = 8482 - ERROR_DS_EPOCH_MISMATCH syscall.Errno = 8483 - ERROR_DS_SRC_NAME_MISMATCH syscall.Errno = 8484 - ERROR_DS_SRC_AND_DST_NC_IDENTICAL syscall.Errno = 8485 - ERROR_DS_DST_NC_MISMATCH syscall.Errno = 8486 - ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC syscall.Errno = 8487 - ERROR_DS_SRC_GUID_MISMATCH syscall.Errno = 8488 - ERROR_DS_CANT_MOVE_DELETED_OBJECT syscall.Errno = 8489 - ERROR_DS_PDC_OPERATION_IN_PROGRESS syscall.Errno = 8490 - ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD syscall.Errno = 8491 - ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION syscall.Errno = 8492 - ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS syscall.Errno = 8493 - ERROR_DS_NC_MUST_HAVE_NC_PARENT syscall.Errno = 8494 - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE syscall.Errno = 8495 - ERROR_DS_DST_DOMAIN_NOT_NATIVE syscall.Errno = 8496 - ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER syscall.Errno = 8497 - ERROR_DS_CANT_MOVE_ACCOUNT_GROUP syscall.Errno = 8498 - ERROR_DS_CANT_MOVE_RESOURCE_GROUP syscall.Errno = 8499 - ERROR_DS_INVALID_SEARCH_FLAG syscall.Errno = 8500 - ERROR_DS_NO_TREE_DELETE_ABOVE_NC syscall.Errno = 8501 - ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE syscall.Errno = 8502 - ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE syscall.Errno = 8503 - ERROR_DS_SAM_INIT_FAILURE syscall.Errno = 8504 - ERROR_DS_SENSITIVE_GROUP_VIOLATION syscall.Errno = 8505 - ERROR_DS_CANT_MOD_PRIMARYGROUPID syscall.Errno = 8506 - ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD syscall.Errno = 8507 - ERROR_DS_NONSAFE_SCHEMA_CHANGE syscall.Errno = 8508 - ERROR_DS_SCHEMA_UPDATE_DISALLOWED syscall.Errno = 8509 - ERROR_DS_CANT_CREATE_UNDER_SCHEMA syscall.Errno = 8510 - ERROR_DS_INSTALL_NO_SRC_SCH_VERSION syscall.Errno = 8511 - ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE syscall.Errno = 8512 - ERROR_DS_INVALID_GROUP_TYPE syscall.Errno = 8513 - ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8514 - ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8515 - ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8516 - ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8517 - ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8518 - ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER syscall.Errno = 8519 - ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER syscall.Errno = 8520 - ERROR_DS_HAVE_PRIMARY_MEMBERS syscall.Errno = 8521 - ERROR_DS_STRING_SD_CONVERSION_FAILED syscall.Errno = 8522 - ERROR_DS_NAMING_MASTER_GC syscall.Errno = 8523 - ERROR_DS_DNS_LOOKUP_FAILURE syscall.Errno = 8524 - ERROR_DS_COULDNT_UPDATE_SPNS syscall.Errno = 8525 - ERROR_DS_CANT_RETRIEVE_SD syscall.Errno = 8526 - ERROR_DS_KEY_NOT_UNIQUE syscall.Errno = 8527 - ERROR_DS_WRONG_LINKED_ATT_SYNTAX syscall.Errno = 8528 - ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD syscall.Errno = 8529 - ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY syscall.Errno = 8530 - ERROR_DS_CANT_START syscall.Errno = 8531 - ERROR_DS_INIT_FAILURE syscall.Errno = 8532 - ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION syscall.Errno = 8533 - ERROR_DS_SOURCE_DOMAIN_IN_FOREST syscall.Errno = 8534 - ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST syscall.Errno = 8535 - ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED syscall.Errno = 8536 - ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN syscall.Errno = 8537 - ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER syscall.Errno = 8538 - ERROR_DS_SRC_SID_EXISTS_IN_FOREST syscall.Errno = 8539 - ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH syscall.Errno = 8540 - ERROR_SAM_INIT_FAILURE syscall.Errno = 8541 - ERROR_DS_DRA_SCHEMA_INFO_SHIP syscall.Errno = 8542 - ERROR_DS_DRA_SCHEMA_CONFLICT syscall.Errno = 8543 - ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT syscall.Errno = 8544 - ERROR_DS_DRA_OBJ_NC_MISMATCH syscall.Errno = 8545 - ERROR_DS_NC_STILL_HAS_DSAS syscall.Errno = 8546 - ERROR_DS_GC_REQUIRED syscall.Errno = 8547 - ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY syscall.Errno = 8548 - ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS syscall.Errno = 8549 - ERROR_DS_CANT_ADD_TO_GC syscall.Errno = 8550 - ERROR_DS_NO_CHECKPOINT_WITH_PDC syscall.Errno = 8551 - ERROR_DS_SOURCE_AUDITING_NOT_ENABLED syscall.Errno = 8552 - ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC syscall.Errno = 8553 - ERROR_DS_INVALID_NAME_FOR_SPN syscall.Errno = 8554 - ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS syscall.Errno = 8555 - ERROR_DS_UNICODEPWD_NOT_IN_QUOTES syscall.Errno = 8556 - ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED syscall.Errno = 8557 - ERROR_DS_MUST_BE_RUN_ON_DST_DC syscall.Errno = 8558 - ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER syscall.Errno = 8559 - ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ syscall.Errno = 8560 - ERROR_DS_INIT_FAILURE_CONSOLE syscall.Errno = 8561 - ERROR_DS_SAM_INIT_FAILURE_CONSOLE syscall.Errno = 8562 - ERROR_DS_FOREST_VERSION_TOO_HIGH syscall.Errno = 8563 - ERROR_DS_DOMAIN_VERSION_TOO_HIGH syscall.Errno = 8564 - ERROR_DS_FOREST_VERSION_TOO_LOW syscall.Errno = 8565 - ERROR_DS_DOMAIN_VERSION_TOO_LOW syscall.Errno = 8566 - ERROR_DS_INCOMPATIBLE_VERSION syscall.Errno = 8567 - ERROR_DS_LOW_DSA_VERSION syscall.Errno = 8568 - ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN syscall.Errno = 8569 - ERROR_DS_NOT_SUPPORTED_SORT_ORDER syscall.Errno = 8570 - ERROR_DS_NAME_NOT_UNIQUE syscall.Errno = 8571 - ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 syscall.Errno = 8572 - ERROR_DS_OUT_OF_VERSION_STORE syscall.Errno = 8573 - ERROR_DS_INCOMPATIBLE_CONTROLS_USED syscall.Errno = 8574 - ERROR_DS_NO_REF_DOMAIN syscall.Errno = 8575 - ERROR_DS_RESERVED_LINK_ID syscall.Errno = 8576 - ERROR_DS_LINK_ID_NOT_AVAILABLE syscall.Errno = 8577 - ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8578 - ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE syscall.Errno = 8579 - ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC syscall.Errno = 8580 - ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG syscall.Errno = 8581 - ERROR_DS_MODIFYDN_WRONG_GRANDPARENT syscall.Errno = 8582 - ERROR_DS_NAME_ERROR_TRUST_REFERRAL syscall.Errno = 8583 - ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER syscall.Errno = 8584 - ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD syscall.Errno = 8585 - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 syscall.Errno = 8586 - ERROR_DS_THREAD_LIMIT_EXCEEDED syscall.Errno = 8587 - ERROR_DS_NOT_CLOSEST syscall.Errno = 8588 - ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF syscall.Errno = 8589 - ERROR_DS_SINGLE_USER_MODE_FAILED syscall.Errno = 8590 - ERROR_DS_NTDSCRIPT_SYNTAX_ERROR syscall.Errno = 8591 - ERROR_DS_NTDSCRIPT_PROCESS_ERROR syscall.Errno = 8592 - ERROR_DS_DIFFERENT_REPL_EPOCHS syscall.Errno = 8593 - ERROR_DS_DRS_EXTENSIONS_CHANGED syscall.Errno = 8594 - ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR syscall.Errno = 8595 - ERROR_DS_NO_MSDS_INTID syscall.Errno = 8596 - ERROR_DS_DUP_MSDS_INTID syscall.Errno = 8597 - ERROR_DS_EXISTS_IN_RDNATTID syscall.Errno = 8598 - ERROR_DS_AUTHORIZATION_FAILED syscall.Errno = 8599 - ERROR_DS_INVALID_SCRIPT syscall.Errno = 8600 - ERROR_DS_REMOTE_CROSSREF_OP_FAILED syscall.Errno = 8601 - ERROR_DS_CROSS_REF_BUSY syscall.Errno = 8602 - ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN syscall.Errno = 8603 - ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC syscall.Errno = 8604 - ERROR_DS_DUPLICATE_ID_FOUND syscall.Errno = 8605 - ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT syscall.Errno = 8606 - ERROR_DS_GROUP_CONVERSION_ERROR syscall.Errno = 8607 - ERROR_DS_CANT_MOVE_APP_BASIC_GROUP syscall.Errno = 8608 - ERROR_DS_CANT_MOVE_APP_QUERY_GROUP syscall.Errno = 8609 - ERROR_DS_ROLE_NOT_VERIFIED syscall.Errno = 8610 - ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL syscall.Errno = 8611 - ERROR_DS_DOMAIN_RENAME_IN_PROGRESS syscall.Errno = 8612 - ERROR_DS_EXISTING_AD_CHILD_NC syscall.Errno = 8613 - ERROR_DS_REPL_LIFETIME_EXCEEDED syscall.Errno = 8614 - ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER syscall.Errno = 8615 - ERROR_DS_LDAP_SEND_QUEUE_FULL syscall.Errno = 8616 - ERROR_DS_DRA_OUT_SCHEDULE_WINDOW syscall.Errno = 8617 - ERROR_DS_POLICY_NOT_KNOWN syscall.Errno = 8618 - ERROR_NO_SITE_SETTINGS_OBJECT syscall.Errno = 8619 - ERROR_NO_SECRETS syscall.Errno = 8620 - ERROR_NO_WRITABLE_DC_FOUND syscall.Errno = 8621 - ERROR_DS_NO_SERVER_OBJECT syscall.Errno = 8622 - ERROR_DS_NO_NTDSA_OBJECT syscall.Errno = 8623 - ERROR_DS_NON_ASQ_SEARCH syscall.Errno = 8624 - ERROR_DS_AUDIT_FAILURE syscall.Errno = 8625 - ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE syscall.Errno = 8626 - ERROR_DS_INVALID_SEARCH_FLAG_TUPLE syscall.Errno = 8627 - ERROR_DS_HIERARCHY_TABLE_TOO_DEEP syscall.Errno = 8628 - ERROR_DS_DRA_CORRUPT_UTD_VECTOR syscall.Errno = 8629 - ERROR_DS_DRA_SECRETS_DENIED syscall.Errno = 8630 - ERROR_DS_RESERVED_MAPI_ID syscall.Errno = 8631 - ERROR_DS_MAPI_ID_NOT_AVAILABLE syscall.Errno = 8632 - ERROR_DS_DRA_MISSING_KRBTGT_SECRET syscall.Errno = 8633 - ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST syscall.Errno = 8634 - ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST syscall.Errno = 8635 - ERROR_INVALID_USER_PRINCIPAL_NAME syscall.Errno = 8636 - ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS syscall.Errno = 8637 - ERROR_DS_OID_NOT_FOUND syscall.Errno = 8638 - ERROR_DS_DRA_RECYCLED_TARGET syscall.Errno = 8639 - ERROR_DS_DISALLOWED_NC_REDIRECT syscall.Errno = 8640 - ERROR_DS_HIGH_ADLDS_FFL syscall.Errno = 8641 - ERROR_DS_HIGH_DSA_VERSION syscall.Errno = 8642 - ERROR_DS_LOW_ADLDS_FFL syscall.Errno = 8643 - ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION syscall.Errno = 8644 - ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED syscall.Errno = 8645 - ERROR_INCORRECT_ACCOUNT_TYPE syscall.Errno = 8646 - ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8647 - ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8648 - ERROR_DS_MISSING_FOREST_TRUST syscall.Errno = 8649 - ERROR_DS_VALUE_KEY_NOT_UNIQUE syscall.Errno = 8650 - DNS_ERROR_RESPONSE_CODES_BASE syscall.Errno = 9000 - DNS_ERROR_RCODE_NO_ERROR = ERROR_SUCCESS - DNS_ERROR_MASK syscall.Errno = 0x00002328 - DNS_ERROR_RCODE_FORMAT_ERROR syscall.Errno = 9001 - DNS_ERROR_RCODE_SERVER_FAILURE syscall.Errno = 9002 - DNS_ERROR_RCODE_NAME_ERROR syscall.Errno = 9003 - DNS_ERROR_RCODE_NOT_IMPLEMENTED syscall.Errno = 9004 - DNS_ERROR_RCODE_REFUSED syscall.Errno = 9005 - DNS_ERROR_RCODE_YXDOMAIN syscall.Errno = 9006 - DNS_ERROR_RCODE_YXRRSET syscall.Errno = 9007 - DNS_ERROR_RCODE_NXRRSET syscall.Errno = 9008 - DNS_ERROR_RCODE_NOTAUTH syscall.Errno = 9009 - DNS_ERROR_RCODE_NOTZONE syscall.Errno = 9010 - DNS_ERROR_RCODE_BADSIG syscall.Errno = 9016 - DNS_ERROR_RCODE_BADKEY syscall.Errno = 9017 - DNS_ERROR_RCODE_BADTIME syscall.Errno = 9018 - DNS_ERROR_RCODE_LAST = DNS_ERROR_RCODE_BADTIME - DNS_ERROR_DNSSEC_BASE syscall.Errno = 9100 - DNS_ERROR_KEYMASTER_REQUIRED syscall.Errno = 9101 - DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE syscall.Errno = 9102 - DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1 syscall.Errno = 9103 - DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS syscall.Errno = 9104 - DNS_ERROR_UNSUPPORTED_ALGORITHM syscall.Errno = 9105 - DNS_ERROR_INVALID_KEY_SIZE syscall.Errno = 9106 - DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE syscall.Errno = 9107 - DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION syscall.Errno = 9108 - DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR syscall.Errno = 9109 - DNS_ERROR_UNEXPECTED_CNG_ERROR syscall.Errno = 9110 - DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION syscall.Errno = 9111 - DNS_ERROR_KSP_NOT_ACCESSIBLE syscall.Errno = 9112 - DNS_ERROR_TOO_MANY_SKDS syscall.Errno = 9113 - DNS_ERROR_INVALID_ROLLOVER_PERIOD syscall.Errno = 9114 - DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET syscall.Errno = 9115 - DNS_ERROR_ROLLOVER_IN_PROGRESS syscall.Errno = 9116 - DNS_ERROR_STANDBY_KEY_NOT_PRESENT syscall.Errno = 9117 - DNS_ERROR_NOT_ALLOWED_ON_ZSK syscall.Errno = 9118 - DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD syscall.Errno = 9119 - DNS_ERROR_ROLLOVER_ALREADY_QUEUED syscall.Errno = 9120 - DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE syscall.Errno = 9121 - DNS_ERROR_BAD_KEYMASTER syscall.Errno = 9122 - DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD syscall.Errno = 9123 - DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT syscall.Errno = 9124 - DNS_ERROR_DNSSEC_IS_DISABLED syscall.Errno = 9125 - DNS_ERROR_INVALID_XML syscall.Errno = 9126 - DNS_ERROR_NO_VALID_TRUST_ANCHORS syscall.Errno = 9127 - DNS_ERROR_ROLLOVER_NOT_POKEABLE syscall.Errno = 9128 - DNS_ERROR_NSEC3_NAME_COLLISION syscall.Errno = 9129 - DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1 syscall.Errno = 9130 - DNS_ERROR_PACKET_FMT_BASE syscall.Errno = 9500 - DNS_INFO_NO_RECORDS syscall.Errno = 9501 - DNS_ERROR_BAD_PACKET syscall.Errno = 9502 - DNS_ERROR_NO_PACKET syscall.Errno = 9503 - DNS_ERROR_RCODE syscall.Errno = 9504 - DNS_ERROR_UNSECURE_PACKET syscall.Errno = 9505 - DNS_STATUS_PACKET_UNSECURE = DNS_ERROR_UNSECURE_PACKET - DNS_REQUEST_PENDING syscall.Errno = 9506 - DNS_ERROR_NO_MEMORY = ERROR_OUTOFMEMORY - DNS_ERROR_INVALID_NAME = ERROR_INVALID_NAME - DNS_ERROR_INVALID_DATA = ERROR_INVALID_DATA - DNS_ERROR_GENERAL_API_BASE syscall.Errno = 9550 - DNS_ERROR_INVALID_TYPE syscall.Errno = 9551 - DNS_ERROR_INVALID_IP_ADDRESS syscall.Errno = 9552 - DNS_ERROR_INVALID_PROPERTY syscall.Errno = 9553 - DNS_ERROR_TRY_AGAIN_LATER syscall.Errno = 9554 - DNS_ERROR_NOT_UNIQUE syscall.Errno = 9555 - DNS_ERROR_NON_RFC_NAME syscall.Errno = 9556 - DNS_STATUS_FQDN syscall.Errno = 9557 - DNS_STATUS_DOTTED_NAME syscall.Errno = 9558 - DNS_STATUS_SINGLE_PART_NAME syscall.Errno = 9559 - DNS_ERROR_INVALID_NAME_CHAR syscall.Errno = 9560 - DNS_ERROR_NUMERIC_NAME syscall.Errno = 9561 - DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER syscall.Errno = 9562 - DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION syscall.Errno = 9563 - DNS_ERROR_CANNOT_FIND_ROOT_HINTS syscall.Errno = 9564 - DNS_ERROR_INCONSISTENT_ROOT_HINTS syscall.Errno = 9565 - DNS_ERROR_DWORD_VALUE_TOO_SMALL syscall.Errno = 9566 - DNS_ERROR_DWORD_VALUE_TOO_LARGE syscall.Errno = 9567 - DNS_ERROR_BACKGROUND_LOADING syscall.Errno = 9568 - DNS_ERROR_NOT_ALLOWED_ON_RODC syscall.Errno = 9569 - DNS_ERROR_NOT_ALLOWED_UNDER_DNAME syscall.Errno = 9570 - DNS_ERROR_DELEGATION_REQUIRED syscall.Errno = 9571 - DNS_ERROR_INVALID_POLICY_TABLE syscall.Errno = 9572 - DNS_ERROR_ADDRESS_REQUIRED syscall.Errno = 9573 - DNS_ERROR_ZONE_BASE syscall.Errno = 9600 - DNS_ERROR_ZONE_DOES_NOT_EXIST syscall.Errno = 9601 - DNS_ERROR_NO_ZONE_INFO syscall.Errno = 9602 - DNS_ERROR_INVALID_ZONE_OPERATION syscall.Errno = 9603 - DNS_ERROR_ZONE_CONFIGURATION_ERROR syscall.Errno = 9604 - DNS_ERROR_ZONE_HAS_NO_SOA_RECORD syscall.Errno = 9605 - DNS_ERROR_ZONE_HAS_NO_NS_RECORDS syscall.Errno = 9606 - DNS_ERROR_ZONE_LOCKED syscall.Errno = 9607 - DNS_ERROR_ZONE_CREATION_FAILED syscall.Errno = 9608 - DNS_ERROR_ZONE_ALREADY_EXISTS syscall.Errno = 9609 - DNS_ERROR_AUTOZONE_ALREADY_EXISTS syscall.Errno = 9610 - DNS_ERROR_INVALID_ZONE_TYPE syscall.Errno = 9611 - DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP syscall.Errno = 9612 - DNS_ERROR_ZONE_NOT_SECONDARY syscall.Errno = 9613 - DNS_ERROR_NEED_SECONDARY_ADDRESSES syscall.Errno = 9614 - DNS_ERROR_WINS_INIT_FAILED syscall.Errno = 9615 - DNS_ERROR_NEED_WINS_SERVERS syscall.Errno = 9616 - DNS_ERROR_NBSTAT_INIT_FAILED syscall.Errno = 9617 - DNS_ERROR_SOA_DELETE_INVALID syscall.Errno = 9618 - DNS_ERROR_FORWARDER_ALREADY_EXISTS syscall.Errno = 9619 - DNS_ERROR_ZONE_REQUIRES_MASTER_IP syscall.Errno = 9620 - DNS_ERROR_ZONE_IS_SHUTDOWN syscall.Errno = 9621 - DNS_ERROR_ZONE_LOCKED_FOR_SIGNING syscall.Errno = 9622 - DNS_ERROR_DATAFILE_BASE syscall.Errno = 9650 - DNS_ERROR_PRIMARY_REQUIRES_DATAFILE syscall.Errno = 9651 - DNS_ERROR_INVALID_DATAFILE_NAME syscall.Errno = 9652 - DNS_ERROR_DATAFILE_OPEN_FAILURE syscall.Errno = 9653 - DNS_ERROR_FILE_WRITEBACK_FAILED syscall.Errno = 9654 - DNS_ERROR_DATAFILE_PARSING syscall.Errno = 9655 - DNS_ERROR_DATABASE_BASE syscall.Errno = 9700 - DNS_ERROR_RECORD_DOES_NOT_EXIST syscall.Errno = 9701 - DNS_ERROR_RECORD_FORMAT syscall.Errno = 9702 - DNS_ERROR_NODE_CREATION_FAILED syscall.Errno = 9703 - DNS_ERROR_UNKNOWN_RECORD_TYPE syscall.Errno = 9704 - DNS_ERROR_RECORD_TIMED_OUT syscall.Errno = 9705 - DNS_ERROR_NAME_NOT_IN_ZONE syscall.Errno = 9706 - DNS_ERROR_CNAME_LOOP syscall.Errno = 9707 - DNS_ERROR_NODE_IS_CNAME syscall.Errno = 9708 - DNS_ERROR_CNAME_COLLISION syscall.Errno = 9709 - DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT syscall.Errno = 9710 - DNS_ERROR_RECORD_ALREADY_EXISTS syscall.Errno = 9711 - DNS_ERROR_SECONDARY_DATA syscall.Errno = 9712 - DNS_ERROR_NO_CREATE_CACHE_DATA syscall.Errno = 9713 - DNS_ERROR_NAME_DOES_NOT_EXIST syscall.Errno = 9714 - DNS_WARNING_PTR_CREATE_FAILED syscall.Errno = 9715 - DNS_WARNING_DOMAIN_UNDELETED syscall.Errno = 9716 - DNS_ERROR_DS_UNAVAILABLE syscall.Errno = 9717 - DNS_ERROR_DS_ZONE_ALREADY_EXISTS syscall.Errno = 9718 - DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE syscall.Errno = 9719 - DNS_ERROR_NODE_IS_DNAME syscall.Errno = 9720 - DNS_ERROR_DNAME_COLLISION syscall.Errno = 9721 - DNS_ERROR_ALIAS_LOOP syscall.Errno = 9722 - DNS_ERROR_OPERATION_BASE syscall.Errno = 9750 - DNS_INFO_AXFR_COMPLETE syscall.Errno = 9751 - DNS_ERROR_AXFR syscall.Errno = 9752 - DNS_INFO_ADDED_LOCAL_WINS syscall.Errno = 9753 - DNS_ERROR_SECURE_BASE syscall.Errno = 9800 - DNS_STATUS_CONTINUE_NEEDED syscall.Errno = 9801 - DNS_ERROR_SETUP_BASE syscall.Errno = 9850 - DNS_ERROR_NO_TCPIP syscall.Errno = 9851 - DNS_ERROR_NO_DNS_SERVERS syscall.Errno = 9852 - DNS_ERROR_DP_BASE syscall.Errno = 9900 - DNS_ERROR_DP_DOES_NOT_EXIST syscall.Errno = 9901 - DNS_ERROR_DP_ALREADY_EXISTS syscall.Errno = 9902 - DNS_ERROR_DP_NOT_ENLISTED syscall.Errno = 9903 - DNS_ERROR_DP_ALREADY_ENLISTED syscall.Errno = 9904 - DNS_ERROR_DP_NOT_AVAILABLE syscall.Errno = 9905 - DNS_ERROR_DP_FSMO_ERROR syscall.Errno = 9906 - DNS_ERROR_RRL_NOT_ENABLED syscall.Errno = 9911 - DNS_ERROR_RRL_INVALID_WINDOW_SIZE syscall.Errno = 9912 - DNS_ERROR_RRL_INVALID_IPV4_PREFIX syscall.Errno = 9913 - DNS_ERROR_RRL_INVALID_IPV6_PREFIX syscall.Errno = 9914 - DNS_ERROR_RRL_INVALID_TC_RATE syscall.Errno = 9915 - DNS_ERROR_RRL_INVALID_LEAK_RATE syscall.Errno = 9916 - DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE syscall.Errno = 9917 - DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS syscall.Errno = 9921 - DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST syscall.Errno = 9922 - DNS_ERROR_VIRTUALIZATION_TREE_LOCKED syscall.Errno = 9923 - DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME syscall.Errno = 9924 - DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE syscall.Errno = 9925 - DNS_ERROR_ZONESCOPE_ALREADY_EXISTS syscall.Errno = 9951 - DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST syscall.Errno = 9952 - DNS_ERROR_DEFAULT_ZONESCOPE syscall.Errno = 9953 - DNS_ERROR_INVALID_ZONESCOPE_NAME syscall.Errno = 9954 - DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES syscall.Errno = 9955 - DNS_ERROR_LOAD_ZONESCOPE_FAILED syscall.Errno = 9956 - DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED syscall.Errno = 9957 - DNS_ERROR_INVALID_SCOPE_NAME syscall.Errno = 9958 - DNS_ERROR_SCOPE_DOES_NOT_EXIST syscall.Errno = 9959 - DNS_ERROR_DEFAULT_SCOPE syscall.Errno = 9960 - DNS_ERROR_INVALID_SCOPE_OPERATION syscall.Errno = 9961 - DNS_ERROR_SCOPE_LOCKED syscall.Errno = 9962 - DNS_ERROR_SCOPE_ALREADY_EXISTS syscall.Errno = 9963 - DNS_ERROR_POLICY_ALREADY_EXISTS syscall.Errno = 9971 - DNS_ERROR_POLICY_DOES_NOT_EXIST syscall.Errno = 9972 - DNS_ERROR_POLICY_INVALID_CRITERIA syscall.Errno = 9973 - DNS_ERROR_POLICY_INVALID_SETTINGS syscall.Errno = 9974 - DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED syscall.Errno = 9975 - DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST syscall.Errno = 9976 - DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS syscall.Errno = 9977 - DNS_ERROR_SUBNET_DOES_NOT_EXIST syscall.Errno = 9978 - DNS_ERROR_SUBNET_ALREADY_EXISTS syscall.Errno = 9979 - DNS_ERROR_POLICY_LOCKED syscall.Errno = 9980 - DNS_ERROR_POLICY_INVALID_WEIGHT syscall.Errno = 9981 - DNS_ERROR_POLICY_INVALID_NAME syscall.Errno = 9982 - DNS_ERROR_POLICY_MISSING_CRITERIA syscall.Errno = 9983 - DNS_ERROR_INVALID_CLIENT_SUBNET_NAME syscall.Errno = 9984 - DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID syscall.Errno = 9985 - DNS_ERROR_POLICY_SCOPE_MISSING syscall.Errno = 9986 - DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED syscall.Errno = 9987 - DNS_ERROR_SERVERSCOPE_IS_REFERENCED syscall.Errno = 9988 - DNS_ERROR_ZONESCOPE_IS_REFERENCED syscall.Errno = 9989 - DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET syscall.Errno = 9990 - DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL syscall.Errno = 9991 - DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL syscall.Errno = 9992 - DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE syscall.Errno = 9993 - DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN syscall.Errno = 9994 - DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE syscall.Errno = 9995 - DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY syscall.Errno = 9996 - WSABASEERR syscall.Errno = 10000 - WSAEINTR syscall.Errno = 10004 - WSAEBADF syscall.Errno = 10009 - WSAEACCES syscall.Errno = 10013 - WSAEFAULT syscall.Errno = 10014 - WSAEINVAL syscall.Errno = 10022 - WSAEMFILE syscall.Errno = 10024 - WSAEWOULDBLOCK syscall.Errno = 10035 - WSAEINPROGRESS syscall.Errno = 10036 - WSAEALREADY syscall.Errno = 10037 - WSAENOTSOCK syscall.Errno = 10038 - WSAEDESTADDRREQ syscall.Errno = 10039 - WSAEMSGSIZE syscall.Errno = 10040 - WSAEPROTOTYPE syscall.Errno = 10041 - WSAENOPROTOOPT syscall.Errno = 10042 - WSAEPROTONOSUPPORT syscall.Errno = 10043 - WSAESOCKTNOSUPPORT syscall.Errno = 10044 - WSAEOPNOTSUPP syscall.Errno = 10045 - WSAEPFNOSUPPORT syscall.Errno = 10046 - WSAEAFNOSUPPORT syscall.Errno = 10047 - WSAEADDRINUSE syscall.Errno = 10048 - WSAEADDRNOTAVAIL syscall.Errno = 10049 - WSAENETDOWN syscall.Errno = 10050 - WSAENETUNREACH syscall.Errno = 10051 - WSAENETRESET syscall.Errno = 10052 - WSAECONNABORTED syscall.Errno = 10053 - WSAECONNRESET syscall.Errno = 10054 - WSAENOBUFS syscall.Errno = 10055 - WSAEISCONN syscall.Errno = 10056 - WSAENOTCONN syscall.Errno = 10057 - WSAESHUTDOWN syscall.Errno = 10058 - WSAETOOMANYREFS syscall.Errno = 10059 - WSAETIMEDOUT syscall.Errno = 10060 - WSAECONNREFUSED syscall.Errno = 10061 - WSAELOOP syscall.Errno = 10062 - WSAENAMETOOLONG syscall.Errno = 10063 - WSAEHOSTDOWN syscall.Errno = 10064 - WSAEHOSTUNREACH syscall.Errno = 10065 - WSAENOTEMPTY syscall.Errno = 10066 - WSAEPROCLIM syscall.Errno = 10067 - WSAEUSERS syscall.Errno = 10068 - WSAEDQUOT syscall.Errno = 10069 - WSAESTALE syscall.Errno = 10070 - WSAEREMOTE syscall.Errno = 10071 - WSASYSNOTREADY syscall.Errno = 10091 - WSAVERNOTSUPPORTED syscall.Errno = 10092 - WSANOTINITIALISED syscall.Errno = 10093 - WSAEDISCON syscall.Errno = 10101 - WSAENOMORE syscall.Errno = 10102 - WSAECANCELLED syscall.Errno = 10103 - WSAEINVALIDPROCTABLE syscall.Errno = 10104 - WSAEINVALIDPROVIDER syscall.Errno = 10105 - WSAEPROVIDERFAILEDINIT syscall.Errno = 10106 - WSASYSCALLFAILURE syscall.Errno = 10107 - WSASERVICE_NOT_FOUND syscall.Errno = 10108 - WSATYPE_NOT_FOUND syscall.Errno = 10109 - WSA_E_NO_MORE syscall.Errno = 10110 - WSA_E_CANCELLED syscall.Errno = 10111 - WSAEREFUSED syscall.Errno = 10112 - WSAHOST_NOT_FOUND syscall.Errno = 11001 - WSATRY_AGAIN syscall.Errno = 11002 - WSANO_RECOVERY syscall.Errno = 11003 - WSANO_DATA syscall.Errno = 11004 - WSA_QOS_RECEIVERS syscall.Errno = 11005 - WSA_QOS_SENDERS syscall.Errno = 11006 - WSA_QOS_NO_SENDERS syscall.Errno = 11007 - WSA_QOS_NO_RECEIVERS syscall.Errno = 11008 - WSA_QOS_REQUEST_CONFIRMED syscall.Errno = 11009 - WSA_QOS_ADMISSION_FAILURE syscall.Errno = 11010 - WSA_QOS_POLICY_FAILURE syscall.Errno = 11011 - WSA_QOS_BAD_STYLE syscall.Errno = 11012 - WSA_QOS_BAD_OBJECT syscall.Errno = 11013 - WSA_QOS_TRAFFIC_CTRL_ERROR syscall.Errno = 11014 - WSA_QOS_GENERIC_ERROR syscall.Errno = 11015 - WSA_QOS_ESERVICETYPE syscall.Errno = 11016 - WSA_QOS_EFLOWSPEC syscall.Errno = 11017 - WSA_QOS_EPROVSPECBUF syscall.Errno = 11018 - WSA_QOS_EFILTERSTYLE syscall.Errno = 11019 - WSA_QOS_EFILTERTYPE syscall.Errno = 11020 - WSA_QOS_EFILTERCOUNT syscall.Errno = 11021 - WSA_QOS_EOBJLENGTH syscall.Errno = 11022 - WSA_QOS_EFLOWCOUNT syscall.Errno = 11023 - WSA_QOS_EUNKOWNPSOBJ syscall.Errno = 11024 - WSA_QOS_EPOLICYOBJ syscall.Errno = 11025 - WSA_QOS_EFLOWDESC syscall.Errno = 11026 - WSA_QOS_EPSFLOWSPEC syscall.Errno = 11027 - WSA_QOS_EPSFILTERSPEC syscall.Errno = 11028 - WSA_QOS_ESDMODEOBJ syscall.Errno = 11029 - WSA_QOS_ESHAPERATEOBJ syscall.Errno = 11030 - WSA_QOS_RESERVED_PETYPE syscall.Errno = 11031 - WSA_SECURE_HOST_NOT_FOUND syscall.Errno = 11032 - WSA_IPSEC_NAME_POLICY_ERROR syscall.Errno = 11033 - ERROR_IPSEC_QM_POLICY_EXISTS syscall.Errno = 13000 - ERROR_IPSEC_QM_POLICY_NOT_FOUND syscall.Errno = 13001 - ERROR_IPSEC_QM_POLICY_IN_USE syscall.Errno = 13002 - ERROR_IPSEC_MM_POLICY_EXISTS syscall.Errno = 13003 - ERROR_IPSEC_MM_POLICY_NOT_FOUND syscall.Errno = 13004 - ERROR_IPSEC_MM_POLICY_IN_USE syscall.Errno = 13005 - ERROR_IPSEC_MM_FILTER_EXISTS syscall.Errno = 13006 - ERROR_IPSEC_MM_FILTER_NOT_FOUND syscall.Errno = 13007 - ERROR_IPSEC_TRANSPORT_FILTER_EXISTS syscall.Errno = 13008 - ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND syscall.Errno = 13009 - ERROR_IPSEC_MM_AUTH_EXISTS syscall.Errno = 13010 - ERROR_IPSEC_MM_AUTH_NOT_FOUND syscall.Errno = 13011 - ERROR_IPSEC_MM_AUTH_IN_USE syscall.Errno = 13012 - ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND syscall.Errno = 13013 - ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND syscall.Errno = 13014 - ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND syscall.Errno = 13015 - ERROR_IPSEC_TUNNEL_FILTER_EXISTS syscall.Errno = 13016 - ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND syscall.Errno = 13017 - ERROR_IPSEC_MM_FILTER_PENDING_DELETION syscall.Errno = 13018 - ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION syscall.Errno = 13019 - ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION syscall.Errno = 13020 - ERROR_IPSEC_MM_POLICY_PENDING_DELETION syscall.Errno = 13021 - ERROR_IPSEC_MM_AUTH_PENDING_DELETION syscall.Errno = 13022 - ERROR_IPSEC_QM_POLICY_PENDING_DELETION syscall.Errno = 13023 - WARNING_IPSEC_MM_POLICY_PRUNED syscall.Errno = 13024 - WARNING_IPSEC_QM_POLICY_PRUNED syscall.Errno = 13025 - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN syscall.Errno = 13800 - ERROR_IPSEC_IKE_AUTH_FAIL syscall.Errno = 13801 - ERROR_IPSEC_IKE_ATTRIB_FAIL syscall.Errno = 13802 - ERROR_IPSEC_IKE_NEGOTIATION_PENDING syscall.Errno = 13803 - ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR syscall.Errno = 13804 - ERROR_IPSEC_IKE_TIMED_OUT syscall.Errno = 13805 - ERROR_IPSEC_IKE_NO_CERT syscall.Errno = 13806 - ERROR_IPSEC_IKE_SA_DELETED syscall.Errno = 13807 - ERROR_IPSEC_IKE_SA_REAPED syscall.Errno = 13808 - ERROR_IPSEC_IKE_MM_ACQUIRE_DROP syscall.Errno = 13809 - ERROR_IPSEC_IKE_QM_ACQUIRE_DROP syscall.Errno = 13810 - ERROR_IPSEC_IKE_QUEUE_DROP_MM syscall.Errno = 13811 - ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM syscall.Errno = 13812 - ERROR_IPSEC_IKE_DROP_NO_RESPONSE syscall.Errno = 13813 - ERROR_IPSEC_IKE_MM_DELAY_DROP syscall.Errno = 13814 - ERROR_IPSEC_IKE_QM_DELAY_DROP syscall.Errno = 13815 - ERROR_IPSEC_IKE_ERROR syscall.Errno = 13816 - ERROR_IPSEC_IKE_CRL_FAILED syscall.Errno = 13817 - ERROR_IPSEC_IKE_INVALID_KEY_USAGE syscall.Errno = 13818 - ERROR_IPSEC_IKE_INVALID_CERT_TYPE syscall.Errno = 13819 - ERROR_IPSEC_IKE_NO_PRIVATE_KEY syscall.Errno = 13820 - ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY syscall.Errno = 13821 - ERROR_IPSEC_IKE_DH_FAIL syscall.Errno = 13822 - ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED syscall.Errno = 13823 - ERROR_IPSEC_IKE_INVALID_HEADER syscall.Errno = 13824 - ERROR_IPSEC_IKE_NO_POLICY syscall.Errno = 13825 - ERROR_IPSEC_IKE_INVALID_SIGNATURE syscall.Errno = 13826 - ERROR_IPSEC_IKE_KERBEROS_ERROR syscall.Errno = 13827 - ERROR_IPSEC_IKE_NO_PUBLIC_KEY syscall.Errno = 13828 - ERROR_IPSEC_IKE_PROCESS_ERR syscall.Errno = 13829 - ERROR_IPSEC_IKE_PROCESS_ERR_SA syscall.Errno = 13830 - ERROR_IPSEC_IKE_PROCESS_ERR_PROP syscall.Errno = 13831 - ERROR_IPSEC_IKE_PROCESS_ERR_TRANS syscall.Errno = 13832 - ERROR_IPSEC_IKE_PROCESS_ERR_KE syscall.Errno = 13833 - ERROR_IPSEC_IKE_PROCESS_ERR_ID syscall.Errno = 13834 - ERROR_IPSEC_IKE_PROCESS_ERR_CERT syscall.Errno = 13835 - ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ syscall.Errno = 13836 - ERROR_IPSEC_IKE_PROCESS_ERR_HASH syscall.Errno = 13837 - ERROR_IPSEC_IKE_PROCESS_ERR_SIG syscall.Errno = 13838 - ERROR_IPSEC_IKE_PROCESS_ERR_NONCE syscall.Errno = 13839 - ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY syscall.Errno = 13840 - ERROR_IPSEC_IKE_PROCESS_ERR_DELETE syscall.Errno = 13841 - ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR syscall.Errno = 13842 - ERROR_IPSEC_IKE_INVALID_PAYLOAD syscall.Errno = 13843 - ERROR_IPSEC_IKE_LOAD_SOFT_SA syscall.Errno = 13844 - ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN syscall.Errno = 13845 - ERROR_IPSEC_IKE_INVALID_COOKIE syscall.Errno = 13846 - ERROR_IPSEC_IKE_NO_PEER_CERT syscall.Errno = 13847 - ERROR_IPSEC_IKE_PEER_CRL_FAILED syscall.Errno = 13848 - ERROR_IPSEC_IKE_POLICY_CHANGE syscall.Errno = 13849 - ERROR_IPSEC_IKE_NO_MM_POLICY syscall.Errno = 13850 - ERROR_IPSEC_IKE_NOTCBPRIV syscall.Errno = 13851 - ERROR_IPSEC_IKE_SECLOADFAIL syscall.Errno = 13852 - ERROR_IPSEC_IKE_FAILSSPINIT syscall.Errno = 13853 - ERROR_IPSEC_IKE_FAILQUERYSSP syscall.Errno = 13854 - ERROR_IPSEC_IKE_SRVACQFAIL syscall.Errno = 13855 - ERROR_IPSEC_IKE_SRVQUERYCRED syscall.Errno = 13856 - ERROR_IPSEC_IKE_GETSPIFAIL syscall.Errno = 13857 - ERROR_IPSEC_IKE_INVALID_FILTER syscall.Errno = 13858 - ERROR_IPSEC_IKE_OUT_OF_MEMORY syscall.Errno = 13859 - ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED syscall.Errno = 13860 - ERROR_IPSEC_IKE_INVALID_POLICY syscall.Errno = 13861 - ERROR_IPSEC_IKE_UNKNOWN_DOI syscall.Errno = 13862 - ERROR_IPSEC_IKE_INVALID_SITUATION syscall.Errno = 13863 - ERROR_IPSEC_IKE_DH_FAILURE syscall.Errno = 13864 - ERROR_IPSEC_IKE_INVALID_GROUP syscall.Errno = 13865 - ERROR_IPSEC_IKE_ENCRYPT syscall.Errno = 13866 - ERROR_IPSEC_IKE_DECRYPT syscall.Errno = 13867 - ERROR_IPSEC_IKE_POLICY_MATCH syscall.Errno = 13868 - ERROR_IPSEC_IKE_UNSUPPORTED_ID syscall.Errno = 13869 - ERROR_IPSEC_IKE_INVALID_HASH syscall.Errno = 13870 - ERROR_IPSEC_IKE_INVALID_HASH_ALG syscall.Errno = 13871 - ERROR_IPSEC_IKE_INVALID_HASH_SIZE syscall.Errno = 13872 - ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG syscall.Errno = 13873 - ERROR_IPSEC_IKE_INVALID_AUTH_ALG syscall.Errno = 13874 - ERROR_IPSEC_IKE_INVALID_SIG syscall.Errno = 13875 - ERROR_IPSEC_IKE_LOAD_FAILED syscall.Errno = 13876 - ERROR_IPSEC_IKE_RPC_DELETE syscall.Errno = 13877 - ERROR_IPSEC_IKE_BENIGN_REINIT syscall.Errno = 13878 - ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY syscall.Errno = 13879 - ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION syscall.Errno = 13880 - ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN syscall.Errno = 13881 - ERROR_IPSEC_IKE_MM_LIMIT syscall.Errno = 13882 - ERROR_IPSEC_IKE_NEGOTIATION_DISABLED syscall.Errno = 13883 - ERROR_IPSEC_IKE_QM_LIMIT syscall.Errno = 13884 - ERROR_IPSEC_IKE_MM_EXPIRED syscall.Errno = 13885 - ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID syscall.Errno = 13886 - ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH syscall.Errno = 13887 - ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID syscall.Errno = 13888 - ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD syscall.Errno = 13889 - ERROR_IPSEC_IKE_DOS_COOKIE_SENT syscall.Errno = 13890 - ERROR_IPSEC_IKE_SHUTTING_DOWN syscall.Errno = 13891 - ERROR_IPSEC_IKE_CGA_AUTH_FAILED syscall.Errno = 13892 - ERROR_IPSEC_IKE_PROCESS_ERR_NATOA syscall.Errno = 13893 - ERROR_IPSEC_IKE_INVALID_MM_FOR_QM syscall.Errno = 13894 - ERROR_IPSEC_IKE_QM_EXPIRED syscall.Errno = 13895 - ERROR_IPSEC_IKE_TOO_MANY_FILTERS syscall.Errno = 13896 - ERROR_IPSEC_IKE_NEG_STATUS_END syscall.Errno = 13897 - ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL syscall.Errno = 13898 - ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE syscall.Errno = 13899 - ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING syscall.Errno = 13900 - ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING syscall.Errno = 13901 - ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS syscall.Errno = 13902 - ERROR_IPSEC_IKE_RATELIMIT_DROP syscall.Errno = 13903 - ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE syscall.Errno = 13904 - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE syscall.Errno = 13905 - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE syscall.Errno = 13906 - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY syscall.Errno = 13907 - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE syscall.Errno = 13908 - ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END syscall.Errno = 13909 - ERROR_IPSEC_BAD_SPI syscall.Errno = 13910 - ERROR_IPSEC_SA_LIFETIME_EXPIRED syscall.Errno = 13911 - ERROR_IPSEC_WRONG_SA syscall.Errno = 13912 - ERROR_IPSEC_REPLAY_CHECK_FAILED syscall.Errno = 13913 - ERROR_IPSEC_INVALID_PACKET syscall.Errno = 13914 - ERROR_IPSEC_INTEGRITY_CHECK_FAILED syscall.Errno = 13915 - ERROR_IPSEC_CLEAR_TEXT_DROP syscall.Errno = 13916 - ERROR_IPSEC_AUTH_FIREWALL_DROP syscall.Errno = 13917 - ERROR_IPSEC_THROTTLE_DROP syscall.Errno = 13918 - ERROR_IPSEC_DOSP_BLOCK syscall.Errno = 13925 - ERROR_IPSEC_DOSP_RECEIVED_MULTICAST syscall.Errno = 13926 - ERROR_IPSEC_DOSP_INVALID_PACKET syscall.Errno = 13927 - ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED syscall.Errno = 13928 - ERROR_IPSEC_DOSP_MAX_ENTRIES syscall.Errno = 13929 - ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED syscall.Errno = 13930 - ERROR_IPSEC_DOSP_NOT_INSTALLED syscall.Errno = 13931 - ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES syscall.Errno = 13932 - ERROR_SXS_SECTION_NOT_FOUND syscall.Errno = 14000 - ERROR_SXS_CANT_GEN_ACTCTX syscall.Errno = 14001 - ERROR_SXS_INVALID_ACTCTXDATA_FORMAT syscall.Errno = 14002 - ERROR_SXS_ASSEMBLY_NOT_FOUND syscall.Errno = 14003 - ERROR_SXS_MANIFEST_FORMAT_ERROR syscall.Errno = 14004 - ERROR_SXS_MANIFEST_PARSE_ERROR syscall.Errno = 14005 - ERROR_SXS_ACTIVATION_CONTEXT_DISABLED syscall.Errno = 14006 - ERROR_SXS_KEY_NOT_FOUND syscall.Errno = 14007 - ERROR_SXS_VERSION_CONFLICT syscall.Errno = 14008 - ERROR_SXS_WRONG_SECTION_TYPE syscall.Errno = 14009 - ERROR_SXS_THREAD_QUERIES_DISABLED syscall.Errno = 14010 - ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET syscall.Errno = 14011 - ERROR_SXS_UNKNOWN_ENCODING_GROUP syscall.Errno = 14012 - ERROR_SXS_UNKNOWN_ENCODING syscall.Errno = 14013 - ERROR_SXS_INVALID_XML_NAMESPACE_URI syscall.Errno = 14014 - ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14015 - ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14016 - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14017 - ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14018 - ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14019 - ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT syscall.Errno = 14020 - ERROR_SXS_DUPLICATE_DLL_NAME syscall.Errno = 14021 - ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME syscall.Errno = 14022 - ERROR_SXS_DUPLICATE_CLSID syscall.Errno = 14023 - ERROR_SXS_DUPLICATE_IID syscall.Errno = 14024 - ERROR_SXS_DUPLICATE_TLBID syscall.Errno = 14025 - ERROR_SXS_DUPLICATE_PROGID syscall.Errno = 14026 - ERROR_SXS_DUPLICATE_ASSEMBLY_NAME syscall.Errno = 14027 - ERROR_SXS_FILE_HASH_MISMATCH syscall.Errno = 14028 - ERROR_SXS_POLICY_PARSE_ERROR syscall.Errno = 14029 - ERROR_SXS_XML_E_MISSINGQUOTE syscall.Errno = 14030 - ERROR_SXS_XML_E_COMMENTSYNTAX syscall.Errno = 14031 - ERROR_SXS_XML_E_BADSTARTNAMECHAR syscall.Errno = 14032 - ERROR_SXS_XML_E_BADNAMECHAR syscall.Errno = 14033 - ERROR_SXS_XML_E_BADCHARINSTRING syscall.Errno = 14034 - ERROR_SXS_XML_E_XMLDECLSYNTAX syscall.Errno = 14035 - ERROR_SXS_XML_E_BADCHARDATA syscall.Errno = 14036 - ERROR_SXS_XML_E_MISSINGWHITESPACE syscall.Errno = 14037 - ERROR_SXS_XML_E_EXPECTINGTAGEND syscall.Errno = 14038 - ERROR_SXS_XML_E_MISSINGSEMICOLON syscall.Errno = 14039 - ERROR_SXS_XML_E_UNBALANCEDPAREN syscall.Errno = 14040 - ERROR_SXS_XML_E_INTERNALERROR syscall.Errno = 14041 - ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE syscall.Errno = 14042 - ERROR_SXS_XML_E_INCOMPLETE_ENCODING syscall.Errno = 14043 - ERROR_SXS_XML_E_MISSING_PAREN syscall.Errno = 14044 - ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE syscall.Errno = 14045 - ERROR_SXS_XML_E_MULTIPLE_COLONS syscall.Errno = 14046 - ERROR_SXS_XML_E_INVALID_DECIMAL syscall.Errno = 14047 - ERROR_SXS_XML_E_INVALID_HEXIDECIMAL syscall.Errno = 14048 - ERROR_SXS_XML_E_INVALID_UNICODE syscall.Errno = 14049 - ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK syscall.Errno = 14050 - ERROR_SXS_XML_E_UNEXPECTEDENDTAG syscall.Errno = 14051 - ERROR_SXS_XML_E_UNCLOSEDTAG syscall.Errno = 14052 - ERROR_SXS_XML_E_DUPLICATEATTRIBUTE syscall.Errno = 14053 - ERROR_SXS_XML_E_MULTIPLEROOTS syscall.Errno = 14054 - ERROR_SXS_XML_E_INVALIDATROOTLEVEL syscall.Errno = 14055 - ERROR_SXS_XML_E_BADXMLDECL syscall.Errno = 14056 - ERROR_SXS_XML_E_MISSINGROOT syscall.Errno = 14057 - ERROR_SXS_XML_E_UNEXPECTEDEOF syscall.Errno = 14058 - ERROR_SXS_XML_E_BADPEREFINSUBSET syscall.Errno = 14059 - ERROR_SXS_XML_E_UNCLOSEDSTARTTAG syscall.Errno = 14060 - ERROR_SXS_XML_E_UNCLOSEDENDTAG syscall.Errno = 14061 - ERROR_SXS_XML_E_UNCLOSEDSTRING syscall.Errno = 14062 - ERROR_SXS_XML_E_UNCLOSEDCOMMENT syscall.Errno = 14063 - ERROR_SXS_XML_E_UNCLOSEDDECL syscall.Errno = 14064 - ERROR_SXS_XML_E_UNCLOSEDCDATA syscall.Errno = 14065 - ERROR_SXS_XML_E_RESERVEDNAMESPACE syscall.Errno = 14066 - ERROR_SXS_XML_E_INVALIDENCODING syscall.Errno = 14067 - ERROR_SXS_XML_E_INVALIDSWITCH syscall.Errno = 14068 - ERROR_SXS_XML_E_BADXMLCASE syscall.Errno = 14069 - ERROR_SXS_XML_E_INVALID_STANDALONE syscall.Errno = 14070 - ERROR_SXS_XML_E_UNEXPECTED_STANDALONE syscall.Errno = 14071 - ERROR_SXS_XML_E_INVALID_VERSION syscall.Errno = 14072 - ERROR_SXS_XML_E_MISSINGEQUALS syscall.Errno = 14073 - ERROR_SXS_PROTECTION_RECOVERY_FAILED syscall.Errno = 14074 - ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT syscall.Errno = 14075 - ERROR_SXS_PROTECTION_CATALOG_NOT_VALID syscall.Errno = 14076 - ERROR_SXS_UNTRANSLATABLE_HRESULT syscall.Errno = 14077 - ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING syscall.Errno = 14078 - ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14079 - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14080 - ERROR_SXS_ASSEMBLY_MISSING syscall.Errno = 14081 - ERROR_SXS_CORRUPT_ACTIVATION_STACK syscall.Errno = 14082 - ERROR_SXS_CORRUPTION syscall.Errno = 14083 - ERROR_SXS_EARLY_DEACTIVATION syscall.Errno = 14084 - ERROR_SXS_INVALID_DEACTIVATION syscall.Errno = 14085 - ERROR_SXS_MULTIPLE_DEACTIVATION syscall.Errno = 14086 - ERROR_SXS_PROCESS_TERMINATION_REQUESTED syscall.Errno = 14087 - ERROR_SXS_RELEASE_ACTIVATION_CONTEXT syscall.Errno = 14088 - ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY syscall.Errno = 14089 - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE syscall.Errno = 14090 - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14091 - ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE syscall.Errno = 14092 - ERROR_SXS_IDENTITY_PARSE_ERROR syscall.Errno = 14093 - ERROR_MALFORMED_SUBSTITUTION_STRING syscall.Errno = 14094 - ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN syscall.Errno = 14095 - ERROR_UNMAPPED_SUBSTITUTION_STRING syscall.Errno = 14096 - ERROR_SXS_ASSEMBLY_NOT_LOCKED syscall.Errno = 14097 - ERROR_SXS_COMPONENT_STORE_CORRUPT syscall.Errno = 14098 - ERROR_ADVANCED_INSTALLER_FAILED syscall.Errno = 14099 - ERROR_XML_ENCODING_MISMATCH syscall.Errno = 14100 - ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT syscall.Errno = 14101 - ERROR_SXS_IDENTITIES_DIFFERENT syscall.Errno = 14102 - ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT syscall.Errno = 14103 - ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY syscall.Errno = 14104 - ERROR_SXS_MANIFEST_TOO_BIG syscall.Errno = 14105 - ERROR_SXS_SETTING_NOT_REGISTERED syscall.Errno = 14106 - ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE syscall.Errno = 14107 - ERROR_SMI_PRIMITIVE_INSTALLER_FAILED syscall.Errno = 14108 - ERROR_GENERIC_COMMAND_FAILED syscall.Errno = 14109 - ERROR_SXS_FILE_HASH_MISSING syscall.Errno = 14110 - ERROR_EVT_INVALID_CHANNEL_PATH syscall.Errno = 15000 - ERROR_EVT_INVALID_QUERY syscall.Errno = 15001 - ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND syscall.Errno = 15002 - ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND syscall.Errno = 15003 - ERROR_EVT_INVALID_PUBLISHER_NAME syscall.Errno = 15004 - ERROR_EVT_INVALID_EVENT_DATA syscall.Errno = 15005 - ERROR_EVT_CHANNEL_NOT_FOUND syscall.Errno = 15007 - ERROR_EVT_MALFORMED_XML_TEXT syscall.Errno = 15008 - ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL syscall.Errno = 15009 - ERROR_EVT_CONFIGURATION_ERROR syscall.Errno = 15010 - ERROR_EVT_QUERY_RESULT_STALE syscall.Errno = 15011 - ERROR_EVT_QUERY_RESULT_INVALID_POSITION syscall.Errno = 15012 - ERROR_EVT_NON_VALIDATING_MSXML syscall.Errno = 15013 - ERROR_EVT_FILTER_ALREADYSCOPED syscall.Errno = 15014 - ERROR_EVT_FILTER_NOTELTSET syscall.Errno = 15015 - ERROR_EVT_FILTER_INVARG syscall.Errno = 15016 - ERROR_EVT_FILTER_INVTEST syscall.Errno = 15017 - ERROR_EVT_FILTER_INVTYPE syscall.Errno = 15018 - ERROR_EVT_FILTER_PARSEERR syscall.Errno = 15019 - ERROR_EVT_FILTER_UNSUPPORTEDOP syscall.Errno = 15020 - ERROR_EVT_FILTER_UNEXPECTEDTOKEN syscall.Errno = 15021 - ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL syscall.Errno = 15022 - ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE syscall.Errno = 15023 - ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE syscall.Errno = 15024 - ERROR_EVT_CHANNEL_CANNOT_ACTIVATE syscall.Errno = 15025 - ERROR_EVT_FILTER_TOO_COMPLEX syscall.Errno = 15026 - ERROR_EVT_MESSAGE_NOT_FOUND syscall.Errno = 15027 - ERROR_EVT_MESSAGE_ID_NOT_FOUND syscall.Errno = 15028 - ERROR_EVT_UNRESOLVED_VALUE_INSERT syscall.Errno = 15029 - ERROR_EVT_UNRESOLVED_PARAMETER_INSERT syscall.Errno = 15030 - ERROR_EVT_MAX_INSERTS_REACHED syscall.Errno = 15031 - ERROR_EVT_EVENT_DEFINITION_NOT_FOUND syscall.Errno = 15032 - ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND syscall.Errno = 15033 - ERROR_EVT_VERSION_TOO_OLD syscall.Errno = 15034 - ERROR_EVT_VERSION_TOO_NEW syscall.Errno = 15035 - ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY syscall.Errno = 15036 - ERROR_EVT_PUBLISHER_DISABLED syscall.Errno = 15037 - ERROR_EVT_FILTER_OUT_OF_RANGE syscall.Errno = 15038 - ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE syscall.Errno = 15080 - ERROR_EC_LOG_DISABLED syscall.Errno = 15081 - ERROR_EC_CIRCULAR_FORWARDING syscall.Errno = 15082 - ERROR_EC_CREDSTORE_FULL syscall.Errno = 15083 - ERROR_EC_CRED_NOT_FOUND syscall.Errno = 15084 - ERROR_EC_NO_ACTIVE_CHANNEL syscall.Errno = 15085 - ERROR_MUI_FILE_NOT_FOUND syscall.Errno = 15100 - ERROR_MUI_INVALID_FILE syscall.Errno = 15101 - ERROR_MUI_INVALID_RC_CONFIG syscall.Errno = 15102 - ERROR_MUI_INVALID_LOCALE_NAME syscall.Errno = 15103 - ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME syscall.Errno = 15104 - ERROR_MUI_FILE_NOT_LOADED syscall.Errno = 15105 - ERROR_RESOURCE_ENUM_USER_STOP syscall.Errno = 15106 - ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED syscall.Errno = 15107 - ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME syscall.Errno = 15108 - ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE syscall.Errno = 15110 - ERROR_MRM_INVALID_PRICONFIG syscall.Errno = 15111 - ERROR_MRM_INVALID_FILE_TYPE syscall.Errno = 15112 - ERROR_MRM_UNKNOWN_QUALIFIER syscall.Errno = 15113 - ERROR_MRM_INVALID_QUALIFIER_VALUE syscall.Errno = 15114 - ERROR_MRM_NO_CANDIDATE syscall.Errno = 15115 - ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE syscall.Errno = 15116 - ERROR_MRM_RESOURCE_TYPE_MISMATCH syscall.Errno = 15117 - ERROR_MRM_DUPLICATE_MAP_NAME syscall.Errno = 15118 - ERROR_MRM_DUPLICATE_ENTRY syscall.Errno = 15119 - ERROR_MRM_INVALID_RESOURCE_IDENTIFIER syscall.Errno = 15120 - ERROR_MRM_FILEPATH_TOO_LONG syscall.Errno = 15121 - ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE syscall.Errno = 15122 - ERROR_MRM_INVALID_PRI_FILE syscall.Errno = 15126 - ERROR_MRM_NAMED_RESOURCE_NOT_FOUND syscall.Errno = 15127 - ERROR_MRM_MAP_NOT_FOUND syscall.Errno = 15135 - ERROR_MRM_UNSUPPORTED_PROFILE_TYPE syscall.Errno = 15136 - ERROR_MRM_INVALID_QUALIFIER_OPERATOR syscall.Errno = 15137 - ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE syscall.Errno = 15138 - ERROR_MRM_AUTOMERGE_ENABLED syscall.Errno = 15139 - ERROR_MRM_TOO_MANY_RESOURCES syscall.Errno = 15140 - ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE syscall.Errno = 15141 - ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE syscall.Errno = 15142 - ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD syscall.Errno = 15143 - ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST syscall.Errno = 15144 - ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT syscall.Errno = 15145 - ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE syscall.Errno = 15146 - ERROR_MRM_GENERATION_COUNT_MISMATCH syscall.Errno = 15147 - ERROR_PRI_MERGE_VERSION_MISMATCH syscall.Errno = 15148 - ERROR_PRI_MERGE_MISSING_SCHEMA syscall.Errno = 15149 - ERROR_PRI_MERGE_LOAD_FILE_FAILED syscall.Errno = 15150 - ERROR_PRI_MERGE_ADD_FILE_FAILED syscall.Errno = 15151 - ERROR_PRI_MERGE_WRITE_FILE_FAILED syscall.Errno = 15152 - ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED syscall.Errno = 15153 - ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED syscall.Errno = 15154 - ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED syscall.Errno = 15155 - ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED syscall.Errno = 15156 - ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED syscall.Errno = 15157 - ERROR_PRI_MERGE_INVALID_FILE_NAME syscall.Errno = 15158 - ERROR_MRM_PACKAGE_NOT_FOUND syscall.Errno = 15159 - ERROR_MCA_INVALID_CAPABILITIES_STRING syscall.Errno = 15200 - ERROR_MCA_INVALID_VCP_VERSION syscall.Errno = 15201 - ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION syscall.Errno = 15202 - ERROR_MCA_MCCS_VERSION_MISMATCH syscall.Errno = 15203 - ERROR_MCA_UNSUPPORTED_MCCS_VERSION syscall.Errno = 15204 - ERROR_MCA_INTERNAL_ERROR syscall.Errno = 15205 - ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED syscall.Errno = 15206 - ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE syscall.Errno = 15207 - ERROR_AMBIGUOUS_SYSTEM_DEVICE syscall.Errno = 15250 - ERROR_SYSTEM_DEVICE_NOT_FOUND syscall.Errno = 15299 - ERROR_HASH_NOT_SUPPORTED syscall.Errno = 15300 - ERROR_HASH_NOT_PRESENT syscall.Errno = 15301 - ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED syscall.Errno = 15321 - ERROR_GPIO_CLIENT_INFORMATION_INVALID syscall.Errno = 15322 - ERROR_GPIO_VERSION_NOT_SUPPORTED syscall.Errno = 15323 - ERROR_GPIO_INVALID_REGISTRATION_PACKET syscall.Errno = 15324 - ERROR_GPIO_OPERATION_DENIED syscall.Errno = 15325 - ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE syscall.Errno = 15326 - ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED syscall.Errno = 15327 - ERROR_CANNOT_SWITCH_RUNLEVEL syscall.Errno = 15400 - ERROR_INVALID_RUNLEVEL_SETTING syscall.Errno = 15401 - ERROR_RUNLEVEL_SWITCH_TIMEOUT syscall.Errno = 15402 - ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT syscall.Errno = 15403 - ERROR_RUNLEVEL_SWITCH_IN_PROGRESS syscall.Errno = 15404 - ERROR_SERVICES_FAILED_AUTOSTART syscall.Errno = 15405 - ERROR_COM_TASK_STOP_PENDING syscall.Errno = 15501 - ERROR_INSTALL_OPEN_PACKAGE_FAILED syscall.Errno = 15600 - ERROR_INSTALL_PACKAGE_NOT_FOUND syscall.Errno = 15601 - ERROR_INSTALL_INVALID_PACKAGE syscall.Errno = 15602 - ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED syscall.Errno = 15603 - ERROR_INSTALL_OUT_OF_DISK_SPACE syscall.Errno = 15604 - ERROR_INSTALL_NETWORK_FAILURE syscall.Errno = 15605 - ERROR_INSTALL_REGISTRATION_FAILURE syscall.Errno = 15606 - ERROR_INSTALL_DEREGISTRATION_FAILURE syscall.Errno = 15607 - ERROR_INSTALL_CANCEL syscall.Errno = 15608 - ERROR_INSTALL_FAILED syscall.Errno = 15609 - ERROR_REMOVE_FAILED syscall.Errno = 15610 - ERROR_PACKAGE_ALREADY_EXISTS syscall.Errno = 15611 - ERROR_NEEDS_REMEDIATION syscall.Errno = 15612 - ERROR_INSTALL_PREREQUISITE_FAILED syscall.Errno = 15613 - ERROR_PACKAGE_REPOSITORY_CORRUPTED syscall.Errno = 15614 - ERROR_INSTALL_POLICY_FAILURE syscall.Errno = 15615 - ERROR_PACKAGE_UPDATING syscall.Errno = 15616 - ERROR_DEPLOYMENT_BLOCKED_BY_POLICY syscall.Errno = 15617 - ERROR_PACKAGES_IN_USE syscall.Errno = 15618 - ERROR_RECOVERY_FILE_CORRUPT syscall.Errno = 15619 - ERROR_INVALID_STAGED_SIGNATURE syscall.Errno = 15620 - ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED syscall.Errno = 15621 - ERROR_INSTALL_PACKAGE_DOWNGRADE syscall.Errno = 15622 - ERROR_SYSTEM_NEEDS_REMEDIATION syscall.Errno = 15623 - ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN syscall.Errno = 15624 - ERROR_RESILIENCY_FILE_CORRUPT syscall.Errno = 15625 - ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING syscall.Errno = 15626 - ERROR_PACKAGE_MOVE_FAILED syscall.Errno = 15627 - ERROR_INSTALL_VOLUME_NOT_EMPTY syscall.Errno = 15628 - ERROR_INSTALL_VOLUME_OFFLINE syscall.Errno = 15629 - ERROR_INSTALL_VOLUME_CORRUPT syscall.Errno = 15630 - ERROR_NEEDS_REGISTRATION syscall.Errno = 15631 - ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE syscall.Errno = 15632 - ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED syscall.Errno = 15633 - ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE syscall.Errno = 15634 - ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM syscall.Errno = 15635 - ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING syscall.Errno = 15636 - ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE syscall.Errno = 15637 - ERROR_PACKAGE_STAGING_ONHOLD syscall.Errno = 15638 - ERROR_INSTALL_INVALID_RELATED_SET_UPDATE syscall.Errno = 15639 - ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640 - ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF syscall.Errno = 15641 - ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED syscall.Errno = 15642 - ERROR_PACKAGES_REPUTATION_CHECK_FAILED syscall.Errno = 15643 - ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT syscall.Errno = 15644 - ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED syscall.Errno = 15645 - ERROR_APPINSTALLER_ACTIVATION_BLOCKED syscall.Errno = 15646 - ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED syscall.Errno = 15647 - APPMODEL_ERROR_NO_PACKAGE syscall.Errno = 15700 - APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT syscall.Errno = 15701 - APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT syscall.Errno = 15702 - APPMODEL_ERROR_NO_APPLICATION syscall.Errno = 15703 - APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED syscall.Errno = 15704 - APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID syscall.Errno = 15705 - APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE syscall.Errno = 15706 - ERROR_STATE_LOAD_STORE_FAILED syscall.Errno = 15800 - ERROR_STATE_GET_VERSION_FAILED syscall.Errno = 15801 - ERROR_STATE_SET_VERSION_FAILED syscall.Errno = 15802 - ERROR_STATE_STRUCTURED_RESET_FAILED syscall.Errno = 15803 - ERROR_STATE_OPEN_CONTAINER_FAILED syscall.Errno = 15804 - ERROR_STATE_CREATE_CONTAINER_FAILED syscall.Errno = 15805 - ERROR_STATE_DELETE_CONTAINER_FAILED syscall.Errno = 15806 - ERROR_STATE_READ_SETTING_FAILED syscall.Errno = 15807 - ERROR_STATE_WRITE_SETTING_FAILED syscall.Errno = 15808 - ERROR_STATE_DELETE_SETTING_FAILED syscall.Errno = 15809 - ERROR_STATE_QUERY_SETTING_FAILED syscall.Errno = 15810 - ERROR_STATE_READ_COMPOSITE_SETTING_FAILED syscall.Errno = 15811 - ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED syscall.Errno = 15812 - ERROR_STATE_ENUMERATE_CONTAINER_FAILED syscall.Errno = 15813 - ERROR_STATE_ENUMERATE_SETTINGS_FAILED syscall.Errno = 15814 - ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15815 - ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15816 - ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15817 - ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15818 - ERROR_API_UNAVAILABLE syscall.Errno = 15841 - STORE_ERROR_UNLICENSED syscall.Errno = 15861 - STORE_ERROR_UNLICENSED_USER syscall.Errno = 15862 - STORE_ERROR_PENDING_COM_TRANSACTION syscall.Errno = 15863 - STORE_ERROR_LICENSE_REVOKED syscall.Errno = 15864 - SEVERITY_SUCCESS syscall.Errno = 0 - SEVERITY_ERROR syscall.Errno = 1 - FACILITY_NT_BIT = 0x10000000 - E_NOT_SET = ERROR_NOT_FOUND - E_NOT_VALID_STATE = ERROR_INVALID_STATE - E_NOT_SUFFICIENT_BUFFER = ERROR_INSUFFICIENT_BUFFER - E_TIME_CRITICAL_THREAD = ERROR_TIME_CRITICAL_THREAD - NOERROR syscall.Errno = 0 - E_UNEXPECTED Handle = 0x8000FFFF - E_NOTIMPL Handle = 0x80004001 - E_OUTOFMEMORY Handle = 0x8007000E - E_INVALIDARG Handle = 0x80070057 - E_NOINTERFACE Handle = 0x80004002 - E_POINTER Handle = 0x80004003 - E_HANDLE Handle = 0x80070006 - E_ABORT Handle = 0x80004004 - E_FAIL Handle = 0x80004005 - E_ACCESSDENIED Handle = 0x80070005 - E_PENDING Handle = 0x8000000A - E_BOUNDS Handle = 0x8000000B - E_CHANGED_STATE Handle = 0x8000000C - E_ILLEGAL_STATE_CHANGE Handle = 0x8000000D - E_ILLEGAL_METHOD_CALL Handle = 0x8000000E - RO_E_METADATA_NAME_NOT_FOUND Handle = 0x8000000F - RO_E_METADATA_NAME_IS_NAMESPACE Handle = 0x80000010 - RO_E_METADATA_INVALID_TYPE_FORMAT Handle = 0x80000011 - RO_E_INVALID_METADATA_FILE Handle = 0x80000012 - RO_E_CLOSED Handle = 0x80000013 - RO_E_EXCLUSIVE_WRITE Handle = 0x80000014 - RO_E_CHANGE_NOTIFICATION_IN_PROGRESS Handle = 0x80000015 - RO_E_ERROR_STRING_NOT_FOUND Handle = 0x80000016 - E_STRING_NOT_NULL_TERMINATED Handle = 0x80000017 - E_ILLEGAL_DELEGATE_ASSIGNMENT Handle = 0x80000018 - E_ASYNC_OPERATION_NOT_STARTED Handle = 0x80000019 - E_APPLICATION_EXITING Handle = 0x8000001A - E_APPLICATION_VIEW_EXITING Handle = 0x8000001B - RO_E_MUST_BE_AGILE Handle = 0x8000001C - RO_E_UNSUPPORTED_FROM_MTA Handle = 0x8000001D - RO_E_COMMITTED Handle = 0x8000001E - RO_E_BLOCKED_CROSS_ASTA_CALL Handle = 0x8000001F - RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER Handle = 0x80000020 - RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER Handle = 0x80000021 - CO_E_INIT_TLS Handle = 0x80004006 - CO_E_INIT_SHARED_ALLOCATOR Handle = 0x80004007 - CO_E_INIT_MEMORY_ALLOCATOR Handle = 0x80004008 - CO_E_INIT_CLASS_CACHE Handle = 0x80004009 - CO_E_INIT_RPC_CHANNEL Handle = 0x8000400A - CO_E_INIT_TLS_SET_CHANNEL_CONTROL Handle = 0x8000400B - CO_E_INIT_TLS_CHANNEL_CONTROL Handle = 0x8000400C - CO_E_INIT_UNACCEPTED_USER_ALLOCATOR Handle = 0x8000400D - CO_E_INIT_SCM_MUTEX_EXISTS Handle = 0x8000400E - CO_E_INIT_SCM_FILE_MAPPING_EXISTS Handle = 0x8000400F - CO_E_INIT_SCM_MAP_VIEW_OF_FILE Handle = 0x80004010 - CO_E_INIT_SCM_EXEC_FAILURE Handle = 0x80004011 - CO_E_INIT_ONLY_SINGLE_THREADED Handle = 0x80004012 - CO_E_CANT_REMOTE Handle = 0x80004013 - CO_E_BAD_SERVER_NAME Handle = 0x80004014 - CO_E_WRONG_SERVER_IDENTITY Handle = 0x80004015 - CO_E_OLE1DDE_DISABLED Handle = 0x80004016 - CO_E_RUNAS_SYNTAX Handle = 0x80004017 - CO_E_CREATEPROCESS_FAILURE Handle = 0x80004018 - CO_E_RUNAS_CREATEPROCESS_FAILURE Handle = 0x80004019 - CO_E_RUNAS_LOGON_FAILURE Handle = 0x8000401A - CO_E_LAUNCH_PERMSSION_DENIED Handle = 0x8000401B - CO_E_START_SERVICE_FAILURE Handle = 0x8000401C - CO_E_REMOTE_COMMUNICATION_FAILURE Handle = 0x8000401D - CO_E_SERVER_START_TIMEOUT Handle = 0x8000401E - CO_E_CLSREG_INCONSISTENT Handle = 0x8000401F - CO_E_IIDREG_INCONSISTENT Handle = 0x80004020 - CO_E_NOT_SUPPORTED Handle = 0x80004021 - CO_E_RELOAD_DLL Handle = 0x80004022 - CO_E_MSI_ERROR Handle = 0x80004023 - CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT Handle = 0x80004024 - CO_E_SERVER_PAUSED Handle = 0x80004025 - CO_E_SERVER_NOT_PAUSED Handle = 0x80004026 - CO_E_CLASS_DISABLED Handle = 0x80004027 - CO_E_CLRNOTAVAILABLE Handle = 0x80004028 - CO_E_ASYNC_WORK_REJECTED Handle = 0x80004029 - CO_E_SERVER_INIT_TIMEOUT Handle = 0x8000402A - CO_E_NO_SECCTX_IN_ACTIVATE Handle = 0x8000402B - CO_E_TRACKER_CONFIG Handle = 0x80004030 - CO_E_THREADPOOL_CONFIG Handle = 0x80004031 - CO_E_SXS_CONFIG Handle = 0x80004032 - CO_E_MALFORMED_SPN Handle = 0x80004033 - CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN Handle = 0x80004034 - CO_E_PREMATURE_STUB_RUNDOWN Handle = 0x80004035 - S_OK Handle = 0 - S_FALSE Handle = 1 - OLE_E_FIRST Handle = 0x80040000 - OLE_E_LAST Handle = 0x800400FF - OLE_S_FIRST Handle = 0x00040000 - OLE_S_LAST Handle = 0x000400FF - OLE_E_OLEVERB Handle = 0x80040000 - OLE_E_ADVF Handle = 0x80040001 - OLE_E_ENUM_NOMORE Handle = 0x80040002 - OLE_E_ADVISENOTSUPPORTED Handle = 0x80040003 - OLE_E_NOCONNECTION Handle = 0x80040004 - OLE_E_NOTRUNNING Handle = 0x80040005 - OLE_E_NOCACHE Handle = 0x80040006 - OLE_E_BLANK Handle = 0x80040007 - OLE_E_CLASSDIFF Handle = 0x80040008 - OLE_E_CANT_GETMONIKER Handle = 0x80040009 - OLE_E_CANT_BINDTOSOURCE Handle = 0x8004000A - OLE_E_STATIC Handle = 0x8004000B - OLE_E_PROMPTSAVECANCELLED Handle = 0x8004000C - OLE_E_INVALIDRECT Handle = 0x8004000D - OLE_E_WRONGCOMPOBJ Handle = 0x8004000E - OLE_E_INVALIDHWND Handle = 0x8004000F - OLE_E_NOT_INPLACEACTIVE Handle = 0x80040010 - OLE_E_CANTCONVERT Handle = 0x80040011 - OLE_E_NOSTORAGE Handle = 0x80040012 - DV_E_FORMATETC Handle = 0x80040064 - DV_E_DVTARGETDEVICE Handle = 0x80040065 - DV_E_STGMEDIUM Handle = 0x80040066 - DV_E_STATDATA Handle = 0x80040067 - DV_E_LINDEX Handle = 0x80040068 - DV_E_TYMED Handle = 0x80040069 - DV_E_CLIPFORMAT Handle = 0x8004006A - DV_E_DVASPECT Handle = 0x8004006B - DV_E_DVTARGETDEVICE_SIZE Handle = 0x8004006C - DV_E_NOIVIEWOBJECT Handle = 0x8004006D - DRAGDROP_E_FIRST syscall.Errno = 0x80040100 - DRAGDROP_E_LAST syscall.Errno = 0x8004010F - DRAGDROP_S_FIRST syscall.Errno = 0x00040100 - DRAGDROP_S_LAST syscall.Errno = 0x0004010F - DRAGDROP_E_NOTREGISTERED Handle = 0x80040100 - DRAGDROP_E_ALREADYREGISTERED Handle = 0x80040101 - DRAGDROP_E_INVALIDHWND Handle = 0x80040102 - DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED Handle = 0x80040103 - CLASSFACTORY_E_FIRST syscall.Errno = 0x80040110 - CLASSFACTORY_E_LAST syscall.Errno = 0x8004011F - CLASSFACTORY_S_FIRST syscall.Errno = 0x00040110 - CLASSFACTORY_S_LAST syscall.Errno = 0x0004011F - CLASS_E_NOAGGREGATION Handle = 0x80040110 - CLASS_E_CLASSNOTAVAILABLE Handle = 0x80040111 - CLASS_E_NOTLICENSED Handle = 0x80040112 - MARSHAL_E_FIRST syscall.Errno = 0x80040120 - MARSHAL_E_LAST syscall.Errno = 0x8004012F - MARSHAL_S_FIRST syscall.Errno = 0x00040120 - MARSHAL_S_LAST syscall.Errno = 0x0004012F - DATA_E_FIRST syscall.Errno = 0x80040130 - DATA_E_LAST syscall.Errno = 0x8004013F - DATA_S_FIRST syscall.Errno = 0x00040130 - DATA_S_LAST syscall.Errno = 0x0004013F - VIEW_E_FIRST syscall.Errno = 0x80040140 - VIEW_E_LAST syscall.Errno = 0x8004014F - VIEW_S_FIRST syscall.Errno = 0x00040140 - VIEW_S_LAST syscall.Errno = 0x0004014F - VIEW_E_DRAW Handle = 0x80040140 - REGDB_E_FIRST syscall.Errno = 0x80040150 - REGDB_E_LAST syscall.Errno = 0x8004015F - REGDB_S_FIRST syscall.Errno = 0x00040150 - REGDB_S_LAST syscall.Errno = 0x0004015F - REGDB_E_READREGDB Handle = 0x80040150 - REGDB_E_WRITEREGDB Handle = 0x80040151 - REGDB_E_KEYMISSING Handle = 0x80040152 - REGDB_E_INVALIDVALUE Handle = 0x80040153 - REGDB_E_CLASSNOTREG Handle = 0x80040154 - REGDB_E_IIDNOTREG Handle = 0x80040155 - REGDB_E_BADTHREADINGMODEL Handle = 0x80040156 - REGDB_E_PACKAGEPOLICYVIOLATION Handle = 0x80040157 - CAT_E_FIRST syscall.Errno = 0x80040160 - CAT_E_LAST syscall.Errno = 0x80040161 - CAT_E_CATIDNOEXIST Handle = 0x80040160 - CAT_E_NODESCRIPTION Handle = 0x80040161 - CS_E_FIRST syscall.Errno = 0x80040164 - CS_E_LAST syscall.Errno = 0x8004016F - CS_E_PACKAGE_NOTFOUND Handle = 0x80040164 - CS_E_NOT_DELETABLE Handle = 0x80040165 - CS_E_CLASS_NOTFOUND Handle = 0x80040166 - CS_E_INVALID_VERSION Handle = 0x80040167 - CS_E_NO_CLASSSTORE Handle = 0x80040168 - CS_E_OBJECT_NOTFOUND Handle = 0x80040169 - CS_E_OBJECT_ALREADY_EXISTS Handle = 0x8004016A - CS_E_INVALID_PATH Handle = 0x8004016B - CS_E_NETWORK_ERROR Handle = 0x8004016C - CS_E_ADMIN_LIMIT_EXCEEDED Handle = 0x8004016D - CS_E_SCHEMA_MISMATCH Handle = 0x8004016E - CS_E_INTERNAL_ERROR Handle = 0x8004016F - CACHE_E_FIRST syscall.Errno = 0x80040170 - CACHE_E_LAST syscall.Errno = 0x8004017F - CACHE_S_FIRST syscall.Errno = 0x00040170 - CACHE_S_LAST syscall.Errno = 0x0004017F - CACHE_E_NOCACHE_UPDATED Handle = 0x80040170 - OLEOBJ_E_FIRST syscall.Errno = 0x80040180 - OLEOBJ_E_LAST syscall.Errno = 0x8004018F - OLEOBJ_S_FIRST syscall.Errno = 0x00040180 - OLEOBJ_S_LAST syscall.Errno = 0x0004018F - OLEOBJ_E_NOVERBS Handle = 0x80040180 - OLEOBJ_E_INVALIDVERB Handle = 0x80040181 - CLIENTSITE_E_FIRST syscall.Errno = 0x80040190 - CLIENTSITE_E_LAST syscall.Errno = 0x8004019F - CLIENTSITE_S_FIRST syscall.Errno = 0x00040190 - CLIENTSITE_S_LAST syscall.Errno = 0x0004019F - INPLACE_E_NOTUNDOABLE Handle = 0x800401A0 - INPLACE_E_NOTOOLSPACE Handle = 0x800401A1 - INPLACE_E_FIRST syscall.Errno = 0x800401A0 - INPLACE_E_LAST syscall.Errno = 0x800401AF - INPLACE_S_FIRST syscall.Errno = 0x000401A0 - INPLACE_S_LAST syscall.Errno = 0x000401AF - ENUM_E_FIRST syscall.Errno = 0x800401B0 - ENUM_E_LAST syscall.Errno = 0x800401BF - ENUM_S_FIRST syscall.Errno = 0x000401B0 - ENUM_S_LAST syscall.Errno = 0x000401BF - CONVERT10_E_FIRST syscall.Errno = 0x800401C0 - CONVERT10_E_LAST syscall.Errno = 0x800401CF - CONVERT10_S_FIRST syscall.Errno = 0x000401C0 - CONVERT10_S_LAST syscall.Errno = 0x000401CF - CONVERT10_E_OLESTREAM_GET Handle = 0x800401C0 - CONVERT10_E_OLESTREAM_PUT Handle = 0x800401C1 - CONVERT10_E_OLESTREAM_FMT Handle = 0x800401C2 - CONVERT10_E_OLESTREAM_BITMAP_TO_DIB Handle = 0x800401C3 - CONVERT10_E_STG_FMT Handle = 0x800401C4 - CONVERT10_E_STG_NO_STD_STREAM Handle = 0x800401C5 - CONVERT10_E_STG_DIB_TO_BITMAP Handle = 0x800401C6 - CLIPBRD_E_FIRST syscall.Errno = 0x800401D0 - CLIPBRD_E_LAST syscall.Errno = 0x800401DF - CLIPBRD_S_FIRST syscall.Errno = 0x000401D0 - CLIPBRD_S_LAST syscall.Errno = 0x000401DF - CLIPBRD_E_CANT_OPEN Handle = 0x800401D0 - CLIPBRD_E_CANT_EMPTY Handle = 0x800401D1 - CLIPBRD_E_CANT_SET Handle = 0x800401D2 - CLIPBRD_E_BAD_DATA Handle = 0x800401D3 - CLIPBRD_E_CANT_CLOSE Handle = 0x800401D4 - MK_E_FIRST syscall.Errno = 0x800401E0 - MK_E_LAST syscall.Errno = 0x800401EF - MK_S_FIRST syscall.Errno = 0x000401E0 - MK_S_LAST syscall.Errno = 0x000401EF - MK_E_CONNECTMANUALLY Handle = 0x800401E0 - MK_E_EXCEEDEDDEADLINE Handle = 0x800401E1 - MK_E_NEEDGENERIC Handle = 0x800401E2 - MK_E_UNAVAILABLE Handle = 0x800401E3 - MK_E_SYNTAX Handle = 0x800401E4 - MK_E_NOOBJECT Handle = 0x800401E5 - MK_E_INVALIDEXTENSION Handle = 0x800401E6 - MK_E_INTERMEDIATEINTERFACENOTSUPPORTED Handle = 0x800401E7 - MK_E_NOTBINDABLE Handle = 0x800401E8 - MK_E_NOTBOUND Handle = 0x800401E9 - MK_E_CANTOPENFILE Handle = 0x800401EA - MK_E_MUSTBOTHERUSER Handle = 0x800401EB - MK_E_NOINVERSE Handle = 0x800401EC - MK_E_NOSTORAGE Handle = 0x800401ED - MK_E_NOPREFIX Handle = 0x800401EE - MK_E_ENUMERATION_FAILED Handle = 0x800401EF - CO_E_FIRST syscall.Errno = 0x800401F0 - CO_E_LAST syscall.Errno = 0x800401FF - CO_S_FIRST syscall.Errno = 0x000401F0 - CO_S_LAST syscall.Errno = 0x000401FF - CO_E_NOTINITIALIZED Handle = 0x800401F0 - CO_E_ALREADYINITIALIZED Handle = 0x800401F1 - CO_E_CANTDETERMINECLASS Handle = 0x800401F2 - CO_E_CLASSSTRING Handle = 0x800401F3 - CO_E_IIDSTRING Handle = 0x800401F4 - CO_E_APPNOTFOUND Handle = 0x800401F5 - CO_E_APPSINGLEUSE Handle = 0x800401F6 - CO_E_ERRORINAPP Handle = 0x800401F7 - CO_E_DLLNOTFOUND Handle = 0x800401F8 - CO_E_ERRORINDLL Handle = 0x800401F9 - CO_E_WRONGOSFORAPP Handle = 0x800401FA - CO_E_OBJNOTREG Handle = 0x800401FB - CO_E_OBJISREG Handle = 0x800401FC - CO_E_OBJNOTCONNECTED Handle = 0x800401FD - CO_E_APPDIDNTREG Handle = 0x800401FE - CO_E_RELEASED Handle = 0x800401FF - EVENT_E_FIRST syscall.Errno = 0x80040200 - EVENT_E_LAST syscall.Errno = 0x8004021F - EVENT_S_FIRST syscall.Errno = 0x00040200 - EVENT_S_LAST syscall.Errno = 0x0004021F - EVENT_S_SOME_SUBSCRIBERS_FAILED Handle = 0x00040200 - EVENT_E_ALL_SUBSCRIBERS_FAILED Handle = 0x80040201 - EVENT_S_NOSUBSCRIBERS Handle = 0x00040202 - EVENT_E_QUERYSYNTAX Handle = 0x80040203 - EVENT_E_QUERYFIELD Handle = 0x80040204 - EVENT_E_INTERNALEXCEPTION Handle = 0x80040205 - EVENT_E_INTERNALERROR Handle = 0x80040206 - EVENT_E_INVALID_PER_USER_SID Handle = 0x80040207 - EVENT_E_USER_EXCEPTION Handle = 0x80040208 - EVENT_E_TOO_MANY_METHODS Handle = 0x80040209 - EVENT_E_MISSING_EVENTCLASS Handle = 0x8004020A - EVENT_E_NOT_ALL_REMOVED Handle = 0x8004020B - EVENT_E_COMPLUS_NOT_INSTALLED Handle = 0x8004020C - EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT Handle = 0x8004020D - EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT Handle = 0x8004020E - EVENT_E_INVALID_EVENT_CLASS_PARTITION Handle = 0x8004020F - EVENT_E_PER_USER_SID_NOT_LOGGED_ON Handle = 0x80040210 - TPC_E_INVALID_PROPERTY Handle = 0x80040241 - TPC_E_NO_DEFAULT_TABLET Handle = 0x80040212 - TPC_E_UNKNOWN_PROPERTY Handle = 0x8004021B - TPC_E_INVALID_INPUT_RECT Handle = 0x80040219 - TPC_E_INVALID_STROKE Handle = 0x80040222 - TPC_E_INITIALIZE_FAIL Handle = 0x80040223 - TPC_E_NOT_RELEVANT Handle = 0x80040232 - TPC_E_INVALID_PACKET_DESCRIPTION Handle = 0x80040233 - TPC_E_RECOGNIZER_NOT_REGISTERED Handle = 0x80040235 - TPC_E_INVALID_RIGHTS Handle = 0x80040236 - TPC_E_OUT_OF_ORDER_CALL Handle = 0x80040237 - TPC_E_QUEUE_FULL Handle = 0x80040238 - TPC_E_INVALID_CONFIGURATION Handle = 0x80040239 - TPC_E_INVALID_DATA_FROM_RECOGNIZER Handle = 0x8004023A - TPC_S_TRUNCATED Handle = 0x00040252 - TPC_S_INTERRUPTED Handle = 0x00040253 - TPC_S_NO_DATA_TO_PROCESS Handle = 0x00040254 - XACT_E_FIRST syscall.Errno = 0x8004D000 - XACT_E_LAST syscall.Errno = 0x8004D02B - XACT_S_FIRST syscall.Errno = 0x0004D000 - XACT_S_LAST syscall.Errno = 0x0004D010 - XACT_E_ALREADYOTHERSINGLEPHASE Handle = 0x8004D000 - XACT_E_CANTRETAIN Handle = 0x8004D001 - XACT_E_COMMITFAILED Handle = 0x8004D002 - XACT_E_COMMITPREVENTED Handle = 0x8004D003 - XACT_E_HEURISTICABORT Handle = 0x8004D004 - XACT_E_HEURISTICCOMMIT Handle = 0x8004D005 - XACT_E_HEURISTICDAMAGE Handle = 0x8004D006 - XACT_E_HEURISTICDANGER Handle = 0x8004D007 - XACT_E_ISOLATIONLEVEL Handle = 0x8004D008 - XACT_E_NOASYNC Handle = 0x8004D009 - XACT_E_NOENLIST Handle = 0x8004D00A - XACT_E_NOISORETAIN Handle = 0x8004D00B - XACT_E_NORESOURCE Handle = 0x8004D00C - XACT_E_NOTCURRENT Handle = 0x8004D00D - XACT_E_NOTRANSACTION Handle = 0x8004D00E - XACT_E_NOTSUPPORTED Handle = 0x8004D00F - XACT_E_UNKNOWNRMGRID Handle = 0x8004D010 - XACT_E_WRONGSTATE Handle = 0x8004D011 - XACT_E_WRONGUOW Handle = 0x8004D012 - XACT_E_XTIONEXISTS Handle = 0x8004D013 - XACT_E_NOIMPORTOBJECT Handle = 0x8004D014 - XACT_E_INVALIDCOOKIE Handle = 0x8004D015 - XACT_E_INDOUBT Handle = 0x8004D016 - XACT_E_NOTIMEOUT Handle = 0x8004D017 - XACT_E_ALREADYINPROGRESS Handle = 0x8004D018 - XACT_E_ABORTED Handle = 0x8004D019 - XACT_E_LOGFULL Handle = 0x8004D01A - XACT_E_TMNOTAVAILABLE Handle = 0x8004D01B - XACT_E_CONNECTION_DOWN Handle = 0x8004D01C - XACT_E_CONNECTION_DENIED Handle = 0x8004D01D - XACT_E_REENLISTTIMEOUT Handle = 0x8004D01E - XACT_E_TIP_CONNECT_FAILED Handle = 0x8004D01F - XACT_E_TIP_PROTOCOL_ERROR Handle = 0x8004D020 - XACT_E_TIP_PULL_FAILED Handle = 0x8004D021 - XACT_E_DEST_TMNOTAVAILABLE Handle = 0x8004D022 - XACT_E_TIP_DISABLED Handle = 0x8004D023 - XACT_E_NETWORK_TX_DISABLED Handle = 0x8004D024 - XACT_E_PARTNER_NETWORK_TX_DISABLED Handle = 0x8004D025 - XACT_E_XA_TX_DISABLED Handle = 0x8004D026 - XACT_E_UNABLE_TO_READ_DTC_CONFIG Handle = 0x8004D027 - XACT_E_UNABLE_TO_LOAD_DTC_PROXY Handle = 0x8004D028 - XACT_E_ABORTING Handle = 0x8004D029 - XACT_E_PUSH_COMM_FAILURE Handle = 0x8004D02A - XACT_E_PULL_COMM_FAILURE Handle = 0x8004D02B - XACT_E_LU_TX_DISABLED Handle = 0x8004D02C - XACT_E_CLERKNOTFOUND Handle = 0x8004D080 - XACT_E_CLERKEXISTS Handle = 0x8004D081 - XACT_E_RECOVERYINPROGRESS Handle = 0x8004D082 - XACT_E_TRANSACTIONCLOSED Handle = 0x8004D083 - XACT_E_INVALIDLSN Handle = 0x8004D084 - XACT_E_REPLAYREQUEST Handle = 0x8004D085 - XACT_S_ASYNC Handle = 0x0004D000 - XACT_S_DEFECT Handle = 0x0004D001 - XACT_S_READONLY Handle = 0x0004D002 - XACT_S_SOMENORETAIN Handle = 0x0004D003 - XACT_S_OKINFORM Handle = 0x0004D004 - XACT_S_MADECHANGESCONTENT Handle = 0x0004D005 - XACT_S_MADECHANGESINFORM Handle = 0x0004D006 - XACT_S_ALLNORETAIN Handle = 0x0004D007 - XACT_S_ABORTING Handle = 0x0004D008 - XACT_S_SINGLEPHASE Handle = 0x0004D009 - XACT_S_LOCALLY_OK Handle = 0x0004D00A - XACT_S_LASTRESOURCEMANAGER Handle = 0x0004D010 - CONTEXT_E_FIRST syscall.Errno = 0x8004E000 - CONTEXT_E_LAST syscall.Errno = 0x8004E02F - CONTEXT_S_FIRST syscall.Errno = 0x0004E000 - CONTEXT_S_LAST syscall.Errno = 0x0004E02F - CONTEXT_E_ABORTED Handle = 0x8004E002 - CONTEXT_E_ABORTING Handle = 0x8004E003 - CONTEXT_E_NOCONTEXT Handle = 0x8004E004 - CONTEXT_E_WOULD_DEADLOCK Handle = 0x8004E005 - CONTEXT_E_SYNCH_TIMEOUT Handle = 0x8004E006 - CONTEXT_E_OLDREF Handle = 0x8004E007 - CONTEXT_E_ROLENOTFOUND Handle = 0x8004E00C - CONTEXT_E_TMNOTAVAILABLE Handle = 0x8004E00F - CO_E_ACTIVATIONFAILED Handle = 0x8004E021 - CO_E_ACTIVATIONFAILED_EVENTLOGGED Handle = 0x8004E022 - CO_E_ACTIVATIONFAILED_CATALOGERROR Handle = 0x8004E023 - CO_E_ACTIVATIONFAILED_TIMEOUT Handle = 0x8004E024 - CO_E_INITIALIZATIONFAILED Handle = 0x8004E025 - CONTEXT_E_NOJIT Handle = 0x8004E026 - CONTEXT_E_NOTRANSACTION Handle = 0x8004E027 - CO_E_THREADINGMODEL_CHANGED Handle = 0x8004E028 - CO_E_NOIISINTRINSICS Handle = 0x8004E029 - CO_E_NOCOOKIES Handle = 0x8004E02A - CO_E_DBERROR Handle = 0x8004E02B - CO_E_NOTPOOLED Handle = 0x8004E02C - CO_E_NOTCONSTRUCTED Handle = 0x8004E02D - CO_E_NOSYNCHRONIZATION Handle = 0x8004E02E - CO_E_ISOLEVELMISMATCH Handle = 0x8004E02F - CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED Handle = 0x8004E030 - CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED Handle = 0x8004E031 - OLE_S_USEREG Handle = 0x00040000 - OLE_S_STATIC Handle = 0x00040001 - OLE_S_MAC_CLIPFORMAT Handle = 0x00040002 - DRAGDROP_S_DROP Handle = 0x00040100 - DRAGDROP_S_CANCEL Handle = 0x00040101 - DRAGDROP_S_USEDEFAULTCURSORS Handle = 0x00040102 - DATA_S_SAMEFORMATETC Handle = 0x00040130 - VIEW_S_ALREADY_FROZEN Handle = 0x00040140 - CACHE_S_FORMATETC_NOTSUPPORTED Handle = 0x00040170 - CACHE_S_SAMECACHE Handle = 0x00040171 - CACHE_S_SOMECACHES_NOTUPDATED Handle = 0x00040172 - OLEOBJ_S_INVALIDVERB Handle = 0x00040180 - OLEOBJ_S_CANNOT_DOVERB_NOW Handle = 0x00040181 - OLEOBJ_S_INVALIDHWND Handle = 0x00040182 - INPLACE_S_TRUNCATED Handle = 0x000401A0 - CONVERT10_S_NO_PRESENTATION Handle = 0x000401C0 - MK_S_REDUCED_TO_SELF Handle = 0x000401E2 - MK_S_ME Handle = 0x000401E4 - MK_S_HIM Handle = 0x000401E5 - MK_S_US Handle = 0x000401E6 - MK_S_MONIKERALREADYREGISTERED Handle = 0x000401E7 - SCHED_S_TASK_READY Handle = 0x00041300 - SCHED_S_TASK_RUNNING Handle = 0x00041301 - SCHED_S_TASK_DISABLED Handle = 0x00041302 - SCHED_S_TASK_HAS_NOT_RUN Handle = 0x00041303 - SCHED_S_TASK_NO_MORE_RUNS Handle = 0x00041304 - SCHED_S_TASK_NOT_SCHEDULED Handle = 0x00041305 - SCHED_S_TASK_TERMINATED Handle = 0x00041306 - SCHED_S_TASK_NO_VALID_TRIGGERS Handle = 0x00041307 - SCHED_S_EVENT_TRIGGER Handle = 0x00041308 - SCHED_E_TRIGGER_NOT_FOUND Handle = 0x80041309 - SCHED_E_TASK_NOT_READY Handle = 0x8004130A - SCHED_E_TASK_NOT_RUNNING Handle = 0x8004130B - SCHED_E_SERVICE_NOT_INSTALLED Handle = 0x8004130C - SCHED_E_CANNOT_OPEN_TASK Handle = 0x8004130D - SCHED_E_INVALID_TASK Handle = 0x8004130E - SCHED_E_ACCOUNT_INFORMATION_NOT_SET Handle = 0x8004130F - SCHED_E_ACCOUNT_NAME_NOT_FOUND Handle = 0x80041310 - SCHED_E_ACCOUNT_DBASE_CORRUPT Handle = 0x80041311 - SCHED_E_NO_SECURITY_SERVICES Handle = 0x80041312 - SCHED_E_UNKNOWN_OBJECT_VERSION Handle = 0x80041313 - SCHED_E_UNSUPPORTED_ACCOUNT_OPTION Handle = 0x80041314 - SCHED_E_SERVICE_NOT_RUNNING Handle = 0x80041315 - SCHED_E_UNEXPECTEDNODE Handle = 0x80041316 - SCHED_E_NAMESPACE Handle = 0x80041317 - SCHED_E_INVALIDVALUE Handle = 0x80041318 - SCHED_E_MISSINGNODE Handle = 0x80041319 - SCHED_E_MALFORMEDXML Handle = 0x8004131A - SCHED_S_SOME_TRIGGERS_FAILED Handle = 0x0004131B - SCHED_S_BATCH_LOGON_PROBLEM Handle = 0x0004131C - SCHED_E_TOO_MANY_NODES Handle = 0x8004131D - SCHED_E_PAST_END_BOUNDARY Handle = 0x8004131E - SCHED_E_ALREADY_RUNNING Handle = 0x8004131F - SCHED_E_USER_NOT_LOGGED_ON Handle = 0x80041320 - SCHED_E_INVALID_TASK_HASH Handle = 0x80041321 - SCHED_E_SERVICE_NOT_AVAILABLE Handle = 0x80041322 - SCHED_E_SERVICE_TOO_BUSY Handle = 0x80041323 - SCHED_E_TASK_ATTEMPTED Handle = 0x80041324 - SCHED_S_TASK_QUEUED Handle = 0x00041325 - SCHED_E_TASK_DISABLED Handle = 0x80041326 - SCHED_E_TASK_NOT_V1_COMPAT Handle = 0x80041327 - SCHED_E_START_ON_DEMAND Handle = 0x80041328 - SCHED_E_TASK_NOT_UBPM_COMPAT Handle = 0x80041329 - SCHED_E_DEPRECATED_FEATURE_USED Handle = 0x80041330 - CO_E_CLASS_CREATE_FAILED Handle = 0x80080001 - CO_E_SCM_ERROR Handle = 0x80080002 - CO_E_SCM_RPC_FAILURE Handle = 0x80080003 - CO_E_BAD_PATH Handle = 0x80080004 - CO_E_SERVER_EXEC_FAILURE Handle = 0x80080005 - CO_E_OBJSRV_RPC_FAILURE Handle = 0x80080006 - MK_E_NO_NORMALIZED Handle = 0x80080007 - CO_E_SERVER_STOPPING Handle = 0x80080008 - MEM_E_INVALID_ROOT Handle = 0x80080009 - MEM_E_INVALID_LINK Handle = 0x80080010 - MEM_E_INVALID_SIZE Handle = 0x80080011 - CO_S_NOTALLINTERFACES Handle = 0x00080012 - CO_S_MACHINENAMENOTFOUND Handle = 0x00080013 - CO_E_MISSING_DISPLAYNAME Handle = 0x80080015 - CO_E_RUNAS_VALUE_MUST_BE_AAA Handle = 0x80080016 - CO_E_ELEVATION_DISABLED Handle = 0x80080017 - APPX_E_PACKAGING_INTERNAL Handle = 0x80080200 - APPX_E_INTERLEAVING_NOT_ALLOWED Handle = 0x80080201 - APPX_E_RELATIONSHIPS_NOT_ALLOWED Handle = 0x80080202 - APPX_E_MISSING_REQUIRED_FILE Handle = 0x80080203 - APPX_E_INVALID_MANIFEST Handle = 0x80080204 - APPX_E_INVALID_BLOCKMAP Handle = 0x80080205 - APPX_E_CORRUPT_CONTENT Handle = 0x80080206 - APPX_E_BLOCK_HASH_INVALID Handle = 0x80080207 - APPX_E_REQUESTED_RANGE_TOO_LARGE Handle = 0x80080208 - APPX_E_INVALID_SIP_CLIENT_DATA Handle = 0x80080209 - APPX_E_INVALID_KEY_INFO Handle = 0x8008020A - APPX_E_INVALID_CONTENTGROUPMAP Handle = 0x8008020B - APPX_E_INVALID_APPINSTALLER Handle = 0x8008020C - APPX_E_DELTA_BASELINE_VERSION_MISMATCH Handle = 0x8008020D - APPX_E_DELTA_PACKAGE_MISSING_FILE Handle = 0x8008020E - APPX_E_INVALID_DELTA_PACKAGE Handle = 0x8008020F - APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED Handle = 0x80080210 - APPX_E_INVALID_PACKAGING_LAYOUT Handle = 0x80080211 - APPX_E_INVALID_PACKAGESIGNCONFIG Handle = 0x80080212 - APPX_E_RESOURCESPRI_NOT_ALLOWED Handle = 0x80080213 - APPX_E_FILE_COMPRESSION_MISMATCH Handle = 0x80080214 - APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION Handle = 0x80080215 - APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST Handle = 0x80080216 - BT_E_SPURIOUS_ACTIVATION Handle = 0x80080300 - DISP_E_UNKNOWNINTERFACE Handle = 0x80020001 - DISP_E_MEMBERNOTFOUND Handle = 0x80020003 - DISP_E_PARAMNOTFOUND Handle = 0x80020004 - DISP_E_TYPEMISMATCH Handle = 0x80020005 - DISP_E_UNKNOWNNAME Handle = 0x80020006 - DISP_E_NONAMEDARGS Handle = 0x80020007 - DISP_E_BADVARTYPE Handle = 0x80020008 - DISP_E_EXCEPTION Handle = 0x80020009 - DISP_E_OVERFLOW Handle = 0x8002000A - DISP_E_BADINDEX Handle = 0x8002000B - DISP_E_UNKNOWNLCID Handle = 0x8002000C - DISP_E_ARRAYISLOCKED Handle = 0x8002000D - DISP_E_BADPARAMCOUNT Handle = 0x8002000E - DISP_E_PARAMNOTOPTIONAL Handle = 0x8002000F - DISP_E_BADCALLEE Handle = 0x80020010 - DISP_E_NOTACOLLECTION Handle = 0x80020011 - DISP_E_DIVBYZERO Handle = 0x80020012 - DISP_E_BUFFERTOOSMALL Handle = 0x80020013 - TYPE_E_BUFFERTOOSMALL Handle = 0x80028016 - TYPE_E_FIELDNOTFOUND Handle = 0x80028017 - TYPE_E_INVDATAREAD Handle = 0x80028018 - TYPE_E_UNSUPFORMAT Handle = 0x80028019 - TYPE_E_REGISTRYACCESS Handle = 0x8002801C - TYPE_E_LIBNOTREGISTERED Handle = 0x8002801D - TYPE_E_UNDEFINEDTYPE Handle = 0x80028027 - TYPE_E_QUALIFIEDNAMEDISALLOWED Handle = 0x80028028 - TYPE_E_INVALIDSTATE Handle = 0x80028029 - TYPE_E_WRONGTYPEKIND Handle = 0x8002802A - TYPE_E_ELEMENTNOTFOUND Handle = 0x8002802B - TYPE_E_AMBIGUOUSNAME Handle = 0x8002802C - TYPE_E_NAMECONFLICT Handle = 0x8002802D - TYPE_E_UNKNOWNLCID Handle = 0x8002802E - TYPE_E_DLLFUNCTIONNOTFOUND Handle = 0x8002802F - TYPE_E_BADMODULEKIND Handle = 0x800288BD - TYPE_E_SIZETOOBIG Handle = 0x800288C5 - TYPE_E_DUPLICATEID Handle = 0x800288C6 - TYPE_E_INVALIDID Handle = 0x800288CF - TYPE_E_TYPEMISMATCH Handle = 0x80028CA0 - TYPE_E_OUTOFBOUNDS Handle = 0x80028CA1 - TYPE_E_IOERROR Handle = 0x80028CA2 - TYPE_E_CANTCREATETMPFILE Handle = 0x80028CA3 - TYPE_E_CANTLOADLIBRARY Handle = 0x80029C4A - TYPE_E_INCONSISTENTPROPFUNCS Handle = 0x80029C83 - TYPE_E_CIRCULARTYPE Handle = 0x80029C84 - STG_E_INVALIDFUNCTION Handle = 0x80030001 - STG_E_FILENOTFOUND Handle = 0x80030002 - STG_E_PATHNOTFOUND Handle = 0x80030003 - STG_E_TOOMANYOPENFILES Handle = 0x80030004 - STG_E_ACCESSDENIED Handle = 0x80030005 - STG_E_INVALIDHANDLE Handle = 0x80030006 - STG_E_INSUFFICIENTMEMORY Handle = 0x80030008 - STG_E_INVALIDPOINTER Handle = 0x80030009 - STG_E_NOMOREFILES Handle = 0x80030012 - STG_E_DISKISWRITEPROTECTED Handle = 0x80030013 - STG_E_SEEKERROR Handle = 0x80030019 - STG_E_WRITEFAULT Handle = 0x8003001D - STG_E_READFAULT Handle = 0x8003001E - STG_E_SHAREVIOLATION Handle = 0x80030020 - STG_E_LOCKVIOLATION Handle = 0x80030021 - STG_E_FILEALREADYEXISTS Handle = 0x80030050 - STG_E_INVALIDPARAMETER Handle = 0x80030057 - STG_E_MEDIUMFULL Handle = 0x80030070 - STG_E_PROPSETMISMATCHED Handle = 0x800300F0 - STG_E_ABNORMALAPIEXIT Handle = 0x800300FA - STG_E_INVALIDHEADER Handle = 0x800300FB - STG_E_INVALIDNAME Handle = 0x800300FC - STG_E_UNKNOWN Handle = 0x800300FD - STG_E_UNIMPLEMENTEDFUNCTION Handle = 0x800300FE - STG_E_INVALIDFLAG Handle = 0x800300FF - STG_E_INUSE Handle = 0x80030100 - STG_E_NOTCURRENT Handle = 0x80030101 - STG_E_REVERTED Handle = 0x80030102 - STG_E_CANTSAVE Handle = 0x80030103 - STG_E_OLDFORMAT Handle = 0x80030104 - STG_E_OLDDLL Handle = 0x80030105 - STG_E_SHAREREQUIRED Handle = 0x80030106 - STG_E_NOTFILEBASEDSTORAGE Handle = 0x80030107 - STG_E_EXTANTMARSHALLINGS Handle = 0x80030108 - STG_E_DOCFILECORRUPT Handle = 0x80030109 - STG_E_BADBASEADDRESS Handle = 0x80030110 - STG_E_DOCFILETOOLARGE Handle = 0x80030111 - STG_E_NOTSIMPLEFORMAT Handle = 0x80030112 - STG_E_INCOMPLETE Handle = 0x80030201 - STG_E_TERMINATED Handle = 0x80030202 - STG_S_CONVERTED Handle = 0x00030200 - STG_S_BLOCK Handle = 0x00030201 - STG_S_RETRYNOW Handle = 0x00030202 - STG_S_MONITORING Handle = 0x00030203 - STG_S_MULTIPLEOPENS Handle = 0x00030204 - STG_S_CONSOLIDATIONFAILED Handle = 0x00030205 - STG_S_CANNOTCONSOLIDATE Handle = 0x00030206 - STG_S_POWER_CYCLE_REQUIRED Handle = 0x00030207 - STG_E_FIRMWARE_SLOT_INVALID Handle = 0x80030208 - STG_E_FIRMWARE_IMAGE_INVALID Handle = 0x80030209 - STG_E_DEVICE_UNRESPONSIVE Handle = 0x8003020A - STG_E_STATUS_COPY_PROTECTION_FAILURE Handle = 0x80030305 - STG_E_CSS_AUTHENTICATION_FAILURE Handle = 0x80030306 - STG_E_CSS_KEY_NOT_PRESENT Handle = 0x80030307 - STG_E_CSS_KEY_NOT_ESTABLISHED Handle = 0x80030308 - STG_E_CSS_SCRAMBLED_SECTOR Handle = 0x80030309 - STG_E_CSS_REGION_MISMATCH Handle = 0x8003030A - STG_E_RESETS_EXHAUSTED Handle = 0x8003030B - RPC_E_CALL_REJECTED Handle = 0x80010001 - RPC_E_CALL_CANCELED Handle = 0x80010002 - RPC_E_CANTPOST_INSENDCALL Handle = 0x80010003 - RPC_E_CANTCALLOUT_INASYNCCALL Handle = 0x80010004 - RPC_E_CANTCALLOUT_INEXTERNALCALL Handle = 0x80010005 - RPC_E_CONNECTION_TERMINATED Handle = 0x80010006 - RPC_E_SERVER_DIED Handle = 0x80010007 - RPC_E_CLIENT_DIED Handle = 0x80010008 - RPC_E_INVALID_DATAPACKET Handle = 0x80010009 - RPC_E_CANTTRANSMIT_CALL Handle = 0x8001000A - RPC_E_CLIENT_CANTMARSHAL_DATA Handle = 0x8001000B - RPC_E_CLIENT_CANTUNMARSHAL_DATA Handle = 0x8001000C - RPC_E_SERVER_CANTMARSHAL_DATA Handle = 0x8001000D - RPC_E_SERVER_CANTUNMARSHAL_DATA Handle = 0x8001000E - RPC_E_INVALID_DATA Handle = 0x8001000F - RPC_E_INVALID_PARAMETER Handle = 0x80010010 - RPC_E_CANTCALLOUT_AGAIN Handle = 0x80010011 - RPC_E_SERVER_DIED_DNE Handle = 0x80010012 - RPC_E_SYS_CALL_FAILED Handle = 0x80010100 - RPC_E_OUT_OF_RESOURCES Handle = 0x80010101 - RPC_E_ATTEMPTED_MULTITHREAD Handle = 0x80010102 - RPC_E_NOT_REGISTERED Handle = 0x80010103 - RPC_E_FAULT Handle = 0x80010104 - RPC_E_SERVERFAULT Handle = 0x80010105 - RPC_E_CHANGED_MODE Handle = 0x80010106 - RPC_E_INVALIDMETHOD Handle = 0x80010107 - RPC_E_DISCONNECTED Handle = 0x80010108 - RPC_E_RETRY Handle = 0x80010109 - RPC_E_SERVERCALL_RETRYLATER Handle = 0x8001010A - RPC_E_SERVERCALL_REJECTED Handle = 0x8001010B - RPC_E_INVALID_CALLDATA Handle = 0x8001010C - RPC_E_CANTCALLOUT_ININPUTSYNCCALL Handle = 0x8001010D - RPC_E_WRONG_THREAD Handle = 0x8001010E - RPC_E_THREAD_NOT_INIT Handle = 0x8001010F - RPC_E_VERSION_MISMATCH Handle = 0x80010110 - RPC_E_INVALID_HEADER Handle = 0x80010111 - RPC_E_INVALID_EXTENSION Handle = 0x80010112 - RPC_E_INVALID_IPID Handle = 0x80010113 - RPC_E_INVALID_OBJECT Handle = 0x80010114 - RPC_S_CALLPENDING Handle = 0x80010115 - RPC_S_WAITONTIMER Handle = 0x80010116 - RPC_E_CALL_COMPLETE Handle = 0x80010117 - RPC_E_UNSECURE_CALL Handle = 0x80010118 - RPC_E_TOO_LATE Handle = 0x80010119 - RPC_E_NO_GOOD_SECURITY_PACKAGES Handle = 0x8001011A - RPC_E_ACCESS_DENIED Handle = 0x8001011B - RPC_E_REMOTE_DISABLED Handle = 0x8001011C - RPC_E_INVALID_OBJREF Handle = 0x8001011D - RPC_E_NO_CONTEXT Handle = 0x8001011E - RPC_E_TIMEOUT Handle = 0x8001011F - RPC_E_NO_SYNC Handle = 0x80010120 - RPC_E_FULLSIC_REQUIRED Handle = 0x80010121 - RPC_E_INVALID_STD_NAME Handle = 0x80010122 - CO_E_FAILEDTOIMPERSONATE Handle = 0x80010123 - CO_E_FAILEDTOGETSECCTX Handle = 0x80010124 - CO_E_FAILEDTOOPENTHREADTOKEN Handle = 0x80010125 - CO_E_FAILEDTOGETTOKENINFO Handle = 0x80010126 - CO_E_TRUSTEEDOESNTMATCHCLIENT Handle = 0x80010127 - CO_E_FAILEDTOQUERYCLIENTBLANKET Handle = 0x80010128 - CO_E_FAILEDTOSETDACL Handle = 0x80010129 - CO_E_ACCESSCHECKFAILED Handle = 0x8001012A - CO_E_NETACCESSAPIFAILED Handle = 0x8001012B - CO_E_WRONGTRUSTEENAMESYNTAX Handle = 0x8001012C - CO_E_INVALIDSID Handle = 0x8001012D - CO_E_CONVERSIONFAILED Handle = 0x8001012E - CO_E_NOMATCHINGSIDFOUND Handle = 0x8001012F - CO_E_LOOKUPACCSIDFAILED Handle = 0x80010130 - CO_E_NOMATCHINGNAMEFOUND Handle = 0x80010131 - CO_E_LOOKUPACCNAMEFAILED Handle = 0x80010132 - CO_E_SETSERLHNDLFAILED Handle = 0x80010133 - CO_E_FAILEDTOGETWINDIR Handle = 0x80010134 - CO_E_PATHTOOLONG Handle = 0x80010135 - CO_E_FAILEDTOGENUUID Handle = 0x80010136 - CO_E_FAILEDTOCREATEFILE Handle = 0x80010137 - CO_E_FAILEDTOCLOSEHANDLE Handle = 0x80010138 - CO_E_EXCEEDSYSACLLIMIT Handle = 0x80010139 - CO_E_ACESINWRONGORDER Handle = 0x8001013A - CO_E_INCOMPATIBLESTREAMVERSION Handle = 0x8001013B - CO_E_FAILEDTOOPENPROCESSTOKEN Handle = 0x8001013C - CO_E_DECODEFAILED Handle = 0x8001013D - CO_E_ACNOTINITIALIZED Handle = 0x8001013F - CO_E_CANCEL_DISABLED Handle = 0x80010140 - RPC_E_UNEXPECTED Handle = 0x8001FFFF - ERROR_AUDITING_DISABLED Handle = 0xC0090001 - ERROR_ALL_SIDS_FILTERED Handle = 0xC0090002 - ERROR_BIZRULES_NOT_ENABLED Handle = 0xC0090003 - NTE_BAD_UID Handle = 0x80090001 - NTE_BAD_HASH Handle = 0x80090002 - NTE_BAD_KEY Handle = 0x80090003 - NTE_BAD_LEN Handle = 0x80090004 - NTE_BAD_DATA Handle = 0x80090005 - NTE_BAD_SIGNATURE Handle = 0x80090006 - NTE_BAD_VER Handle = 0x80090007 - NTE_BAD_ALGID Handle = 0x80090008 - NTE_BAD_FLAGS Handle = 0x80090009 - NTE_BAD_TYPE Handle = 0x8009000A - NTE_BAD_KEY_STATE Handle = 0x8009000B - NTE_BAD_HASH_STATE Handle = 0x8009000C - NTE_NO_KEY Handle = 0x8009000D - NTE_NO_MEMORY Handle = 0x8009000E - NTE_EXISTS Handle = 0x8009000F - NTE_PERM Handle = 0x80090010 - NTE_NOT_FOUND Handle = 0x80090011 - NTE_DOUBLE_ENCRYPT Handle = 0x80090012 - NTE_BAD_PROVIDER Handle = 0x80090013 - NTE_BAD_PROV_TYPE Handle = 0x80090014 - NTE_BAD_PUBLIC_KEY Handle = 0x80090015 - NTE_BAD_KEYSET Handle = 0x80090016 - NTE_PROV_TYPE_NOT_DEF Handle = 0x80090017 - NTE_PROV_TYPE_ENTRY_BAD Handle = 0x80090018 - NTE_KEYSET_NOT_DEF Handle = 0x80090019 - NTE_KEYSET_ENTRY_BAD Handle = 0x8009001A - NTE_PROV_TYPE_NO_MATCH Handle = 0x8009001B - NTE_SIGNATURE_FILE_BAD Handle = 0x8009001C - NTE_PROVIDER_DLL_FAIL Handle = 0x8009001D - NTE_PROV_DLL_NOT_FOUND Handle = 0x8009001E - NTE_BAD_KEYSET_PARAM Handle = 0x8009001F - NTE_FAIL Handle = 0x80090020 - NTE_SYS_ERR Handle = 0x80090021 - NTE_SILENT_CONTEXT Handle = 0x80090022 - NTE_TOKEN_KEYSET_STORAGE_FULL Handle = 0x80090023 - NTE_TEMPORARY_PROFILE Handle = 0x80090024 - NTE_FIXEDPARAMETER Handle = 0x80090025 - NTE_INVALID_HANDLE Handle = 0x80090026 - NTE_INVALID_PARAMETER Handle = 0x80090027 - NTE_BUFFER_TOO_SMALL Handle = 0x80090028 - NTE_NOT_SUPPORTED Handle = 0x80090029 - NTE_NO_MORE_ITEMS Handle = 0x8009002A - NTE_BUFFERS_OVERLAP Handle = 0x8009002B - NTE_DECRYPTION_FAILURE Handle = 0x8009002C - NTE_INTERNAL_ERROR Handle = 0x8009002D - NTE_UI_REQUIRED Handle = 0x8009002E - NTE_HMAC_NOT_SUPPORTED Handle = 0x8009002F - NTE_DEVICE_NOT_READY Handle = 0x80090030 - NTE_AUTHENTICATION_IGNORED Handle = 0x80090031 - NTE_VALIDATION_FAILED Handle = 0x80090032 - NTE_INCORRECT_PASSWORD Handle = 0x80090033 - NTE_ENCRYPTION_FAILURE Handle = 0x80090034 - NTE_DEVICE_NOT_FOUND Handle = 0x80090035 - NTE_USER_CANCELLED Handle = 0x80090036 - NTE_PASSWORD_CHANGE_REQUIRED Handle = 0x80090037 - NTE_NOT_ACTIVE_CONSOLE Handle = 0x80090038 - SEC_E_INSUFFICIENT_MEMORY Handle = 0x80090300 - SEC_E_INVALID_HANDLE Handle = 0x80090301 - SEC_E_UNSUPPORTED_FUNCTION Handle = 0x80090302 - SEC_E_TARGET_UNKNOWN Handle = 0x80090303 - SEC_E_INTERNAL_ERROR Handle = 0x80090304 - SEC_E_SECPKG_NOT_FOUND Handle = 0x80090305 - SEC_E_NOT_OWNER Handle = 0x80090306 - SEC_E_CANNOT_INSTALL Handle = 0x80090307 - SEC_E_INVALID_TOKEN Handle = 0x80090308 - SEC_E_CANNOT_PACK Handle = 0x80090309 - SEC_E_QOP_NOT_SUPPORTED Handle = 0x8009030A - SEC_E_NO_IMPERSONATION Handle = 0x8009030B - SEC_E_LOGON_DENIED Handle = 0x8009030C - SEC_E_UNKNOWN_CREDENTIALS Handle = 0x8009030D - SEC_E_NO_CREDENTIALS Handle = 0x8009030E - SEC_E_MESSAGE_ALTERED Handle = 0x8009030F - SEC_E_OUT_OF_SEQUENCE Handle = 0x80090310 - SEC_E_NO_AUTHENTICATING_AUTHORITY Handle = 0x80090311 - SEC_I_CONTINUE_NEEDED Handle = 0x00090312 - SEC_I_COMPLETE_NEEDED Handle = 0x00090313 - SEC_I_COMPLETE_AND_CONTINUE Handle = 0x00090314 - SEC_I_LOCAL_LOGON Handle = 0x00090315 - SEC_E_BAD_PKGID Handle = 0x80090316 - SEC_E_CONTEXT_EXPIRED Handle = 0x80090317 - SEC_I_CONTEXT_EXPIRED Handle = 0x00090317 - SEC_E_INCOMPLETE_MESSAGE Handle = 0x80090318 - SEC_E_INCOMPLETE_CREDENTIALS Handle = 0x80090320 - SEC_E_BUFFER_TOO_SMALL Handle = 0x80090321 - SEC_I_INCOMPLETE_CREDENTIALS Handle = 0x00090320 - SEC_I_RENEGOTIATE Handle = 0x00090321 - SEC_E_WRONG_PRINCIPAL Handle = 0x80090322 - SEC_I_NO_LSA_CONTEXT Handle = 0x00090323 - SEC_E_TIME_SKEW Handle = 0x80090324 - SEC_E_UNTRUSTED_ROOT Handle = 0x80090325 - SEC_E_ILLEGAL_MESSAGE Handle = 0x80090326 - SEC_E_CERT_UNKNOWN Handle = 0x80090327 - SEC_E_CERT_EXPIRED Handle = 0x80090328 - SEC_E_ENCRYPT_FAILURE Handle = 0x80090329 - SEC_E_DECRYPT_FAILURE Handle = 0x80090330 - SEC_E_ALGORITHM_MISMATCH Handle = 0x80090331 - SEC_E_SECURITY_QOS_FAILED Handle = 0x80090332 - SEC_E_UNFINISHED_CONTEXT_DELETED Handle = 0x80090333 - SEC_E_NO_TGT_REPLY Handle = 0x80090334 - SEC_E_NO_IP_ADDRESSES Handle = 0x80090335 - SEC_E_WRONG_CREDENTIAL_HANDLE Handle = 0x80090336 - SEC_E_CRYPTO_SYSTEM_INVALID Handle = 0x80090337 - SEC_E_MAX_REFERRALS_EXCEEDED Handle = 0x80090338 - SEC_E_MUST_BE_KDC Handle = 0x80090339 - SEC_E_STRONG_CRYPTO_NOT_SUPPORTED Handle = 0x8009033A - SEC_E_TOO_MANY_PRINCIPALS Handle = 0x8009033B - SEC_E_NO_PA_DATA Handle = 0x8009033C - SEC_E_PKINIT_NAME_MISMATCH Handle = 0x8009033D - SEC_E_SMARTCARD_LOGON_REQUIRED Handle = 0x8009033E - SEC_E_SHUTDOWN_IN_PROGRESS Handle = 0x8009033F - SEC_E_KDC_INVALID_REQUEST Handle = 0x80090340 - SEC_E_KDC_UNABLE_TO_REFER Handle = 0x80090341 - SEC_E_KDC_UNKNOWN_ETYPE Handle = 0x80090342 - SEC_E_UNSUPPORTED_PREAUTH Handle = 0x80090343 - SEC_E_DELEGATION_REQUIRED Handle = 0x80090345 - SEC_E_BAD_BINDINGS Handle = 0x80090346 - SEC_E_MULTIPLE_ACCOUNTS Handle = 0x80090347 - SEC_E_NO_KERB_KEY Handle = 0x80090348 - SEC_E_CERT_WRONG_USAGE Handle = 0x80090349 - SEC_E_DOWNGRADE_DETECTED Handle = 0x80090350 - SEC_E_SMARTCARD_CERT_REVOKED Handle = 0x80090351 - SEC_E_ISSUING_CA_UNTRUSTED Handle = 0x80090352 - SEC_E_REVOCATION_OFFLINE_C Handle = 0x80090353 - SEC_E_PKINIT_CLIENT_FAILURE Handle = 0x80090354 - SEC_E_SMARTCARD_CERT_EXPIRED Handle = 0x80090355 - SEC_E_NO_S4U_PROT_SUPPORT Handle = 0x80090356 - SEC_E_CROSSREALM_DELEGATION_FAILURE Handle = 0x80090357 - SEC_E_REVOCATION_OFFLINE_KDC Handle = 0x80090358 - SEC_E_ISSUING_CA_UNTRUSTED_KDC Handle = 0x80090359 - SEC_E_KDC_CERT_EXPIRED Handle = 0x8009035A - SEC_E_KDC_CERT_REVOKED Handle = 0x8009035B - SEC_I_SIGNATURE_NEEDED Handle = 0x0009035C - SEC_E_INVALID_PARAMETER Handle = 0x8009035D - SEC_E_DELEGATION_POLICY Handle = 0x8009035E - SEC_E_POLICY_NLTM_ONLY Handle = 0x8009035F - SEC_I_NO_RENEGOTIATION Handle = 0x00090360 - SEC_E_NO_CONTEXT Handle = 0x80090361 - SEC_E_PKU2U_CERT_FAILURE Handle = 0x80090362 - SEC_E_MUTUAL_AUTH_FAILED Handle = 0x80090363 - SEC_I_MESSAGE_FRAGMENT Handle = 0x00090364 - SEC_E_ONLY_HTTPS_ALLOWED Handle = 0x80090365 - SEC_I_CONTINUE_NEEDED_MESSAGE_OK Handle = 0x00090366 - SEC_E_APPLICATION_PROTOCOL_MISMATCH Handle = 0x80090367 - SEC_I_ASYNC_CALL_PENDING Handle = 0x00090368 - SEC_E_INVALID_UPN_NAME Handle = 0x80090369 - SEC_E_NO_SPM = SEC_E_INTERNAL_ERROR - SEC_E_NOT_SUPPORTED = SEC_E_UNSUPPORTED_FUNCTION - CRYPT_E_MSG_ERROR Handle = 0x80091001 - CRYPT_E_UNKNOWN_ALGO Handle = 0x80091002 - CRYPT_E_OID_FORMAT Handle = 0x80091003 - CRYPT_E_INVALID_MSG_TYPE Handle = 0x80091004 - CRYPT_E_UNEXPECTED_ENCODING Handle = 0x80091005 - CRYPT_E_AUTH_ATTR_MISSING Handle = 0x80091006 - CRYPT_E_HASH_VALUE Handle = 0x80091007 - CRYPT_E_INVALID_INDEX Handle = 0x80091008 - CRYPT_E_ALREADY_DECRYPTED Handle = 0x80091009 - CRYPT_E_NOT_DECRYPTED Handle = 0x8009100A - CRYPT_E_RECIPIENT_NOT_FOUND Handle = 0x8009100B - CRYPT_E_CONTROL_TYPE Handle = 0x8009100C - CRYPT_E_ISSUER_SERIALNUMBER Handle = 0x8009100D - CRYPT_E_SIGNER_NOT_FOUND Handle = 0x8009100E - CRYPT_E_ATTRIBUTES_MISSING Handle = 0x8009100F - CRYPT_E_STREAM_MSG_NOT_READY Handle = 0x80091010 - CRYPT_E_STREAM_INSUFFICIENT_DATA Handle = 0x80091011 - CRYPT_I_NEW_PROTECTION_REQUIRED Handle = 0x00091012 - CRYPT_E_BAD_LEN Handle = 0x80092001 - CRYPT_E_BAD_ENCODE Handle = 0x80092002 - CRYPT_E_FILE_ERROR Handle = 0x80092003 - CRYPT_E_NOT_FOUND Handle = 0x80092004 - CRYPT_E_EXISTS Handle = 0x80092005 - CRYPT_E_NO_PROVIDER Handle = 0x80092006 - CRYPT_E_SELF_SIGNED Handle = 0x80092007 - CRYPT_E_DELETED_PREV Handle = 0x80092008 - CRYPT_E_NO_MATCH Handle = 0x80092009 - CRYPT_E_UNEXPECTED_MSG_TYPE Handle = 0x8009200A - CRYPT_E_NO_KEY_PROPERTY Handle = 0x8009200B - CRYPT_E_NO_DECRYPT_CERT Handle = 0x8009200C - CRYPT_E_BAD_MSG Handle = 0x8009200D - CRYPT_E_NO_SIGNER Handle = 0x8009200E - CRYPT_E_PENDING_CLOSE Handle = 0x8009200F - CRYPT_E_REVOKED Handle = 0x80092010 - CRYPT_E_NO_REVOCATION_DLL Handle = 0x80092011 - CRYPT_E_NO_REVOCATION_CHECK Handle = 0x80092012 - CRYPT_E_REVOCATION_OFFLINE Handle = 0x80092013 - CRYPT_E_NOT_IN_REVOCATION_DATABASE Handle = 0x80092014 - CRYPT_E_INVALID_NUMERIC_STRING Handle = 0x80092020 - CRYPT_E_INVALID_PRINTABLE_STRING Handle = 0x80092021 - CRYPT_E_INVALID_IA5_STRING Handle = 0x80092022 - CRYPT_E_INVALID_X500_STRING Handle = 0x80092023 - CRYPT_E_NOT_CHAR_STRING Handle = 0x80092024 - CRYPT_E_FILERESIZED Handle = 0x80092025 - CRYPT_E_SECURITY_SETTINGS Handle = 0x80092026 - CRYPT_E_NO_VERIFY_USAGE_DLL Handle = 0x80092027 - CRYPT_E_NO_VERIFY_USAGE_CHECK Handle = 0x80092028 - CRYPT_E_VERIFY_USAGE_OFFLINE Handle = 0x80092029 - CRYPT_E_NOT_IN_CTL Handle = 0x8009202A - CRYPT_E_NO_TRUSTED_SIGNER Handle = 0x8009202B - CRYPT_E_MISSING_PUBKEY_PARA Handle = 0x8009202C - CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND Handle = 0x8009202D - CRYPT_E_OSS_ERROR Handle = 0x80093000 - OSS_MORE_BUF Handle = 0x80093001 - OSS_NEGATIVE_UINTEGER Handle = 0x80093002 - OSS_PDU_RANGE Handle = 0x80093003 - OSS_MORE_INPUT Handle = 0x80093004 - OSS_DATA_ERROR Handle = 0x80093005 - OSS_BAD_ARG Handle = 0x80093006 - OSS_BAD_VERSION Handle = 0x80093007 - OSS_OUT_MEMORY Handle = 0x80093008 - OSS_PDU_MISMATCH Handle = 0x80093009 - OSS_LIMITED Handle = 0x8009300A - OSS_BAD_PTR Handle = 0x8009300B - OSS_BAD_TIME Handle = 0x8009300C - OSS_INDEFINITE_NOT_SUPPORTED Handle = 0x8009300D - OSS_MEM_ERROR Handle = 0x8009300E - OSS_BAD_TABLE Handle = 0x8009300F - OSS_TOO_LONG Handle = 0x80093010 - OSS_CONSTRAINT_VIOLATED Handle = 0x80093011 - OSS_FATAL_ERROR Handle = 0x80093012 - OSS_ACCESS_SERIALIZATION_ERROR Handle = 0x80093013 - OSS_NULL_TBL Handle = 0x80093014 - OSS_NULL_FCN Handle = 0x80093015 - OSS_BAD_ENCRULES Handle = 0x80093016 - OSS_UNAVAIL_ENCRULES Handle = 0x80093017 - OSS_CANT_OPEN_TRACE_WINDOW Handle = 0x80093018 - OSS_UNIMPLEMENTED Handle = 0x80093019 - OSS_OID_DLL_NOT_LINKED Handle = 0x8009301A - OSS_CANT_OPEN_TRACE_FILE Handle = 0x8009301B - OSS_TRACE_FILE_ALREADY_OPEN Handle = 0x8009301C - OSS_TABLE_MISMATCH Handle = 0x8009301D - OSS_TYPE_NOT_SUPPORTED Handle = 0x8009301E - OSS_REAL_DLL_NOT_LINKED Handle = 0x8009301F - OSS_REAL_CODE_NOT_LINKED Handle = 0x80093020 - OSS_OUT_OF_RANGE Handle = 0x80093021 - OSS_COPIER_DLL_NOT_LINKED Handle = 0x80093022 - OSS_CONSTRAINT_DLL_NOT_LINKED Handle = 0x80093023 - OSS_COMPARATOR_DLL_NOT_LINKED Handle = 0x80093024 - OSS_COMPARATOR_CODE_NOT_LINKED Handle = 0x80093025 - OSS_MEM_MGR_DLL_NOT_LINKED Handle = 0x80093026 - OSS_PDV_DLL_NOT_LINKED Handle = 0x80093027 - OSS_PDV_CODE_NOT_LINKED Handle = 0x80093028 - OSS_API_DLL_NOT_LINKED Handle = 0x80093029 - OSS_BERDER_DLL_NOT_LINKED Handle = 0x8009302A - OSS_PER_DLL_NOT_LINKED Handle = 0x8009302B - OSS_OPEN_TYPE_ERROR Handle = 0x8009302C - OSS_MUTEX_NOT_CREATED Handle = 0x8009302D - OSS_CANT_CLOSE_TRACE_FILE Handle = 0x8009302E - CRYPT_E_ASN1_ERROR Handle = 0x80093100 - CRYPT_E_ASN1_INTERNAL Handle = 0x80093101 - CRYPT_E_ASN1_EOD Handle = 0x80093102 - CRYPT_E_ASN1_CORRUPT Handle = 0x80093103 - CRYPT_E_ASN1_LARGE Handle = 0x80093104 - CRYPT_E_ASN1_CONSTRAINT Handle = 0x80093105 - CRYPT_E_ASN1_MEMORY Handle = 0x80093106 - CRYPT_E_ASN1_OVERFLOW Handle = 0x80093107 - CRYPT_E_ASN1_BADPDU Handle = 0x80093108 - CRYPT_E_ASN1_BADARGS Handle = 0x80093109 - CRYPT_E_ASN1_BADREAL Handle = 0x8009310A - CRYPT_E_ASN1_BADTAG Handle = 0x8009310B - CRYPT_E_ASN1_CHOICE Handle = 0x8009310C - CRYPT_E_ASN1_RULE Handle = 0x8009310D - CRYPT_E_ASN1_UTF8 Handle = 0x8009310E - CRYPT_E_ASN1_PDU_TYPE Handle = 0x80093133 - CRYPT_E_ASN1_NYI Handle = 0x80093134 - CRYPT_E_ASN1_EXTENDED Handle = 0x80093201 - CRYPT_E_ASN1_NOEOD Handle = 0x80093202 - CERTSRV_E_BAD_REQUESTSUBJECT Handle = 0x80094001 - CERTSRV_E_NO_REQUEST Handle = 0x80094002 - CERTSRV_E_BAD_REQUESTSTATUS Handle = 0x80094003 - CERTSRV_E_PROPERTY_EMPTY Handle = 0x80094004 - CERTSRV_E_INVALID_CA_CERTIFICATE Handle = 0x80094005 - CERTSRV_E_SERVER_SUSPENDED Handle = 0x80094006 - CERTSRV_E_ENCODING_LENGTH Handle = 0x80094007 - CERTSRV_E_ROLECONFLICT Handle = 0x80094008 - CERTSRV_E_RESTRICTEDOFFICER Handle = 0x80094009 - CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED Handle = 0x8009400A - CERTSRV_E_NO_VALID_KRA Handle = 0x8009400B - CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL Handle = 0x8009400C - CERTSRV_E_NO_CAADMIN_DEFINED Handle = 0x8009400D - CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE Handle = 0x8009400E - CERTSRV_E_NO_DB_SESSIONS Handle = 0x8009400F - CERTSRV_E_ALIGNMENT_FAULT Handle = 0x80094010 - CERTSRV_E_ENROLL_DENIED Handle = 0x80094011 - CERTSRV_E_TEMPLATE_DENIED Handle = 0x80094012 - CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE Handle = 0x80094013 - CERTSRV_E_ADMIN_DENIED_REQUEST Handle = 0x80094014 - CERTSRV_E_NO_POLICY_SERVER Handle = 0x80094015 - CERTSRV_E_WEAK_SIGNATURE_OR_KEY Handle = 0x80094016 - CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED Handle = 0x80094017 - CERTSRV_E_ENCRYPTION_CERT_REQUIRED Handle = 0x80094018 - CERTSRV_E_UNSUPPORTED_CERT_TYPE Handle = 0x80094800 - CERTSRV_E_NO_CERT_TYPE Handle = 0x80094801 - CERTSRV_E_TEMPLATE_CONFLICT Handle = 0x80094802 - CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED Handle = 0x80094803 - CERTSRV_E_ARCHIVED_KEY_REQUIRED Handle = 0x80094804 - CERTSRV_E_SMIME_REQUIRED Handle = 0x80094805 - CERTSRV_E_BAD_RENEWAL_SUBJECT Handle = 0x80094806 - CERTSRV_E_BAD_TEMPLATE_VERSION Handle = 0x80094807 - CERTSRV_E_TEMPLATE_POLICY_REQUIRED Handle = 0x80094808 - CERTSRV_E_SIGNATURE_POLICY_REQUIRED Handle = 0x80094809 - CERTSRV_E_SIGNATURE_COUNT Handle = 0x8009480A - CERTSRV_E_SIGNATURE_REJECTED Handle = 0x8009480B - CERTSRV_E_ISSUANCE_POLICY_REQUIRED Handle = 0x8009480C - CERTSRV_E_SUBJECT_UPN_REQUIRED Handle = 0x8009480D - CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED Handle = 0x8009480E - CERTSRV_E_SUBJECT_DNS_REQUIRED Handle = 0x8009480F - CERTSRV_E_ARCHIVED_KEY_UNEXPECTED Handle = 0x80094810 - CERTSRV_E_KEY_LENGTH Handle = 0x80094811 - CERTSRV_E_SUBJECT_EMAIL_REQUIRED Handle = 0x80094812 - CERTSRV_E_UNKNOWN_CERT_TYPE Handle = 0x80094813 - CERTSRV_E_CERT_TYPE_OVERLAP Handle = 0x80094814 - CERTSRV_E_TOO_MANY_SIGNATURES Handle = 0x80094815 - CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY Handle = 0x80094816 - CERTSRV_E_INVALID_EK Handle = 0x80094817 - CERTSRV_E_INVALID_IDBINDING Handle = 0x80094818 - CERTSRV_E_INVALID_ATTESTATION Handle = 0x80094819 - CERTSRV_E_KEY_ATTESTATION Handle = 0x8009481A - CERTSRV_E_CORRUPT_KEY_ATTESTATION Handle = 0x8009481B - CERTSRV_E_EXPIRED_CHALLENGE Handle = 0x8009481C - CERTSRV_E_INVALID_RESPONSE Handle = 0x8009481D - CERTSRV_E_INVALID_REQUESTID Handle = 0x8009481E - CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH Handle = 0x8009481F - CERTSRV_E_PENDING_CLIENT_RESPONSE Handle = 0x80094820 - XENROLL_E_KEY_NOT_EXPORTABLE Handle = 0x80095000 - XENROLL_E_CANNOT_ADD_ROOT_CERT Handle = 0x80095001 - XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND Handle = 0x80095002 - XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH Handle = 0x80095003 - XENROLL_E_RESPONSE_KA_HASH_MISMATCH Handle = 0x80095004 - XENROLL_E_KEYSPEC_SMIME_MISMATCH Handle = 0x80095005 - TRUST_E_SYSTEM_ERROR Handle = 0x80096001 - TRUST_E_NO_SIGNER_CERT Handle = 0x80096002 - TRUST_E_COUNTER_SIGNER Handle = 0x80096003 - TRUST_E_CERT_SIGNATURE Handle = 0x80096004 - TRUST_E_TIME_STAMP Handle = 0x80096005 - TRUST_E_BAD_DIGEST Handle = 0x80096010 - TRUST_E_MALFORMED_SIGNATURE Handle = 0x80096011 - TRUST_E_BASIC_CONSTRAINTS Handle = 0x80096019 - TRUST_E_FINANCIAL_CRITERIA Handle = 0x8009601E - MSSIPOTF_E_OUTOFMEMRANGE Handle = 0x80097001 - MSSIPOTF_E_CANTGETOBJECT Handle = 0x80097002 - MSSIPOTF_E_NOHEADTABLE Handle = 0x80097003 - MSSIPOTF_E_BAD_MAGICNUMBER Handle = 0x80097004 - MSSIPOTF_E_BAD_OFFSET_TABLE Handle = 0x80097005 - MSSIPOTF_E_TABLE_TAGORDER Handle = 0x80097006 - MSSIPOTF_E_TABLE_LONGWORD Handle = 0x80097007 - MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT Handle = 0x80097008 - MSSIPOTF_E_TABLES_OVERLAP Handle = 0x80097009 - MSSIPOTF_E_TABLE_PADBYTES Handle = 0x8009700A - MSSIPOTF_E_FILETOOSMALL Handle = 0x8009700B - MSSIPOTF_E_TABLE_CHECKSUM Handle = 0x8009700C - MSSIPOTF_E_FILE_CHECKSUM Handle = 0x8009700D - MSSIPOTF_E_FAILED_POLICY Handle = 0x80097010 - MSSIPOTF_E_FAILED_HINTS_CHECK Handle = 0x80097011 - MSSIPOTF_E_NOT_OPENTYPE Handle = 0x80097012 - MSSIPOTF_E_FILE Handle = 0x80097013 - MSSIPOTF_E_CRYPT Handle = 0x80097014 - MSSIPOTF_E_BADVERSION Handle = 0x80097015 - MSSIPOTF_E_DSIG_STRUCTURE Handle = 0x80097016 - MSSIPOTF_E_PCONST_CHECK Handle = 0x80097017 - MSSIPOTF_E_STRUCTURE Handle = 0x80097018 - ERROR_CRED_REQUIRES_CONFIRMATION Handle = 0x80097019 - NTE_OP_OK syscall.Errno = 0 - TRUST_E_PROVIDER_UNKNOWN Handle = 0x800B0001 - TRUST_E_ACTION_UNKNOWN Handle = 0x800B0002 - TRUST_E_SUBJECT_FORM_UNKNOWN Handle = 0x800B0003 - TRUST_E_SUBJECT_NOT_TRUSTED Handle = 0x800B0004 - DIGSIG_E_ENCODE Handle = 0x800B0005 - DIGSIG_E_DECODE Handle = 0x800B0006 - DIGSIG_E_EXTENSIBILITY Handle = 0x800B0007 - DIGSIG_E_CRYPTO Handle = 0x800B0008 - PERSIST_E_SIZEDEFINITE Handle = 0x800B0009 - PERSIST_E_SIZEINDEFINITE Handle = 0x800B000A - PERSIST_E_NOTSELFSIZING Handle = 0x800B000B - TRUST_E_NOSIGNATURE Handle = 0x800B0100 - CERT_E_EXPIRED Handle = 0x800B0101 - CERT_E_VALIDITYPERIODNESTING Handle = 0x800B0102 - CERT_E_ROLE Handle = 0x800B0103 - CERT_E_PATHLENCONST Handle = 0x800B0104 - CERT_E_CRITICAL Handle = 0x800B0105 - CERT_E_PURPOSE Handle = 0x800B0106 - CERT_E_ISSUERCHAINING Handle = 0x800B0107 - CERT_E_MALFORMED Handle = 0x800B0108 - CERT_E_UNTRUSTEDROOT Handle = 0x800B0109 - CERT_E_CHAINING Handle = 0x800B010A - TRUST_E_FAIL Handle = 0x800B010B - CERT_E_REVOKED Handle = 0x800B010C - CERT_E_UNTRUSTEDTESTROOT Handle = 0x800B010D - CERT_E_REVOCATION_FAILURE Handle = 0x800B010E - CERT_E_CN_NO_MATCH Handle = 0x800B010F - CERT_E_WRONG_USAGE Handle = 0x800B0110 - TRUST_E_EXPLICIT_DISTRUST Handle = 0x800B0111 - CERT_E_UNTRUSTEDCA Handle = 0x800B0112 - CERT_E_INVALID_POLICY Handle = 0x800B0113 - CERT_E_INVALID_NAME Handle = 0x800B0114 - SPAPI_E_EXPECTED_SECTION_NAME Handle = 0x800F0000 - SPAPI_E_BAD_SECTION_NAME_LINE Handle = 0x800F0001 - SPAPI_E_SECTION_NAME_TOO_LONG Handle = 0x800F0002 - SPAPI_E_GENERAL_SYNTAX Handle = 0x800F0003 - SPAPI_E_WRONG_INF_STYLE Handle = 0x800F0100 - SPAPI_E_SECTION_NOT_FOUND Handle = 0x800F0101 - SPAPI_E_LINE_NOT_FOUND Handle = 0x800F0102 - SPAPI_E_NO_BACKUP Handle = 0x800F0103 - SPAPI_E_NO_ASSOCIATED_CLASS Handle = 0x800F0200 - SPAPI_E_CLASS_MISMATCH Handle = 0x800F0201 - SPAPI_E_DUPLICATE_FOUND Handle = 0x800F0202 - SPAPI_E_NO_DRIVER_SELECTED Handle = 0x800F0203 - SPAPI_E_KEY_DOES_NOT_EXIST Handle = 0x800F0204 - SPAPI_E_INVALID_DEVINST_NAME Handle = 0x800F0205 - SPAPI_E_INVALID_CLASS Handle = 0x800F0206 - SPAPI_E_DEVINST_ALREADY_EXISTS Handle = 0x800F0207 - SPAPI_E_DEVINFO_NOT_REGISTERED Handle = 0x800F0208 - SPAPI_E_INVALID_REG_PROPERTY Handle = 0x800F0209 - SPAPI_E_NO_INF Handle = 0x800F020A - SPAPI_E_NO_SUCH_DEVINST Handle = 0x800F020B - SPAPI_E_CANT_LOAD_CLASS_ICON Handle = 0x800F020C - SPAPI_E_INVALID_CLASS_INSTALLER Handle = 0x800F020D - SPAPI_E_DI_DO_DEFAULT Handle = 0x800F020E - SPAPI_E_DI_NOFILECOPY Handle = 0x800F020F - SPAPI_E_INVALID_HWPROFILE Handle = 0x800F0210 - SPAPI_E_NO_DEVICE_SELECTED Handle = 0x800F0211 - SPAPI_E_DEVINFO_LIST_LOCKED Handle = 0x800F0212 - SPAPI_E_DEVINFO_DATA_LOCKED Handle = 0x800F0213 - SPAPI_E_DI_BAD_PATH Handle = 0x800F0214 - SPAPI_E_NO_CLASSINSTALL_PARAMS Handle = 0x800F0215 - SPAPI_E_FILEQUEUE_LOCKED Handle = 0x800F0216 - SPAPI_E_BAD_SERVICE_INSTALLSECT Handle = 0x800F0217 - SPAPI_E_NO_CLASS_DRIVER_LIST Handle = 0x800F0218 - SPAPI_E_NO_ASSOCIATED_SERVICE Handle = 0x800F0219 - SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE Handle = 0x800F021A - SPAPI_E_DEVICE_INTERFACE_ACTIVE Handle = 0x800F021B - SPAPI_E_DEVICE_INTERFACE_REMOVED Handle = 0x800F021C - SPAPI_E_BAD_INTERFACE_INSTALLSECT Handle = 0x800F021D - SPAPI_E_NO_SUCH_INTERFACE_CLASS Handle = 0x800F021E - SPAPI_E_INVALID_REFERENCE_STRING Handle = 0x800F021F - SPAPI_E_INVALID_MACHINENAME Handle = 0x800F0220 - SPAPI_E_REMOTE_COMM_FAILURE Handle = 0x800F0221 - SPAPI_E_MACHINE_UNAVAILABLE Handle = 0x800F0222 - SPAPI_E_NO_CONFIGMGR_SERVICES Handle = 0x800F0223 - SPAPI_E_INVALID_PROPPAGE_PROVIDER Handle = 0x800F0224 - SPAPI_E_NO_SUCH_DEVICE_INTERFACE Handle = 0x800F0225 - SPAPI_E_DI_POSTPROCESSING_REQUIRED Handle = 0x800F0226 - SPAPI_E_INVALID_COINSTALLER Handle = 0x800F0227 - SPAPI_E_NO_COMPAT_DRIVERS Handle = 0x800F0228 - SPAPI_E_NO_DEVICE_ICON Handle = 0x800F0229 - SPAPI_E_INVALID_INF_LOGCONFIG Handle = 0x800F022A - SPAPI_E_DI_DONT_INSTALL Handle = 0x800F022B - SPAPI_E_INVALID_FILTER_DRIVER Handle = 0x800F022C - SPAPI_E_NON_WINDOWS_NT_DRIVER Handle = 0x800F022D - SPAPI_E_NON_WINDOWS_DRIVER Handle = 0x800F022E - SPAPI_E_NO_CATALOG_FOR_OEM_INF Handle = 0x800F022F - SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE Handle = 0x800F0230 - SPAPI_E_NOT_DISABLEABLE Handle = 0x800F0231 - SPAPI_E_CANT_REMOVE_DEVINST Handle = 0x800F0232 - SPAPI_E_INVALID_TARGET Handle = 0x800F0233 - SPAPI_E_DRIVER_NONNATIVE Handle = 0x800F0234 - SPAPI_E_IN_WOW64 Handle = 0x800F0235 - SPAPI_E_SET_SYSTEM_RESTORE_POINT Handle = 0x800F0236 - SPAPI_E_INCORRECTLY_COPIED_INF Handle = 0x800F0237 - SPAPI_E_SCE_DISABLED Handle = 0x800F0238 - SPAPI_E_UNKNOWN_EXCEPTION Handle = 0x800F0239 - SPAPI_E_PNP_REGISTRY_ERROR Handle = 0x800F023A - SPAPI_E_REMOTE_REQUEST_UNSUPPORTED Handle = 0x800F023B - SPAPI_E_NOT_AN_INSTALLED_OEM_INF Handle = 0x800F023C - SPAPI_E_INF_IN_USE_BY_DEVICES Handle = 0x800F023D - SPAPI_E_DI_FUNCTION_OBSOLETE Handle = 0x800F023E - SPAPI_E_NO_AUTHENTICODE_CATALOG Handle = 0x800F023F - SPAPI_E_AUTHENTICODE_DISALLOWED Handle = 0x800F0240 - SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER Handle = 0x800F0241 - SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED Handle = 0x800F0242 - SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Handle = 0x800F0243 - SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH Handle = 0x800F0244 - SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE Handle = 0x800F0245 - SPAPI_E_DEVICE_INSTALLER_NOT_READY Handle = 0x800F0246 - SPAPI_E_DRIVER_STORE_ADD_FAILED Handle = 0x800F0247 - SPAPI_E_DEVICE_INSTALL_BLOCKED Handle = 0x800F0248 - SPAPI_E_DRIVER_INSTALL_BLOCKED Handle = 0x800F0249 - SPAPI_E_WRONG_INF_TYPE Handle = 0x800F024A - SPAPI_E_FILE_HASH_NOT_IN_CATALOG Handle = 0x800F024B - SPAPI_E_DRIVER_STORE_DELETE_FAILED Handle = 0x800F024C - SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW Handle = 0x800F0300 - SPAPI_E_ERROR_NOT_INSTALLED Handle = 0x800F1000 - SCARD_S_SUCCESS = S_OK - SCARD_F_INTERNAL_ERROR Handle = 0x80100001 - SCARD_E_CANCELLED Handle = 0x80100002 - SCARD_E_INVALID_HANDLE Handle = 0x80100003 - SCARD_E_INVALID_PARAMETER Handle = 0x80100004 - SCARD_E_INVALID_TARGET Handle = 0x80100005 - SCARD_E_NO_MEMORY Handle = 0x80100006 - SCARD_F_WAITED_TOO_LONG Handle = 0x80100007 - SCARD_E_INSUFFICIENT_BUFFER Handle = 0x80100008 - SCARD_E_UNKNOWN_READER Handle = 0x80100009 - SCARD_E_TIMEOUT Handle = 0x8010000A - SCARD_E_SHARING_VIOLATION Handle = 0x8010000B - SCARD_E_NO_SMARTCARD Handle = 0x8010000C - SCARD_E_UNKNOWN_CARD Handle = 0x8010000D - SCARD_E_CANT_DISPOSE Handle = 0x8010000E - SCARD_E_PROTO_MISMATCH Handle = 0x8010000F - SCARD_E_NOT_READY Handle = 0x80100010 - SCARD_E_INVALID_VALUE Handle = 0x80100011 - SCARD_E_SYSTEM_CANCELLED Handle = 0x80100012 - SCARD_F_COMM_ERROR Handle = 0x80100013 - SCARD_F_UNKNOWN_ERROR Handle = 0x80100014 - SCARD_E_INVALID_ATR Handle = 0x80100015 - SCARD_E_NOT_TRANSACTED Handle = 0x80100016 - SCARD_E_READER_UNAVAILABLE Handle = 0x80100017 - SCARD_P_SHUTDOWN Handle = 0x80100018 - SCARD_E_PCI_TOO_SMALL Handle = 0x80100019 - SCARD_E_READER_UNSUPPORTED Handle = 0x8010001A - SCARD_E_DUPLICATE_READER Handle = 0x8010001B - SCARD_E_CARD_UNSUPPORTED Handle = 0x8010001C - SCARD_E_NO_SERVICE Handle = 0x8010001D - SCARD_E_SERVICE_STOPPED Handle = 0x8010001E - SCARD_E_UNEXPECTED Handle = 0x8010001F - SCARD_E_ICC_INSTALLATION Handle = 0x80100020 - SCARD_E_ICC_CREATEORDER Handle = 0x80100021 - SCARD_E_UNSUPPORTED_FEATURE Handle = 0x80100022 - SCARD_E_DIR_NOT_FOUND Handle = 0x80100023 - SCARD_E_FILE_NOT_FOUND Handle = 0x80100024 - SCARD_E_NO_DIR Handle = 0x80100025 - SCARD_E_NO_FILE Handle = 0x80100026 - SCARD_E_NO_ACCESS Handle = 0x80100027 - SCARD_E_WRITE_TOO_MANY Handle = 0x80100028 - SCARD_E_BAD_SEEK Handle = 0x80100029 - SCARD_E_INVALID_CHV Handle = 0x8010002A - SCARD_E_UNKNOWN_RES_MNG Handle = 0x8010002B - SCARD_E_NO_SUCH_CERTIFICATE Handle = 0x8010002C - SCARD_E_CERTIFICATE_UNAVAILABLE Handle = 0x8010002D - SCARD_E_NO_READERS_AVAILABLE Handle = 0x8010002E - SCARD_E_COMM_DATA_LOST Handle = 0x8010002F - SCARD_E_NO_KEY_CONTAINER Handle = 0x80100030 - SCARD_E_SERVER_TOO_BUSY Handle = 0x80100031 - SCARD_E_PIN_CACHE_EXPIRED Handle = 0x80100032 - SCARD_E_NO_PIN_CACHE Handle = 0x80100033 - SCARD_E_READ_ONLY_CARD Handle = 0x80100034 - SCARD_W_UNSUPPORTED_CARD Handle = 0x80100065 - SCARD_W_UNRESPONSIVE_CARD Handle = 0x80100066 - SCARD_W_UNPOWERED_CARD Handle = 0x80100067 - SCARD_W_RESET_CARD Handle = 0x80100068 - SCARD_W_REMOVED_CARD Handle = 0x80100069 - SCARD_W_SECURITY_VIOLATION Handle = 0x8010006A - SCARD_W_WRONG_CHV Handle = 0x8010006B - SCARD_W_CHV_BLOCKED Handle = 0x8010006C - SCARD_W_EOF Handle = 0x8010006D - SCARD_W_CANCELLED_BY_USER Handle = 0x8010006E - SCARD_W_CARD_NOT_AUTHENTICATED Handle = 0x8010006F - SCARD_W_CACHE_ITEM_NOT_FOUND Handle = 0x80100070 - SCARD_W_CACHE_ITEM_STALE Handle = 0x80100071 - SCARD_W_CACHE_ITEM_TOO_BIG Handle = 0x80100072 - COMADMIN_E_OBJECTERRORS Handle = 0x80110401 - COMADMIN_E_OBJECTINVALID Handle = 0x80110402 - COMADMIN_E_KEYMISSING Handle = 0x80110403 - COMADMIN_E_ALREADYINSTALLED Handle = 0x80110404 - COMADMIN_E_APP_FILE_WRITEFAIL Handle = 0x80110407 - COMADMIN_E_APP_FILE_READFAIL Handle = 0x80110408 - COMADMIN_E_APP_FILE_VERSION Handle = 0x80110409 - COMADMIN_E_BADPATH Handle = 0x8011040A - COMADMIN_E_APPLICATIONEXISTS Handle = 0x8011040B - COMADMIN_E_ROLEEXISTS Handle = 0x8011040C - COMADMIN_E_CANTCOPYFILE Handle = 0x8011040D - COMADMIN_E_NOUSER Handle = 0x8011040F - COMADMIN_E_INVALIDUSERIDS Handle = 0x80110410 - COMADMIN_E_NOREGISTRYCLSID Handle = 0x80110411 - COMADMIN_E_BADREGISTRYPROGID Handle = 0x80110412 - COMADMIN_E_AUTHENTICATIONLEVEL Handle = 0x80110413 - COMADMIN_E_USERPASSWDNOTVALID Handle = 0x80110414 - COMADMIN_E_CLSIDORIIDMISMATCH Handle = 0x80110418 - COMADMIN_E_REMOTEINTERFACE Handle = 0x80110419 - COMADMIN_E_DLLREGISTERSERVER Handle = 0x8011041A - COMADMIN_E_NOSERVERSHARE Handle = 0x8011041B - COMADMIN_E_DLLLOADFAILED Handle = 0x8011041D - COMADMIN_E_BADREGISTRYLIBID Handle = 0x8011041E - COMADMIN_E_APPDIRNOTFOUND Handle = 0x8011041F - COMADMIN_E_REGISTRARFAILED Handle = 0x80110423 - COMADMIN_E_COMPFILE_DOESNOTEXIST Handle = 0x80110424 - COMADMIN_E_COMPFILE_LOADDLLFAIL Handle = 0x80110425 - COMADMIN_E_COMPFILE_GETCLASSOBJ Handle = 0x80110426 - COMADMIN_E_COMPFILE_CLASSNOTAVAIL Handle = 0x80110427 - COMADMIN_E_COMPFILE_BADTLB Handle = 0x80110428 - COMADMIN_E_COMPFILE_NOTINSTALLABLE Handle = 0x80110429 - COMADMIN_E_NOTCHANGEABLE Handle = 0x8011042A - COMADMIN_E_NOTDELETEABLE Handle = 0x8011042B - COMADMIN_E_SESSION Handle = 0x8011042C - COMADMIN_E_COMP_MOVE_LOCKED Handle = 0x8011042D - COMADMIN_E_COMP_MOVE_BAD_DEST Handle = 0x8011042E - COMADMIN_E_REGISTERTLB Handle = 0x80110430 - COMADMIN_E_SYSTEMAPP Handle = 0x80110433 - COMADMIN_E_COMPFILE_NOREGISTRAR Handle = 0x80110434 - COMADMIN_E_COREQCOMPINSTALLED Handle = 0x80110435 - COMADMIN_E_SERVICENOTINSTALLED Handle = 0x80110436 - COMADMIN_E_PROPERTYSAVEFAILED Handle = 0x80110437 - COMADMIN_E_OBJECTEXISTS Handle = 0x80110438 - COMADMIN_E_COMPONENTEXISTS Handle = 0x80110439 - COMADMIN_E_REGFILE_CORRUPT Handle = 0x8011043B - COMADMIN_E_PROPERTY_OVERFLOW Handle = 0x8011043C - COMADMIN_E_NOTINREGISTRY Handle = 0x8011043E - COMADMIN_E_OBJECTNOTPOOLABLE Handle = 0x8011043F - COMADMIN_E_APPLID_MATCHES_CLSID Handle = 0x80110446 - COMADMIN_E_ROLE_DOES_NOT_EXIST Handle = 0x80110447 - COMADMIN_E_START_APP_NEEDS_COMPONENTS Handle = 0x80110448 - COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM Handle = 0x80110449 - COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY Handle = 0x8011044A - COMADMIN_E_CAN_NOT_START_APP Handle = 0x8011044B - COMADMIN_E_CAN_NOT_EXPORT_SYS_APP Handle = 0x8011044C - COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT Handle = 0x8011044D - COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER Handle = 0x8011044E - COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE Handle = 0x8011044F - COMADMIN_E_BASE_PARTITION_ONLY Handle = 0x80110450 - COMADMIN_E_START_APP_DISABLED Handle = 0x80110451 - COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME Handle = 0x80110457 - COMADMIN_E_CAT_INVALID_PARTITION_NAME Handle = 0x80110458 - COMADMIN_E_CAT_PARTITION_IN_USE Handle = 0x80110459 - COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES Handle = 0x8011045A - COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED Handle = 0x8011045B - COMADMIN_E_AMBIGUOUS_APPLICATION_NAME Handle = 0x8011045C - COMADMIN_E_AMBIGUOUS_PARTITION_NAME Handle = 0x8011045D - COMADMIN_E_REGDB_NOTINITIALIZED Handle = 0x80110472 - COMADMIN_E_REGDB_NOTOPEN Handle = 0x80110473 - COMADMIN_E_REGDB_SYSTEMERR Handle = 0x80110474 - COMADMIN_E_REGDB_ALREADYRUNNING Handle = 0x80110475 - COMADMIN_E_MIG_VERSIONNOTSUPPORTED Handle = 0x80110480 - COMADMIN_E_MIG_SCHEMANOTFOUND Handle = 0x80110481 - COMADMIN_E_CAT_BITNESSMISMATCH Handle = 0x80110482 - COMADMIN_E_CAT_UNACCEPTABLEBITNESS Handle = 0x80110483 - COMADMIN_E_CAT_WRONGAPPBITNESS Handle = 0x80110484 - COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED Handle = 0x80110485 - COMADMIN_E_CAT_SERVERFAULT Handle = 0x80110486 - COMQC_E_APPLICATION_NOT_QUEUED Handle = 0x80110600 - COMQC_E_NO_QUEUEABLE_INTERFACES Handle = 0x80110601 - COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE Handle = 0x80110602 - COMQC_E_NO_IPERSISTSTREAM Handle = 0x80110603 - COMQC_E_BAD_MESSAGE Handle = 0x80110604 - COMQC_E_UNAUTHENTICATED Handle = 0x80110605 - COMQC_E_UNTRUSTED_ENQUEUER Handle = 0x80110606 - MSDTC_E_DUPLICATE_RESOURCE Handle = 0x80110701 - COMADMIN_E_OBJECT_PARENT_MISSING Handle = 0x80110808 - COMADMIN_E_OBJECT_DOES_NOT_EXIST Handle = 0x80110809 - COMADMIN_E_APP_NOT_RUNNING Handle = 0x8011080A - COMADMIN_E_INVALID_PARTITION Handle = 0x8011080B - COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE Handle = 0x8011080D - COMADMIN_E_USER_IN_SET Handle = 0x8011080E - COMADMIN_E_CANTRECYCLELIBRARYAPPS Handle = 0x8011080F - COMADMIN_E_CANTRECYCLESERVICEAPPS Handle = 0x80110811 - COMADMIN_E_PROCESSALREADYRECYCLED Handle = 0x80110812 - COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED Handle = 0x80110813 - COMADMIN_E_CANTMAKEINPROCSERVICE Handle = 0x80110814 - COMADMIN_E_PROGIDINUSEBYCLSID Handle = 0x80110815 - COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET Handle = 0x80110816 - COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED Handle = 0x80110817 - COMADMIN_E_PARTITION_ACCESSDENIED Handle = 0x80110818 - COMADMIN_E_PARTITION_MSI_ONLY Handle = 0x80110819 - COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT Handle = 0x8011081A - COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS Handle = 0x8011081B - COMADMIN_E_COMP_MOVE_SOURCE Handle = 0x8011081C - COMADMIN_E_COMP_MOVE_DEST Handle = 0x8011081D - COMADMIN_E_COMP_MOVE_PRIVATE Handle = 0x8011081E - COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET Handle = 0x8011081F - COMADMIN_E_CANNOT_ALIAS_EVENTCLASS Handle = 0x80110820 - COMADMIN_E_PRIVATE_ACCESSDENIED Handle = 0x80110821 - COMADMIN_E_SAFERINVALID Handle = 0x80110822 - COMADMIN_E_REGISTRY_ACCESSDENIED Handle = 0x80110823 - COMADMIN_E_PARTITIONS_DISABLED Handle = 0x80110824 - WER_S_REPORT_DEBUG Handle = 0x001B0000 - WER_S_REPORT_UPLOADED Handle = 0x001B0001 - WER_S_REPORT_QUEUED Handle = 0x001B0002 - WER_S_DISABLED Handle = 0x001B0003 - WER_S_SUSPENDED_UPLOAD Handle = 0x001B0004 - WER_S_DISABLED_QUEUE Handle = 0x001B0005 - WER_S_DISABLED_ARCHIVE Handle = 0x001B0006 - WER_S_REPORT_ASYNC Handle = 0x001B0007 - WER_S_IGNORE_ASSERT_INSTANCE Handle = 0x001B0008 - WER_S_IGNORE_ALL_ASSERTS Handle = 0x001B0009 - WER_S_ASSERT_CONTINUE Handle = 0x001B000A - WER_S_THROTTLED Handle = 0x001B000B - WER_S_REPORT_UPLOADED_CAB Handle = 0x001B000C - WER_E_CRASH_FAILURE Handle = 0x801B8000 - WER_E_CANCELED Handle = 0x801B8001 - WER_E_NETWORK_FAILURE Handle = 0x801B8002 - WER_E_NOT_INITIALIZED Handle = 0x801B8003 - WER_E_ALREADY_REPORTING Handle = 0x801B8004 - WER_E_DUMP_THROTTLED Handle = 0x801B8005 - WER_E_INSUFFICIENT_CONSENT Handle = 0x801B8006 - WER_E_TOO_HEAVY Handle = 0x801B8007 - ERROR_FLT_IO_COMPLETE Handle = 0x001F0001 - ERROR_FLT_NO_HANDLER_DEFINED Handle = 0x801F0001 - ERROR_FLT_CONTEXT_ALREADY_DEFINED Handle = 0x801F0002 - ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST Handle = 0x801F0003 - ERROR_FLT_DISALLOW_FAST_IO Handle = 0x801F0004 - ERROR_FLT_INVALID_NAME_REQUEST Handle = 0x801F0005 - ERROR_FLT_NOT_SAFE_TO_POST_OPERATION Handle = 0x801F0006 - ERROR_FLT_NOT_INITIALIZED Handle = 0x801F0007 - ERROR_FLT_FILTER_NOT_READY Handle = 0x801F0008 - ERROR_FLT_POST_OPERATION_CLEANUP Handle = 0x801F0009 - ERROR_FLT_INTERNAL_ERROR Handle = 0x801F000A - ERROR_FLT_DELETING_OBJECT Handle = 0x801F000B - ERROR_FLT_MUST_BE_NONPAGED_POOL Handle = 0x801F000C - ERROR_FLT_DUPLICATE_ENTRY Handle = 0x801F000D - ERROR_FLT_CBDQ_DISABLED Handle = 0x801F000E - ERROR_FLT_DO_NOT_ATTACH Handle = 0x801F000F - ERROR_FLT_DO_NOT_DETACH Handle = 0x801F0010 - ERROR_FLT_INSTANCE_ALTITUDE_COLLISION Handle = 0x801F0011 - ERROR_FLT_INSTANCE_NAME_COLLISION Handle = 0x801F0012 - ERROR_FLT_FILTER_NOT_FOUND Handle = 0x801F0013 - ERROR_FLT_VOLUME_NOT_FOUND Handle = 0x801F0014 - ERROR_FLT_INSTANCE_NOT_FOUND Handle = 0x801F0015 - ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND Handle = 0x801F0016 - ERROR_FLT_INVALID_CONTEXT_REGISTRATION Handle = 0x801F0017 - ERROR_FLT_NAME_CACHE_MISS Handle = 0x801F0018 - ERROR_FLT_NO_DEVICE_OBJECT Handle = 0x801F0019 - ERROR_FLT_VOLUME_ALREADY_MOUNTED Handle = 0x801F001A - ERROR_FLT_ALREADY_ENLISTED Handle = 0x801F001B - ERROR_FLT_CONTEXT_ALREADY_LINKED Handle = 0x801F001C - ERROR_FLT_NO_WAITER_FOR_REPLY Handle = 0x801F0020 - ERROR_FLT_REGISTRATION_BUSY Handle = 0x801F0023 - ERROR_HUNG_DISPLAY_DRIVER_THREAD Handle = 0x80260001 - DWM_E_COMPOSITIONDISABLED Handle = 0x80263001 - DWM_E_REMOTING_NOT_SUPPORTED Handle = 0x80263002 - DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x80263003 - DWM_E_NOT_QUEUING_PRESENTS Handle = 0x80263004 - DWM_E_ADAPTER_NOT_FOUND Handle = 0x80263005 - DWM_S_GDI_REDIRECTION_SURFACE Handle = 0x00263005 - DWM_E_TEXTURE_TOO_LARGE Handle = 0x80263007 - DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI Handle = 0x00263008 - ERROR_MONITOR_NO_DESCRIPTOR Handle = 0x00261001 - ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT Handle = 0x00261002 - ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM Handle = 0xC0261003 - ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK Handle = 0xC0261004 - ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED Handle = 0xC0261005 - ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK Handle = 0xC0261006 - ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK Handle = 0xC0261007 - ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA Handle = 0xC0261008 - ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK Handle = 0xC0261009 - ERROR_MONITOR_INVALID_MANUFACTURE_DATE Handle = 0xC026100A - ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER Handle = 0xC0262000 - ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER Handle = 0xC0262001 - ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER Handle = 0xC0262002 - ERROR_GRAPHICS_ADAPTER_WAS_RESET Handle = 0xC0262003 - ERROR_GRAPHICS_INVALID_DRIVER_MODEL Handle = 0xC0262004 - ERROR_GRAPHICS_PRESENT_MODE_CHANGED Handle = 0xC0262005 - ERROR_GRAPHICS_PRESENT_OCCLUDED Handle = 0xC0262006 - ERROR_GRAPHICS_PRESENT_DENIED Handle = 0xC0262007 - ERROR_GRAPHICS_CANNOTCOLORCONVERT Handle = 0xC0262008 - ERROR_GRAPHICS_DRIVER_MISMATCH Handle = 0xC0262009 - ERROR_GRAPHICS_PARTIAL_DATA_POPULATED Handle = 0x4026200A - ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED Handle = 0xC026200B - ERROR_GRAPHICS_PRESENT_UNOCCLUDED Handle = 0xC026200C - ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE Handle = 0xC026200D - ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED Handle = 0xC026200E - ERROR_GRAPHICS_PRESENT_INVALID_WINDOW Handle = 0xC026200F - ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND Handle = 0xC0262010 - ERROR_GRAPHICS_VAIL_STATE_CHANGED Handle = 0xC0262011 - ERROR_GRAPHICS_NO_VIDEO_MEMORY Handle = 0xC0262100 - ERROR_GRAPHICS_CANT_LOCK_MEMORY Handle = 0xC0262101 - ERROR_GRAPHICS_ALLOCATION_BUSY Handle = 0xC0262102 - ERROR_GRAPHICS_TOO_MANY_REFERENCES Handle = 0xC0262103 - ERROR_GRAPHICS_TRY_AGAIN_LATER Handle = 0xC0262104 - ERROR_GRAPHICS_TRY_AGAIN_NOW Handle = 0xC0262105 - ERROR_GRAPHICS_ALLOCATION_INVALID Handle = 0xC0262106 - ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE Handle = 0xC0262107 - ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED Handle = 0xC0262108 - ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION Handle = 0xC0262109 - ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE Handle = 0xC0262110 - ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION Handle = 0xC0262111 - ERROR_GRAPHICS_ALLOCATION_CLOSED Handle = 0xC0262112 - ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE Handle = 0xC0262113 - ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE Handle = 0xC0262114 - ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE Handle = 0xC0262115 - ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST Handle = 0xC0262116 - ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE Handle = 0xC0262200 - ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION Handle = 0x40262201 - ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY Handle = 0xC0262300 - ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED Handle = 0xC0262301 - ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED Handle = 0xC0262302 - ERROR_GRAPHICS_INVALID_VIDPN Handle = 0xC0262303 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE Handle = 0xC0262304 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET Handle = 0xC0262305 - ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED Handle = 0xC0262306 - ERROR_GRAPHICS_MODE_NOT_PINNED Handle = 0x00262307 - ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET Handle = 0xC0262308 - ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET Handle = 0xC0262309 - ERROR_GRAPHICS_INVALID_FREQUENCY Handle = 0xC026230A - ERROR_GRAPHICS_INVALID_ACTIVE_REGION Handle = 0xC026230B - ERROR_GRAPHICS_INVALID_TOTAL_REGION Handle = 0xC026230C - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE Handle = 0xC0262310 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE Handle = 0xC0262311 - ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET Handle = 0xC0262312 - ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY Handle = 0xC0262313 - ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET Handle = 0xC0262314 - ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET Handle = 0xC0262315 - ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET Handle = 0xC0262316 - ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET Handle = 0xC0262317 - ERROR_GRAPHICS_TARGET_ALREADY_IN_SET Handle = 0xC0262318 - ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH Handle = 0xC0262319 - ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY Handle = 0xC026231A - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET Handle = 0xC026231B - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE Handle = 0xC026231C - ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET Handle = 0xC026231D - ERROR_GRAPHICS_NO_PREFERRED_MODE Handle = 0x0026231E - ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET Handle = 0xC026231F - ERROR_GRAPHICS_STALE_MODESET Handle = 0xC0262320 - ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET Handle = 0xC0262321 - ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE Handle = 0xC0262322 - ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN Handle = 0xC0262323 - ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE Handle = 0xC0262324 - ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION Handle = 0xC0262325 - ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES Handle = 0xC0262326 - ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY Handle = 0xC0262327 - ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE Handle = 0xC0262328 - ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET Handle = 0xC0262329 - ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET Handle = 0xC026232A - ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR Handle = 0xC026232B - ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET Handle = 0xC026232C - ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET Handle = 0xC026232D - ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE Handle = 0xC026232E - ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE Handle = 0xC026232F - ERROR_GRAPHICS_RESOURCES_NOT_RELATED Handle = 0xC0262330 - ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE Handle = 0xC0262331 - ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE Handle = 0xC0262332 - ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET Handle = 0xC0262333 - ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER Handle = 0xC0262334 - ERROR_GRAPHICS_NO_VIDPNMGR Handle = 0xC0262335 - ERROR_GRAPHICS_NO_ACTIVE_VIDPN Handle = 0xC0262336 - ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY Handle = 0xC0262337 - ERROR_GRAPHICS_MONITOR_NOT_CONNECTED Handle = 0xC0262338 - ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY Handle = 0xC0262339 - ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE Handle = 0xC026233A - ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE Handle = 0xC026233B - ERROR_GRAPHICS_INVALID_STRIDE Handle = 0xC026233C - ERROR_GRAPHICS_INVALID_PIXELFORMAT Handle = 0xC026233D - ERROR_GRAPHICS_INVALID_COLORBASIS Handle = 0xC026233E - ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE Handle = 0xC026233F - ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY Handle = 0xC0262340 - ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT Handle = 0xC0262341 - ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0xC0262342 - ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN Handle = 0xC0262343 - ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL Handle = 0xC0262344 - ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION Handle = 0xC0262345 - ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED Handle = 0xC0262346 - ERROR_GRAPHICS_INVALID_GAMMA_RAMP Handle = 0xC0262347 - ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED Handle = 0xC0262348 - ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED Handle = 0xC0262349 - ERROR_GRAPHICS_MODE_NOT_IN_MODESET Handle = 0xC026234A - ERROR_GRAPHICS_DATASET_IS_EMPTY Handle = 0x0026234B - ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET Handle = 0x0026234C - ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON Handle = 0xC026234D - ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE Handle = 0xC026234E - ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE Handle = 0xC026234F - ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS Handle = 0xC0262350 - ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED Handle = 0x00262351 - ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING Handle = 0xC0262352 - ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED Handle = 0xC0262353 - ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS Handle = 0xC0262354 - ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT Handle = 0xC0262355 - ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM Handle = 0xC0262356 - ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN Handle = 0xC0262357 - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT Handle = 0xC0262358 - ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED Handle = 0xC0262359 - ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION Handle = 0xC026235A - ERROR_GRAPHICS_INVALID_CLIENT_TYPE Handle = 0xC026235B - ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET Handle = 0xC026235C - ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED Handle = 0xC0262400 - ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED Handle = 0xC0262401 - ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS Handle = 0x4026242F - ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER Handle = 0xC0262430 - ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED Handle = 0xC0262431 - ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED Handle = 0xC0262432 - ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY Handle = 0xC0262433 - ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED Handle = 0xC0262434 - ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON Handle = 0xC0262435 - ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE Handle = 0xC0262436 - ERROR_GRAPHICS_LEADLINK_START_DEFERRED Handle = 0x40262437 - ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER Handle = 0xC0262438 - ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY Handle = 0x40262439 - ERROR_GRAPHICS_START_DEFERRED Handle = 0x4026243A - ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED Handle = 0xC026243B - ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS Handle = 0x4026243C - ERROR_GRAPHICS_OPM_NOT_SUPPORTED Handle = 0xC0262500 - ERROR_GRAPHICS_COPP_NOT_SUPPORTED Handle = 0xC0262501 - ERROR_GRAPHICS_UAB_NOT_SUPPORTED Handle = 0xC0262502 - ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS Handle = 0xC0262503 - ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST Handle = 0xC0262505 - ERROR_GRAPHICS_OPM_INTERNAL_ERROR Handle = 0xC026250B - ERROR_GRAPHICS_OPM_INVALID_HANDLE Handle = 0xC026250C - ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH Handle = 0xC026250E - ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED Handle = 0xC026250F - ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED Handle = 0xC0262510 - ERROR_GRAPHICS_PVP_HFS_FAILED Handle = 0xC0262511 - ERROR_GRAPHICS_OPM_INVALID_SRM Handle = 0xC0262512 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP Handle = 0xC0262513 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP Handle = 0xC0262514 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA Handle = 0xC0262515 - ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET Handle = 0xC0262516 - ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH Handle = 0xC0262517 - ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE Handle = 0xC0262518 - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS Handle = 0xC026251A - ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC026251B - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS Handle = 0xC026251C - ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST Handle = 0xC026251D - ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR Handle = 0xC026251E - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS Handle = 0xC026251F - ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED Handle = 0xC0262520 - ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST Handle = 0xC0262521 - ERROR_GRAPHICS_I2C_NOT_SUPPORTED Handle = 0xC0262580 - ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Handle = 0xC0262581 - ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA Handle = 0xC0262582 - ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA Handle = 0xC0262583 - ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED Handle = 0xC0262584 - ERROR_GRAPHICS_DDCCI_INVALID_DATA Handle = 0xC0262585 - ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE Handle = 0xC0262586 - ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING Handle = 0xC0262587 - ERROR_GRAPHICS_MCA_INTERNAL_ERROR Handle = 0xC0262588 - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND Handle = 0xC0262589 - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH Handle = 0xC026258A - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM Handle = 0xC026258B - ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE Handle = 0xC026258C - ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS Handle = 0xC026258D - ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE Handle = 0xC02625D8 - ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION Handle = 0xC02625D9 - ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION Handle = 0xC02625DA - ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH Handle = 0xC02625DB - ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION Handle = 0xC02625DC - ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED Handle = 0xC02625DE - ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE Handle = 0xC02625DF - ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED Handle = 0xC02625E0 - ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME Handle = 0xC02625E1 - ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP Handle = 0xC02625E2 - ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED Handle = 0xC02625E3 - ERROR_GRAPHICS_INVALID_POINTER Handle = 0xC02625E4 - ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE Handle = 0xC02625E5 - ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL Handle = 0xC02625E6 - ERROR_GRAPHICS_INTERNAL_ERROR Handle = 0xC02625E7 - ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC02605E8 - NAP_E_INVALID_PACKET Handle = 0x80270001 - NAP_E_MISSING_SOH Handle = 0x80270002 - NAP_E_CONFLICTING_ID Handle = 0x80270003 - NAP_E_NO_CACHED_SOH Handle = 0x80270004 - NAP_E_STILL_BOUND Handle = 0x80270005 - NAP_E_NOT_REGISTERED Handle = 0x80270006 - NAP_E_NOT_INITIALIZED Handle = 0x80270007 - NAP_E_MISMATCHED_ID Handle = 0x80270008 - NAP_E_NOT_PENDING Handle = 0x80270009 - NAP_E_ID_NOT_FOUND Handle = 0x8027000A - NAP_E_MAXSIZE_TOO_SMALL Handle = 0x8027000B - NAP_E_SERVICE_NOT_RUNNING Handle = 0x8027000C - NAP_S_CERT_ALREADY_PRESENT Handle = 0x0027000D - NAP_E_ENTITY_DISABLED Handle = 0x8027000E - NAP_E_NETSH_GROUPPOLICY_ERROR Handle = 0x8027000F - NAP_E_TOO_MANY_CALLS Handle = 0x80270010 - NAP_E_SHV_CONFIG_EXISTED Handle = 0x80270011 - NAP_E_SHV_CONFIG_NOT_FOUND Handle = 0x80270012 - NAP_E_SHV_TIMEOUT Handle = 0x80270013 - TPM_E_ERROR_MASK Handle = 0x80280000 - TPM_E_AUTHFAIL Handle = 0x80280001 - TPM_E_BADINDEX Handle = 0x80280002 - TPM_E_BAD_PARAMETER Handle = 0x80280003 - TPM_E_AUDITFAILURE Handle = 0x80280004 - TPM_E_CLEAR_DISABLED Handle = 0x80280005 - TPM_E_DEACTIVATED Handle = 0x80280006 - TPM_E_DISABLED Handle = 0x80280007 - TPM_E_DISABLED_CMD Handle = 0x80280008 - TPM_E_FAIL Handle = 0x80280009 - TPM_E_BAD_ORDINAL Handle = 0x8028000A - TPM_E_INSTALL_DISABLED Handle = 0x8028000B - TPM_E_INVALID_KEYHANDLE Handle = 0x8028000C - TPM_E_KEYNOTFOUND Handle = 0x8028000D - TPM_E_INAPPROPRIATE_ENC Handle = 0x8028000E - TPM_E_MIGRATEFAIL Handle = 0x8028000F - TPM_E_INVALID_PCR_INFO Handle = 0x80280010 - TPM_E_NOSPACE Handle = 0x80280011 - TPM_E_NOSRK Handle = 0x80280012 - TPM_E_NOTSEALED_BLOB Handle = 0x80280013 - TPM_E_OWNER_SET Handle = 0x80280014 - TPM_E_RESOURCES Handle = 0x80280015 - TPM_E_SHORTRANDOM Handle = 0x80280016 - TPM_E_SIZE Handle = 0x80280017 - TPM_E_WRONGPCRVAL Handle = 0x80280018 - TPM_E_BAD_PARAM_SIZE Handle = 0x80280019 - TPM_E_SHA_THREAD Handle = 0x8028001A - TPM_E_SHA_ERROR Handle = 0x8028001B - TPM_E_FAILEDSELFTEST Handle = 0x8028001C - TPM_E_AUTH2FAIL Handle = 0x8028001D - TPM_E_BADTAG Handle = 0x8028001E - TPM_E_IOERROR Handle = 0x8028001F - TPM_E_ENCRYPT_ERROR Handle = 0x80280020 - TPM_E_DECRYPT_ERROR Handle = 0x80280021 - TPM_E_INVALID_AUTHHANDLE Handle = 0x80280022 - TPM_E_NO_ENDORSEMENT Handle = 0x80280023 - TPM_E_INVALID_KEYUSAGE Handle = 0x80280024 - TPM_E_WRONG_ENTITYTYPE Handle = 0x80280025 - TPM_E_INVALID_POSTINIT Handle = 0x80280026 - TPM_E_INAPPROPRIATE_SIG Handle = 0x80280027 - TPM_E_BAD_KEY_PROPERTY Handle = 0x80280028 - TPM_E_BAD_MIGRATION Handle = 0x80280029 - TPM_E_BAD_SCHEME Handle = 0x8028002A - TPM_E_BAD_DATASIZE Handle = 0x8028002B - TPM_E_BAD_MODE Handle = 0x8028002C - TPM_E_BAD_PRESENCE Handle = 0x8028002D - TPM_E_BAD_VERSION Handle = 0x8028002E - TPM_E_NO_WRAP_TRANSPORT Handle = 0x8028002F - TPM_E_AUDITFAIL_UNSUCCESSFUL Handle = 0x80280030 - TPM_E_AUDITFAIL_SUCCESSFUL Handle = 0x80280031 - TPM_E_NOTRESETABLE Handle = 0x80280032 - TPM_E_NOTLOCAL Handle = 0x80280033 - TPM_E_BAD_TYPE Handle = 0x80280034 - TPM_E_INVALID_RESOURCE Handle = 0x80280035 - TPM_E_NOTFIPS Handle = 0x80280036 - TPM_E_INVALID_FAMILY Handle = 0x80280037 - TPM_E_NO_NV_PERMISSION Handle = 0x80280038 - TPM_E_REQUIRES_SIGN Handle = 0x80280039 - TPM_E_KEY_NOTSUPPORTED Handle = 0x8028003A - TPM_E_AUTH_CONFLICT Handle = 0x8028003B - TPM_E_AREA_LOCKED Handle = 0x8028003C - TPM_E_BAD_LOCALITY Handle = 0x8028003D - TPM_E_READ_ONLY Handle = 0x8028003E - TPM_E_PER_NOWRITE Handle = 0x8028003F - TPM_E_FAMILYCOUNT Handle = 0x80280040 - TPM_E_WRITE_LOCKED Handle = 0x80280041 - TPM_E_BAD_ATTRIBUTES Handle = 0x80280042 - TPM_E_INVALID_STRUCTURE Handle = 0x80280043 - TPM_E_KEY_OWNER_CONTROL Handle = 0x80280044 - TPM_E_BAD_COUNTER Handle = 0x80280045 - TPM_E_NOT_FULLWRITE Handle = 0x80280046 - TPM_E_CONTEXT_GAP Handle = 0x80280047 - TPM_E_MAXNVWRITES Handle = 0x80280048 - TPM_E_NOOPERATOR Handle = 0x80280049 - TPM_E_RESOURCEMISSING Handle = 0x8028004A - TPM_E_DELEGATE_LOCK Handle = 0x8028004B - TPM_E_DELEGATE_FAMILY Handle = 0x8028004C - TPM_E_DELEGATE_ADMIN Handle = 0x8028004D - TPM_E_TRANSPORT_NOTEXCLUSIVE Handle = 0x8028004E - TPM_E_OWNER_CONTROL Handle = 0x8028004F - TPM_E_DAA_RESOURCES Handle = 0x80280050 - TPM_E_DAA_INPUT_DATA0 Handle = 0x80280051 - TPM_E_DAA_INPUT_DATA1 Handle = 0x80280052 - TPM_E_DAA_ISSUER_SETTINGS Handle = 0x80280053 - TPM_E_DAA_TPM_SETTINGS Handle = 0x80280054 - TPM_E_DAA_STAGE Handle = 0x80280055 - TPM_E_DAA_ISSUER_VALIDITY Handle = 0x80280056 - TPM_E_DAA_WRONG_W Handle = 0x80280057 - TPM_E_BAD_HANDLE Handle = 0x80280058 - TPM_E_BAD_DELEGATE Handle = 0x80280059 - TPM_E_BADCONTEXT Handle = 0x8028005A - TPM_E_TOOMANYCONTEXTS Handle = 0x8028005B - TPM_E_MA_TICKET_SIGNATURE Handle = 0x8028005C - TPM_E_MA_DESTINATION Handle = 0x8028005D - TPM_E_MA_SOURCE Handle = 0x8028005E - TPM_E_MA_AUTHORITY Handle = 0x8028005F - TPM_E_PERMANENTEK Handle = 0x80280061 - TPM_E_BAD_SIGNATURE Handle = 0x80280062 - TPM_E_NOCONTEXTSPACE Handle = 0x80280063 - TPM_20_E_ASYMMETRIC Handle = 0x80280081 - TPM_20_E_ATTRIBUTES Handle = 0x80280082 - TPM_20_E_HASH Handle = 0x80280083 - TPM_20_E_VALUE Handle = 0x80280084 - TPM_20_E_HIERARCHY Handle = 0x80280085 - TPM_20_E_KEY_SIZE Handle = 0x80280087 - TPM_20_E_MGF Handle = 0x80280088 - TPM_20_E_MODE Handle = 0x80280089 - TPM_20_E_TYPE Handle = 0x8028008A - TPM_20_E_HANDLE Handle = 0x8028008B - TPM_20_E_KDF Handle = 0x8028008C - TPM_20_E_RANGE Handle = 0x8028008D - TPM_20_E_AUTH_FAIL Handle = 0x8028008E - TPM_20_E_NONCE Handle = 0x8028008F - TPM_20_E_PP Handle = 0x80280090 - TPM_20_E_SCHEME Handle = 0x80280092 - TPM_20_E_SIZE Handle = 0x80280095 - TPM_20_E_SYMMETRIC Handle = 0x80280096 - TPM_20_E_TAG Handle = 0x80280097 - TPM_20_E_SELECTOR Handle = 0x80280098 - TPM_20_E_INSUFFICIENT Handle = 0x8028009A - TPM_20_E_SIGNATURE Handle = 0x8028009B - TPM_20_E_KEY Handle = 0x8028009C - TPM_20_E_POLICY_FAIL Handle = 0x8028009D - TPM_20_E_INTEGRITY Handle = 0x8028009F - TPM_20_E_TICKET Handle = 0x802800A0 - TPM_20_E_RESERVED_BITS Handle = 0x802800A1 - TPM_20_E_BAD_AUTH Handle = 0x802800A2 - TPM_20_E_EXPIRED Handle = 0x802800A3 - TPM_20_E_POLICY_CC Handle = 0x802800A4 - TPM_20_E_BINDING Handle = 0x802800A5 - TPM_20_E_CURVE Handle = 0x802800A6 - TPM_20_E_ECC_POINT Handle = 0x802800A7 - TPM_20_E_INITIALIZE Handle = 0x80280100 - TPM_20_E_FAILURE Handle = 0x80280101 - TPM_20_E_SEQUENCE Handle = 0x80280103 - TPM_20_E_PRIVATE Handle = 0x8028010B - TPM_20_E_HMAC Handle = 0x80280119 - TPM_20_E_DISABLED Handle = 0x80280120 - TPM_20_E_EXCLUSIVE Handle = 0x80280121 - TPM_20_E_ECC_CURVE Handle = 0x80280123 - TPM_20_E_AUTH_TYPE Handle = 0x80280124 - TPM_20_E_AUTH_MISSING Handle = 0x80280125 - TPM_20_E_POLICY Handle = 0x80280126 - TPM_20_E_PCR Handle = 0x80280127 - TPM_20_E_PCR_CHANGED Handle = 0x80280128 - TPM_20_E_UPGRADE Handle = 0x8028012D - TPM_20_E_TOO_MANY_CONTEXTS Handle = 0x8028012E - TPM_20_E_AUTH_UNAVAILABLE Handle = 0x8028012F - TPM_20_E_REBOOT Handle = 0x80280130 - TPM_20_E_UNBALANCED Handle = 0x80280131 - TPM_20_E_COMMAND_SIZE Handle = 0x80280142 - TPM_20_E_COMMAND_CODE Handle = 0x80280143 - TPM_20_E_AUTHSIZE Handle = 0x80280144 - TPM_20_E_AUTH_CONTEXT Handle = 0x80280145 - TPM_20_E_NV_RANGE Handle = 0x80280146 - TPM_20_E_NV_SIZE Handle = 0x80280147 - TPM_20_E_NV_LOCKED Handle = 0x80280148 - TPM_20_E_NV_AUTHORIZATION Handle = 0x80280149 - TPM_20_E_NV_UNINITIALIZED Handle = 0x8028014A - TPM_20_E_NV_SPACE Handle = 0x8028014B - TPM_20_E_NV_DEFINED Handle = 0x8028014C - TPM_20_E_BAD_CONTEXT Handle = 0x80280150 - TPM_20_E_CPHASH Handle = 0x80280151 - TPM_20_E_PARENT Handle = 0x80280152 - TPM_20_E_NEEDS_TEST Handle = 0x80280153 - TPM_20_E_NO_RESULT Handle = 0x80280154 - TPM_20_E_SENSITIVE Handle = 0x80280155 - TPM_E_COMMAND_BLOCKED Handle = 0x80280400 - TPM_E_INVALID_HANDLE Handle = 0x80280401 - TPM_E_DUPLICATE_VHANDLE Handle = 0x80280402 - TPM_E_EMBEDDED_COMMAND_BLOCKED Handle = 0x80280403 - TPM_E_EMBEDDED_COMMAND_UNSUPPORTED Handle = 0x80280404 - TPM_E_RETRY Handle = 0x80280800 - TPM_E_NEEDS_SELFTEST Handle = 0x80280801 - TPM_E_DOING_SELFTEST Handle = 0x80280802 - TPM_E_DEFEND_LOCK_RUNNING Handle = 0x80280803 - TPM_20_E_CONTEXT_GAP Handle = 0x80280901 - TPM_20_E_OBJECT_MEMORY Handle = 0x80280902 - TPM_20_E_SESSION_MEMORY Handle = 0x80280903 - TPM_20_E_MEMORY Handle = 0x80280904 - TPM_20_E_SESSION_HANDLES Handle = 0x80280905 - TPM_20_E_OBJECT_HANDLES Handle = 0x80280906 - TPM_20_E_LOCALITY Handle = 0x80280907 - TPM_20_E_YIELDED Handle = 0x80280908 - TPM_20_E_CANCELED Handle = 0x80280909 - TPM_20_E_TESTING Handle = 0x8028090A - TPM_20_E_NV_RATE Handle = 0x80280920 - TPM_20_E_LOCKOUT Handle = 0x80280921 - TPM_20_E_RETRY Handle = 0x80280922 - TPM_20_E_NV_UNAVAILABLE Handle = 0x80280923 - TBS_E_INTERNAL_ERROR Handle = 0x80284001 - TBS_E_BAD_PARAMETER Handle = 0x80284002 - TBS_E_INVALID_OUTPUT_POINTER Handle = 0x80284003 - TBS_E_INVALID_CONTEXT Handle = 0x80284004 - TBS_E_INSUFFICIENT_BUFFER Handle = 0x80284005 - TBS_E_IOERROR Handle = 0x80284006 - TBS_E_INVALID_CONTEXT_PARAM Handle = 0x80284007 - TBS_E_SERVICE_NOT_RUNNING Handle = 0x80284008 - TBS_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80284009 - TBS_E_TOO_MANY_RESOURCES Handle = 0x8028400A - TBS_E_SERVICE_START_PENDING Handle = 0x8028400B - TBS_E_PPI_NOT_SUPPORTED Handle = 0x8028400C - TBS_E_COMMAND_CANCELED Handle = 0x8028400D - TBS_E_BUFFER_TOO_LARGE Handle = 0x8028400E - TBS_E_TPM_NOT_FOUND Handle = 0x8028400F - TBS_E_SERVICE_DISABLED Handle = 0x80284010 - TBS_E_NO_EVENT_LOG Handle = 0x80284011 - TBS_E_ACCESS_DENIED Handle = 0x80284012 - TBS_E_PROVISIONING_NOT_ALLOWED Handle = 0x80284013 - TBS_E_PPI_FUNCTION_UNSUPPORTED Handle = 0x80284014 - TBS_E_OWNERAUTH_NOT_FOUND Handle = 0x80284015 - TBS_E_PROVISIONING_INCOMPLETE Handle = 0x80284016 - TPMAPI_E_INVALID_STATE Handle = 0x80290100 - TPMAPI_E_NOT_ENOUGH_DATA Handle = 0x80290101 - TPMAPI_E_TOO_MUCH_DATA Handle = 0x80290102 - TPMAPI_E_INVALID_OUTPUT_POINTER Handle = 0x80290103 - TPMAPI_E_INVALID_PARAMETER Handle = 0x80290104 - TPMAPI_E_OUT_OF_MEMORY Handle = 0x80290105 - TPMAPI_E_BUFFER_TOO_SMALL Handle = 0x80290106 - TPMAPI_E_INTERNAL_ERROR Handle = 0x80290107 - TPMAPI_E_ACCESS_DENIED Handle = 0x80290108 - TPMAPI_E_AUTHORIZATION_FAILED Handle = 0x80290109 - TPMAPI_E_INVALID_CONTEXT_HANDLE Handle = 0x8029010A - TPMAPI_E_TBS_COMMUNICATION_ERROR Handle = 0x8029010B - TPMAPI_E_TPM_COMMAND_ERROR Handle = 0x8029010C - TPMAPI_E_MESSAGE_TOO_LARGE Handle = 0x8029010D - TPMAPI_E_INVALID_ENCODING Handle = 0x8029010E - TPMAPI_E_INVALID_KEY_SIZE Handle = 0x8029010F - TPMAPI_E_ENCRYPTION_FAILED Handle = 0x80290110 - TPMAPI_E_INVALID_KEY_PARAMS Handle = 0x80290111 - TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB Handle = 0x80290112 - TPMAPI_E_INVALID_PCR_INDEX Handle = 0x80290113 - TPMAPI_E_INVALID_DELEGATE_BLOB Handle = 0x80290114 - TPMAPI_E_INVALID_CONTEXT_PARAMS Handle = 0x80290115 - TPMAPI_E_INVALID_KEY_BLOB Handle = 0x80290116 - TPMAPI_E_INVALID_PCR_DATA Handle = 0x80290117 - TPMAPI_E_INVALID_OWNER_AUTH Handle = 0x80290118 - TPMAPI_E_FIPS_RNG_CHECK_FAILED Handle = 0x80290119 - TPMAPI_E_EMPTY_TCG_LOG Handle = 0x8029011A - TPMAPI_E_INVALID_TCG_LOG_ENTRY Handle = 0x8029011B - TPMAPI_E_TCG_SEPARATOR_ABSENT Handle = 0x8029011C - TPMAPI_E_TCG_INVALID_DIGEST_ENTRY Handle = 0x8029011D - TPMAPI_E_POLICY_DENIES_OPERATION Handle = 0x8029011E - TPMAPI_E_NV_BITS_NOT_DEFINED Handle = 0x8029011F - TPMAPI_E_NV_BITS_NOT_READY Handle = 0x80290120 - TPMAPI_E_SEALING_KEY_NOT_AVAILABLE Handle = 0x80290121 - TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND Handle = 0x80290122 - TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE Handle = 0x80290123 - TPMAPI_E_OWNER_AUTH_NOT_NULL Handle = 0x80290124 - TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL Handle = 0x80290125 - TPMAPI_E_AUTHORIZATION_REVOKED Handle = 0x80290126 - TPMAPI_E_MALFORMED_AUTHORIZATION_KEY Handle = 0x80290127 - TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED Handle = 0x80290128 - TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE Handle = 0x80290129 - TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY Handle = 0x8029012A - TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER Handle = 0x8029012B - TPMAPI_E_SEALING_KEY_CHANGED Handle = 0x8029012C - TBSIMP_E_BUFFER_TOO_SMALL Handle = 0x80290200 - TBSIMP_E_CLEANUP_FAILED Handle = 0x80290201 - TBSIMP_E_INVALID_CONTEXT_HANDLE Handle = 0x80290202 - TBSIMP_E_INVALID_CONTEXT_PARAM Handle = 0x80290203 - TBSIMP_E_TPM_ERROR Handle = 0x80290204 - TBSIMP_E_HASH_BAD_KEY Handle = 0x80290205 - TBSIMP_E_DUPLICATE_VHANDLE Handle = 0x80290206 - TBSIMP_E_INVALID_OUTPUT_POINTER Handle = 0x80290207 - TBSIMP_E_INVALID_PARAMETER Handle = 0x80290208 - TBSIMP_E_RPC_INIT_FAILED Handle = 0x80290209 - TBSIMP_E_SCHEDULER_NOT_RUNNING Handle = 0x8029020A - TBSIMP_E_COMMAND_CANCELED Handle = 0x8029020B - TBSIMP_E_OUT_OF_MEMORY Handle = 0x8029020C - TBSIMP_E_LIST_NO_MORE_ITEMS Handle = 0x8029020D - TBSIMP_E_LIST_NOT_FOUND Handle = 0x8029020E - TBSIMP_E_NOT_ENOUGH_SPACE Handle = 0x8029020F - TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS Handle = 0x80290210 - TBSIMP_E_COMMAND_FAILED Handle = 0x80290211 - TBSIMP_E_UNKNOWN_ORDINAL Handle = 0x80290212 - TBSIMP_E_RESOURCE_EXPIRED Handle = 0x80290213 - TBSIMP_E_INVALID_RESOURCE Handle = 0x80290214 - TBSIMP_E_NOTHING_TO_UNLOAD Handle = 0x80290215 - TBSIMP_E_HASH_TABLE_FULL Handle = 0x80290216 - TBSIMP_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80290217 - TBSIMP_E_TOO_MANY_RESOURCES Handle = 0x80290218 - TBSIMP_E_PPI_NOT_SUPPORTED Handle = 0x80290219 - TBSIMP_E_TPM_INCOMPATIBLE Handle = 0x8029021A - TBSIMP_E_NO_EVENT_LOG Handle = 0x8029021B - TPM_E_PPI_ACPI_FAILURE Handle = 0x80290300 - TPM_E_PPI_USER_ABORT Handle = 0x80290301 - TPM_E_PPI_BIOS_FAILURE Handle = 0x80290302 - TPM_E_PPI_NOT_SUPPORTED Handle = 0x80290303 - TPM_E_PPI_BLOCKED_IN_BIOS Handle = 0x80290304 - TPM_E_PCP_ERROR_MASK Handle = 0x80290400 - TPM_E_PCP_DEVICE_NOT_READY Handle = 0x80290401 - TPM_E_PCP_INVALID_HANDLE Handle = 0x80290402 - TPM_E_PCP_INVALID_PARAMETER Handle = 0x80290403 - TPM_E_PCP_FLAG_NOT_SUPPORTED Handle = 0x80290404 - TPM_E_PCP_NOT_SUPPORTED Handle = 0x80290405 - TPM_E_PCP_BUFFER_TOO_SMALL Handle = 0x80290406 - TPM_E_PCP_INTERNAL_ERROR Handle = 0x80290407 - TPM_E_PCP_AUTHENTICATION_FAILED Handle = 0x80290408 - TPM_E_PCP_AUTHENTICATION_IGNORED Handle = 0x80290409 - TPM_E_PCP_POLICY_NOT_FOUND Handle = 0x8029040A - TPM_E_PCP_PROFILE_NOT_FOUND Handle = 0x8029040B - TPM_E_PCP_VALIDATION_FAILED Handle = 0x8029040C - TPM_E_PCP_WRONG_PARENT Handle = 0x8029040E - TPM_E_KEY_NOT_LOADED Handle = 0x8029040F - TPM_E_NO_KEY_CERTIFICATION Handle = 0x80290410 - TPM_E_KEY_NOT_FINALIZED Handle = 0x80290411 - TPM_E_ATTESTATION_CHALLENGE_NOT_SET Handle = 0x80290412 - TPM_E_NOT_PCR_BOUND Handle = 0x80290413 - TPM_E_KEY_ALREADY_FINALIZED Handle = 0x80290414 - TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED Handle = 0x80290415 - TPM_E_KEY_USAGE_POLICY_INVALID Handle = 0x80290416 - TPM_E_SOFT_KEY_ERROR Handle = 0x80290417 - TPM_E_KEY_NOT_AUTHENTICATED Handle = 0x80290418 - TPM_E_PCP_KEY_NOT_AIK Handle = 0x80290419 - TPM_E_KEY_NOT_SIGNING_KEY Handle = 0x8029041A - TPM_E_LOCKED_OUT Handle = 0x8029041B - TPM_E_CLAIM_TYPE_NOT_SUPPORTED Handle = 0x8029041C - TPM_E_VERSION_NOT_SUPPORTED Handle = 0x8029041D - TPM_E_BUFFER_LENGTH_MISMATCH Handle = 0x8029041E - TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED Handle = 0x8029041F - TPM_E_PCP_TICKET_MISSING Handle = 0x80290420 - TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED Handle = 0x80290421 - TPM_E_PCP_KEY_HANDLE_INVALIDATED Handle = 0x80290422 - TPM_E_PCP_UNSUPPORTED_PSS_SALT Handle = 0x40290423 - TPM_E_ZERO_EXHAUST_ENABLED Handle = 0x80290500 - PLA_E_DCS_NOT_FOUND Handle = 0x80300002 - PLA_E_DCS_IN_USE Handle = 0x803000AA - PLA_E_TOO_MANY_FOLDERS Handle = 0x80300045 - PLA_E_NO_MIN_DISK Handle = 0x80300070 - PLA_E_DCS_ALREADY_EXISTS Handle = 0x803000B7 - PLA_S_PROPERTY_IGNORED Handle = 0x00300100 - PLA_E_PROPERTY_CONFLICT Handle = 0x80300101 - PLA_E_DCS_SINGLETON_REQUIRED Handle = 0x80300102 - PLA_E_CREDENTIALS_REQUIRED Handle = 0x80300103 - PLA_E_DCS_NOT_RUNNING Handle = 0x80300104 - PLA_E_CONFLICT_INCL_EXCL_API Handle = 0x80300105 - PLA_E_NETWORK_EXE_NOT_VALID Handle = 0x80300106 - PLA_E_EXE_ALREADY_CONFIGURED Handle = 0x80300107 - PLA_E_EXE_PATH_NOT_VALID Handle = 0x80300108 - PLA_E_DC_ALREADY_EXISTS Handle = 0x80300109 - PLA_E_DCS_START_WAIT_TIMEOUT Handle = 0x8030010A - PLA_E_DC_START_WAIT_TIMEOUT Handle = 0x8030010B - PLA_E_REPORT_WAIT_TIMEOUT Handle = 0x8030010C - PLA_E_NO_DUPLICATES Handle = 0x8030010D - PLA_E_EXE_FULL_PATH_REQUIRED Handle = 0x8030010E - PLA_E_INVALID_SESSION_NAME Handle = 0x8030010F - PLA_E_PLA_CHANNEL_NOT_ENABLED Handle = 0x80300110 - PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED Handle = 0x80300111 - PLA_E_RULES_MANAGER_FAILED Handle = 0x80300112 - PLA_E_CABAPI_FAILURE Handle = 0x80300113 - FVE_E_LOCKED_VOLUME Handle = 0x80310000 - FVE_E_NOT_ENCRYPTED Handle = 0x80310001 - FVE_E_NO_TPM_BIOS Handle = 0x80310002 - FVE_E_NO_MBR_METRIC Handle = 0x80310003 - FVE_E_NO_BOOTSECTOR_METRIC Handle = 0x80310004 - FVE_E_NO_BOOTMGR_METRIC Handle = 0x80310005 - FVE_E_WRONG_BOOTMGR Handle = 0x80310006 - FVE_E_SECURE_KEY_REQUIRED Handle = 0x80310007 - FVE_E_NOT_ACTIVATED Handle = 0x80310008 - FVE_E_ACTION_NOT_ALLOWED Handle = 0x80310009 - FVE_E_AD_SCHEMA_NOT_INSTALLED Handle = 0x8031000A - FVE_E_AD_INVALID_DATATYPE Handle = 0x8031000B - FVE_E_AD_INVALID_DATASIZE Handle = 0x8031000C - FVE_E_AD_NO_VALUES Handle = 0x8031000D - FVE_E_AD_ATTR_NOT_SET Handle = 0x8031000E - FVE_E_AD_GUID_NOT_FOUND Handle = 0x8031000F - FVE_E_BAD_INFORMATION Handle = 0x80310010 - FVE_E_TOO_SMALL Handle = 0x80310011 - FVE_E_SYSTEM_VOLUME Handle = 0x80310012 - FVE_E_FAILED_WRONG_FS Handle = 0x80310013 - FVE_E_BAD_PARTITION_SIZE Handle = 0x80310014 - FVE_E_NOT_SUPPORTED Handle = 0x80310015 - FVE_E_BAD_DATA Handle = 0x80310016 - FVE_E_VOLUME_NOT_BOUND Handle = 0x80310017 - FVE_E_TPM_NOT_OWNED Handle = 0x80310018 - FVE_E_NOT_DATA_VOLUME Handle = 0x80310019 - FVE_E_AD_INSUFFICIENT_BUFFER Handle = 0x8031001A - FVE_E_CONV_READ Handle = 0x8031001B - FVE_E_CONV_WRITE Handle = 0x8031001C - FVE_E_KEY_REQUIRED Handle = 0x8031001D - FVE_E_CLUSTERING_NOT_SUPPORTED Handle = 0x8031001E - FVE_E_VOLUME_BOUND_ALREADY Handle = 0x8031001F - FVE_E_OS_NOT_PROTECTED Handle = 0x80310020 - FVE_E_PROTECTION_DISABLED Handle = 0x80310021 - FVE_E_RECOVERY_KEY_REQUIRED Handle = 0x80310022 - FVE_E_FOREIGN_VOLUME Handle = 0x80310023 - FVE_E_OVERLAPPED_UPDATE Handle = 0x80310024 - FVE_E_TPM_SRK_AUTH_NOT_ZERO Handle = 0x80310025 - FVE_E_FAILED_SECTOR_SIZE Handle = 0x80310026 - FVE_E_FAILED_AUTHENTICATION Handle = 0x80310027 - FVE_E_NOT_OS_VOLUME Handle = 0x80310028 - FVE_E_AUTOUNLOCK_ENABLED Handle = 0x80310029 - FVE_E_WRONG_BOOTSECTOR Handle = 0x8031002A - FVE_E_WRONG_SYSTEM_FS Handle = 0x8031002B - FVE_E_POLICY_PASSWORD_REQUIRED Handle = 0x8031002C - FVE_E_CANNOT_SET_FVEK_ENCRYPTED Handle = 0x8031002D - FVE_E_CANNOT_ENCRYPT_NO_KEY Handle = 0x8031002E - FVE_E_BOOTABLE_CDDVD Handle = 0x80310030 - FVE_E_PROTECTOR_EXISTS Handle = 0x80310031 - FVE_E_RELATIVE_PATH Handle = 0x80310032 - FVE_E_PROTECTOR_NOT_FOUND Handle = 0x80310033 - FVE_E_INVALID_KEY_FORMAT Handle = 0x80310034 - FVE_E_INVALID_PASSWORD_FORMAT Handle = 0x80310035 - FVE_E_FIPS_RNG_CHECK_FAILED Handle = 0x80310036 - FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD Handle = 0x80310037 - FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT Handle = 0x80310038 - FVE_E_NOT_DECRYPTED Handle = 0x80310039 - FVE_E_INVALID_PROTECTOR_TYPE Handle = 0x8031003A - FVE_E_NO_PROTECTORS_TO_TEST Handle = 0x8031003B - FVE_E_KEYFILE_NOT_FOUND Handle = 0x8031003C - FVE_E_KEYFILE_INVALID Handle = 0x8031003D - FVE_E_KEYFILE_NO_VMK Handle = 0x8031003E - FVE_E_TPM_DISABLED Handle = 0x8031003F - FVE_E_NOT_ALLOWED_IN_SAFE_MODE Handle = 0x80310040 - FVE_E_TPM_INVALID_PCR Handle = 0x80310041 - FVE_E_TPM_NO_VMK Handle = 0x80310042 - FVE_E_PIN_INVALID Handle = 0x80310043 - FVE_E_AUTH_INVALID_APPLICATION Handle = 0x80310044 - FVE_E_AUTH_INVALID_CONFIG Handle = 0x80310045 - FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED Handle = 0x80310046 - FVE_E_FS_NOT_EXTENDED Handle = 0x80310047 - FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED Handle = 0x80310048 - FVE_E_NO_LICENSE Handle = 0x80310049 - FVE_E_NOT_ON_STACK Handle = 0x8031004A - FVE_E_FS_MOUNTED Handle = 0x8031004B - FVE_E_TOKEN_NOT_IMPERSONATED Handle = 0x8031004C - FVE_E_DRY_RUN_FAILED Handle = 0x8031004D - FVE_E_REBOOT_REQUIRED Handle = 0x8031004E - FVE_E_DEBUGGER_ENABLED Handle = 0x8031004F - FVE_E_RAW_ACCESS Handle = 0x80310050 - FVE_E_RAW_BLOCKED Handle = 0x80310051 - FVE_E_BCD_APPLICATIONS_PATH_INCORRECT Handle = 0x80310052 - FVE_E_NOT_ALLOWED_IN_VERSION Handle = 0x80310053 - FVE_E_NO_AUTOUNLOCK_MASTER_KEY Handle = 0x80310054 - FVE_E_MOR_FAILED Handle = 0x80310055 - FVE_E_HIDDEN_VOLUME Handle = 0x80310056 - FVE_E_TRANSIENT_STATE Handle = 0x80310057 - FVE_E_PUBKEY_NOT_ALLOWED Handle = 0x80310058 - FVE_E_VOLUME_HANDLE_OPEN Handle = 0x80310059 - FVE_E_NO_FEATURE_LICENSE Handle = 0x8031005A - FVE_E_INVALID_STARTUP_OPTIONS Handle = 0x8031005B - FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED Handle = 0x8031005C - FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED Handle = 0x8031005D - FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED Handle = 0x8031005E - FVE_E_POLICY_RECOVERY_KEY_REQUIRED Handle = 0x8031005F - FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED Handle = 0x80310060 - FVE_E_POLICY_STARTUP_PIN_REQUIRED Handle = 0x80310061 - FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED Handle = 0x80310062 - FVE_E_POLICY_STARTUP_KEY_REQUIRED Handle = 0x80310063 - FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED Handle = 0x80310064 - FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED Handle = 0x80310065 - FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED Handle = 0x80310066 - FVE_E_POLICY_STARTUP_TPM_REQUIRED Handle = 0x80310067 - FVE_E_POLICY_INVALID_PIN_LENGTH Handle = 0x80310068 - FVE_E_KEY_PROTECTOR_NOT_SUPPORTED Handle = 0x80310069 - FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006A - FVE_E_POLICY_PASSPHRASE_REQUIRED Handle = 0x8031006B - FVE_E_FIPS_PREVENTS_PASSPHRASE Handle = 0x8031006C - FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006D - FVE_E_INVALID_BITLOCKER_OID Handle = 0x8031006E - FVE_E_VOLUME_TOO_SMALL Handle = 0x8031006F - FVE_E_DV_NOT_SUPPORTED_ON_FS Handle = 0x80310070 - FVE_E_DV_NOT_ALLOWED_BY_GP Handle = 0x80310071 - FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED Handle = 0x80310072 - FVE_E_POLICY_USER_CERTIFICATE_REQUIRED Handle = 0x80310073 - FVE_E_POLICY_USER_CERT_MUST_BE_HW Handle = 0x80310074 - FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310075 - FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310076 - FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED Handle = 0x80310077 - FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED Handle = 0x80310078 - FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED Handle = 0x80310079 - FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH Handle = 0x80310080 - FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE Handle = 0x80310081 - FVE_E_RECOVERY_PARTITION Handle = 0x80310082 - FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON Handle = 0x80310083 - FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON Handle = 0x80310084 - FVE_E_NON_BITLOCKER_OID Handle = 0x80310085 - FVE_E_POLICY_PROHIBITS_SELFSIGNED Handle = 0x80310086 - FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED Handle = 0x80310087 - FVE_E_CONV_RECOVERY_FAILED Handle = 0x80310088 - FVE_E_VIRTUALIZED_SPACE_TOO_BIG Handle = 0x80310089 - FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON Handle = 0x80310090 - FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON Handle = 0x80310091 - FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON Handle = 0x80310092 - FVE_E_NON_BITLOCKER_KU Handle = 0x80310093 - FVE_E_PRIVATEKEY_AUTH_FAILED Handle = 0x80310094 - FVE_E_REMOVAL_OF_DRA_FAILED Handle = 0x80310095 - FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME Handle = 0x80310096 - FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME Handle = 0x80310097 - FVE_E_FIPS_HASH_KDF_NOT_ALLOWED Handle = 0x80310098 - FVE_E_ENH_PIN_INVALID Handle = 0x80310099 - FVE_E_INVALID_PIN_CHARS Handle = 0x8031009A - FVE_E_INVALID_DATUM_TYPE Handle = 0x8031009B - FVE_E_EFI_ONLY Handle = 0x8031009C - FVE_E_MULTIPLE_NKP_CERTS Handle = 0x8031009D - FVE_E_REMOVAL_OF_NKP_FAILED Handle = 0x8031009E - FVE_E_INVALID_NKP_CERT Handle = 0x8031009F - FVE_E_NO_EXISTING_PIN Handle = 0x803100A0 - FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH Handle = 0x803100A1 - FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100A2 - FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED Handle = 0x803100A3 - FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII Handle = 0x803100A4 - FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A5 - FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A6 - FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE Handle = 0x803100A7 - FVE_E_NO_EXISTING_PASSPHRASE Handle = 0x803100A8 - FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH Handle = 0x803100A9 - FVE_E_PASSPHRASE_TOO_LONG Handle = 0x803100AA - FVE_E_NO_PASSPHRASE_WITH_TPM Handle = 0x803100AB - FVE_E_NO_TPM_WITH_PASSPHRASE Handle = 0x803100AC - FVE_E_NOT_ALLOWED_ON_CSV_STACK Handle = 0x803100AD - FVE_E_NOT_ALLOWED_ON_CLUSTER Handle = 0x803100AE - FVE_E_EDRIVE_NO_FAILOVER_TO_SW Handle = 0x803100AF - FVE_E_EDRIVE_BAND_IN_USE Handle = 0x803100B0 - FVE_E_EDRIVE_DISALLOWED_BY_GP Handle = 0x803100B1 - FVE_E_EDRIVE_INCOMPATIBLE_VOLUME Handle = 0x803100B2 - FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING Handle = 0x803100B3 - FVE_E_EDRIVE_DV_NOT_SUPPORTED Handle = 0x803100B4 - FVE_E_NO_PREBOOT_KEYBOARD_DETECTED Handle = 0x803100B5 - FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED Handle = 0x803100B6 - FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE Handle = 0x803100B7 - FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE Handle = 0x803100B8 - FVE_E_WIPE_CANCEL_NOT_APPLICABLE Handle = 0x803100B9 - FVE_E_SECUREBOOT_DISABLED Handle = 0x803100BA - FVE_E_SECUREBOOT_CONFIGURATION_INVALID Handle = 0x803100BB - FVE_E_EDRIVE_DRY_RUN_FAILED Handle = 0x803100BC - FVE_E_SHADOW_COPY_PRESENT Handle = 0x803100BD - FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS Handle = 0x803100BE - FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE Handle = 0x803100BF - FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED Handle = 0x803100C0 - FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100C1 - FVE_E_LIVEID_ACCOUNT_SUSPENDED Handle = 0x803100C2 - FVE_E_LIVEID_ACCOUNT_BLOCKED Handle = 0x803100C3 - FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x803100C4 - FVE_E_DE_FIXED_DATA_NOT_SUPPORTED Handle = 0x803100C5 - FVE_E_DE_HARDWARE_NOT_COMPLIANT Handle = 0x803100C6 - FVE_E_DE_WINRE_NOT_CONFIGURED Handle = 0x803100C7 - FVE_E_DE_PROTECTION_SUSPENDED Handle = 0x803100C8 - FVE_E_DE_OS_VOLUME_NOT_PROTECTED Handle = 0x803100C9 - FVE_E_DE_DEVICE_LOCKEDOUT Handle = 0x803100CA - FVE_E_DE_PROTECTION_NOT_YET_ENABLED Handle = 0x803100CB - FVE_E_INVALID_PIN_CHARS_DETAILED Handle = 0x803100CC - FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE Handle = 0x803100CD - FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH Handle = 0x803100CE - FVE_E_BUFFER_TOO_LARGE Handle = 0x803100CF - FVE_E_NO_SUCH_CAPABILITY_ON_TARGET Handle = 0x803100D0 - FVE_E_DE_PREVENTED_FOR_OS Handle = 0x803100D1 - FVE_E_DE_VOLUME_OPTED_OUT Handle = 0x803100D2 - FVE_E_DE_VOLUME_NOT_SUPPORTED Handle = 0x803100D3 - FVE_E_EOW_NOT_SUPPORTED_IN_VERSION Handle = 0x803100D4 - FVE_E_ADBACKUP_NOT_ENABLED Handle = 0x803100D5 - FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT Handle = 0x803100D6 - FVE_E_NOT_DE_VOLUME Handle = 0x803100D7 - FVE_E_PROTECTION_CANNOT_BE_DISABLED Handle = 0x803100D8 - FVE_E_OSV_KSR_NOT_ALLOWED Handle = 0x803100D9 - FWP_E_CALLOUT_NOT_FOUND Handle = 0x80320001 - FWP_E_CONDITION_NOT_FOUND Handle = 0x80320002 - FWP_E_FILTER_NOT_FOUND Handle = 0x80320003 - FWP_E_LAYER_NOT_FOUND Handle = 0x80320004 - FWP_E_PROVIDER_NOT_FOUND Handle = 0x80320005 - FWP_E_PROVIDER_CONTEXT_NOT_FOUND Handle = 0x80320006 - FWP_E_SUBLAYER_NOT_FOUND Handle = 0x80320007 - FWP_E_NOT_FOUND Handle = 0x80320008 - FWP_E_ALREADY_EXISTS Handle = 0x80320009 - FWP_E_IN_USE Handle = 0x8032000A - FWP_E_DYNAMIC_SESSION_IN_PROGRESS Handle = 0x8032000B - FWP_E_WRONG_SESSION Handle = 0x8032000C - FWP_E_NO_TXN_IN_PROGRESS Handle = 0x8032000D - FWP_E_TXN_IN_PROGRESS Handle = 0x8032000E - FWP_E_TXN_ABORTED Handle = 0x8032000F - FWP_E_SESSION_ABORTED Handle = 0x80320010 - FWP_E_INCOMPATIBLE_TXN Handle = 0x80320011 - FWP_E_TIMEOUT Handle = 0x80320012 - FWP_E_NET_EVENTS_DISABLED Handle = 0x80320013 - FWP_E_INCOMPATIBLE_LAYER Handle = 0x80320014 - FWP_E_KM_CLIENTS_ONLY Handle = 0x80320015 - FWP_E_LIFETIME_MISMATCH Handle = 0x80320016 - FWP_E_BUILTIN_OBJECT Handle = 0x80320017 - FWP_E_TOO_MANY_CALLOUTS Handle = 0x80320018 - FWP_E_NOTIFICATION_DROPPED Handle = 0x80320019 - FWP_E_TRAFFIC_MISMATCH Handle = 0x8032001A - FWP_E_INCOMPATIBLE_SA_STATE Handle = 0x8032001B - FWP_E_NULL_POINTER Handle = 0x8032001C - FWP_E_INVALID_ENUMERATOR Handle = 0x8032001D - FWP_E_INVALID_FLAGS Handle = 0x8032001E - FWP_E_INVALID_NET_MASK Handle = 0x8032001F - FWP_E_INVALID_RANGE Handle = 0x80320020 - FWP_E_INVALID_INTERVAL Handle = 0x80320021 - FWP_E_ZERO_LENGTH_ARRAY Handle = 0x80320022 - FWP_E_NULL_DISPLAY_NAME Handle = 0x80320023 - FWP_E_INVALID_ACTION_TYPE Handle = 0x80320024 - FWP_E_INVALID_WEIGHT Handle = 0x80320025 - FWP_E_MATCH_TYPE_MISMATCH Handle = 0x80320026 - FWP_E_TYPE_MISMATCH Handle = 0x80320027 - FWP_E_OUT_OF_BOUNDS Handle = 0x80320028 - FWP_E_RESERVED Handle = 0x80320029 - FWP_E_DUPLICATE_CONDITION Handle = 0x8032002A - FWP_E_DUPLICATE_KEYMOD Handle = 0x8032002B - FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002C - FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER Handle = 0x8032002D - FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002E - FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT Handle = 0x8032002F - FWP_E_INCOMPATIBLE_AUTH_METHOD Handle = 0x80320030 - FWP_E_INCOMPATIBLE_DH_GROUP Handle = 0x80320031 - FWP_E_EM_NOT_SUPPORTED Handle = 0x80320032 - FWP_E_NEVER_MATCH Handle = 0x80320033 - FWP_E_PROVIDER_CONTEXT_MISMATCH Handle = 0x80320034 - FWP_E_INVALID_PARAMETER Handle = 0x80320035 - FWP_E_TOO_MANY_SUBLAYERS Handle = 0x80320036 - FWP_E_CALLOUT_NOTIFICATION_FAILED Handle = 0x80320037 - FWP_E_INVALID_AUTH_TRANSFORM Handle = 0x80320038 - FWP_E_INVALID_CIPHER_TRANSFORM Handle = 0x80320039 - FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM Handle = 0x8032003A - FWP_E_INVALID_TRANSFORM_COMBINATION Handle = 0x8032003B - FWP_E_DUPLICATE_AUTH_METHOD Handle = 0x8032003C - FWP_E_INVALID_TUNNEL_ENDPOINT Handle = 0x8032003D - FWP_E_L2_DRIVER_NOT_READY Handle = 0x8032003E - FWP_E_KEY_DICTATOR_ALREADY_REGISTERED Handle = 0x8032003F - FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL Handle = 0x80320040 - FWP_E_CONNECTIONS_DISABLED Handle = 0x80320041 - FWP_E_INVALID_DNS_NAME Handle = 0x80320042 - FWP_E_STILL_ON Handle = 0x80320043 - FWP_E_IKEEXT_NOT_RUNNING Handle = 0x80320044 - FWP_E_DROP_NOICMP Handle = 0x80320104 - WS_S_ASYNC Handle = 0x003D0000 - WS_S_END Handle = 0x003D0001 - WS_E_INVALID_FORMAT Handle = 0x803D0000 - WS_E_OBJECT_FAULTED Handle = 0x803D0001 - WS_E_NUMERIC_OVERFLOW Handle = 0x803D0002 - WS_E_INVALID_OPERATION Handle = 0x803D0003 - WS_E_OPERATION_ABORTED Handle = 0x803D0004 - WS_E_ENDPOINT_ACCESS_DENIED Handle = 0x803D0005 - WS_E_OPERATION_TIMED_OUT Handle = 0x803D0006 - WS_E_OPERATION_ABANDONED Handle = 0x803D0007 - WS_E_QUOTA_EXCEEDED Handle = 0x803D0008 - WS_E_NO_TRANSLATION_AVAILABLE Handle = 0x803D0009 - WS_E_SECURITY_VERIFICATION_FAILURE Handle = 0x803D000A - WS_E_ADDRESS_IN_USE Handle = 0x803D000B - WS_E_ADDRESS_NOT_AVAILABLE Handle = 0x803D000C - WS_E_ENDPOINT_NOT_FOUND Handle = 0x803D000D - WS_E_ENDPOINT_NOT_AVAILABLE Handle = 0x803D000E - WS_E_ENDPOINT_FAILURE Handle = 0x803D000F - WS_E_ENDPOINT_UNREACHABLE Handle = 0x803D0010 - WS_E_ENDPOINT_ACTION_NOT_SUPPORTED Handle = 0x803D0011 - WS_E_ENDPOINT_TOO_BUSY Handle = 0x803D0012 - WS_E_ENDPOINT_FAULT_RECEIVED Handle = 0x803D0013 - WS_E_ENDPOINT_DISCONNECTED Handle = 0x803D0014 - WS_E_PROXY_FAILURE Handle = 0x803D0015 - WS_E_PROXY_ACCESS_DENIED Handle = 0x803D0016 - WS_E_NOT_SUPPORTED Handle = 0x803D0017 - WS_E_PROXY_REQUIRES_BASIC_AUTH Handle = 0x803D0018 - WS_E_PROXY_REQUIRES_DIGEST_AUTH Handle = 0x803D0019 - WS_E_PROXY_REQUIRES_NTLM_AUTH Handle = 0x803D001A - WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001B - WS_E_SERVER_REQUIRES_BASIC_AUTH Handle = 0x803D001C - WS_E_SERVER_REQUIRES_DIGEST_AUTH Handle = 0x803D001D - WS_E_SERVER_REQUIRES_NTLM_AUTH Handle = 0x803D001E - WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001F - WS_E_INVALID_ENDPOINT_URL Handle = 0x803D0020 - WS_E_OTHER Handle = 0x803D0021 - WS_E_SECURITY_TOKEN_EXPIRED Handle = 0x803D0022 - WS_E_SECURITY_SYSTEM_FAILURE Handle = 0x803D0023 - ERROR_NDIS_INTERFACE_CLOSING syscall.Errno = 0x80340002 - ERROR_NDIS_BAD_VERSION syscall.Errno = 0x80340004 - ERROR_NDIS_BAD_CHARACTERISTICS syscall.Errno = 0x80340005 - ERROR_NDIS_ADAPTER_NOT_FOUND syscall.Errno = 0x80340006 - ERROR_NDIS_OPEN_FAILED syscall.Errno = 0x80340007 - ERROR_NDIS_DEVICE_FAILED syscall.Errno = 0x80340008 - ERROR_NDIS_MULTICAST_FULL syscall.Errno = 0x80340009 - ERROR_NDIS_MULTICAST_EXISTS syscall.Errno = 0x8034000A - ERROR_NDIS_MULTICAST_NOT_FOUND syscall.Errno = 0x8034000B - ERROR_NDIS_REQUEST_ABORTED syscall.Errno = 0x8034000C - ERROR_NDIS_RESET_IN_PROGRESS syscall.Errno = 0x8034000D - ERROR_NDIS_NOT_SUPPORTED syscall.Errno = 0x803400BB - ERROR_NDIS_INVALID_PACKET syscall.Errno = 0x8034000F - ERROR_NDIS_ADAPTER_NOT_READY syscall.Errno = 0x80340011 - ERROR_NDIS_INVALID_LENGTH syscall.Errno = 0x80340014 - ERROR_NDIS_INVALID_DATA syscall.Errno = 0x80340015 - ERROR_NDIS_BUFFER_TOO_SHORT syscall.Errno = 0x80340016 - ERROR_NDIS_INVALID_OID syscall.Errno = 0x80340017 - ERROR_NDIS_ADAPTER_REMOVED syscall.Errno = 0x80340018 - ERROR_NDIS_UNSUPPORTED_MEDIA syscall.Errno = 0x80340019 - ERROR_NDIS_GROUP_ADDRESS_IN_USE syscall.Errno = 0x8034001A - ERROR_NDIS_FILE_NOT_FOUND syscall.Errno = 0x8034001B - ERROR_NDIS_ERROR_READING_FILE syscall.Errno = 0x8034001C - ERROR_NDIS_ALREADY_MAPPED syscall.Errno = 0x8034001D - ERROR_NDIS_RESOURCE_CONFLICT syscall.Errno = 0x8034001E - ERROR_NDIS_MEDIA_DISCONNECTED syscall.Errno = 0x8034001F - ERROR_NDIS_INVALID_ADDRESS syscall.Errno = 0x80340022 - ERROR_NDIS_INVALID_DEVICE_REQUEST syscall.Errno = 0x80340010 - ERROR_NDIS_PAUSED syscall.Errno = 0x8034002A - ERROR_NDIS_INTERFACE_NOT_FOUND syscall.Errno = 0x8034002B - ERROR_NDIS_UNSUPPORTED_REVISION syscall.Errno = 0x8034002C - ERROR_NDIS_INVALID_PORT syscall.Errno = 0x8034002D - ERROR_NDIS_INVALID_PORT_STATE syscall.Errno = 0x8034002E - ERROR_NDIS_LOW_POWER_STATE syscall.Errno = 0x8034002F - ERROR_NDIS_REINIT_REQUIRED syscall.Errno = 0x80340030 - ERROR_NDIS_NO_QUEUES syscall.Errno = 0x80340031 - ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED syscall.Errno = 0x80342000 - ERROR_NDIS_DOT11_MEDIA_IN_USE syscall.Errno = 0x80342001 - ERROR_NDIS_DOT11_POWER_STATE_INVALID syscall.Errno = 0x80342002 - ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL syscall.Errno = 0x80342003 - ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL syscall.Errno = 0x80342004 - ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342005 - ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342006 - ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED syscall.Errno = 0x80342007 - ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED syscall.Errno = 0x80342008 - ERROR_NDIS_INDICATION_REQUIRED syscall.Errno = 0x00340001 - ERROR_NDIS_OFFLOAD_POLICY syscall.Errno = 0xC034100F - ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED syscall.Errno = 0xC0341012 - ERROR_NDIS_OFFLOAD_PATH_REJECTED syscall.Errno = 0xC0341013 - ERROR_HV_INVALID_HYPERCALL_CODE syscall.Errno = 0xC0350002 - ERROR_HV_INVALID_HYPERCALL_INPUT syscall.Errno = 0xC0350003 - ERROR_HV_INVALID_ALIGNMENT syscall.Errno = 0xC0350004 - ERROR_HV_INVALID_PARAMETER syscall.Errno = 0xC0350005 - ERROR_HV_ACCESS_DENIED syscall.Errno = 0xC0350006 - ERROR_HV_INVALID_PARTITION_STATE syscall.Errno = 0xC0350007 - ERROR_HV_OPERATION_DENIED syscall.Errno = 0xC0350008 - ERROR_HV_UNKNOWN_PROPERTY syscall.Errno = 0xC0350009 - ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE syscall.Errno = 0xC035000A - ERROR_HV_INSUFFICIENT_MEMORY syscall.Errno = 0xC035000B - ERROR_HV_PARTITION_TOO_DEEP syscall.Errno = 0xC035000C - ERROR_HV_INVALID_PARTITION_ID syscall.Errno = 0xC035000D - ERROR_HV_INVALID_VP_INDEX syscall.Errno = 0xC035000E - ERROR_HV_INVALID_PORT_ID syscall.Errno = 0xC0350011 - ERROR_HV_INVALID_CONNECTION_ID syscall.Errno = 0xC0350012 - ERROR_HV_INSUFFICIENT_BUFFERS syscall.Errno = 0xC0350013 - ERROR_HV_NOT_ACKNOWLEDGED syscall.Errno = 0xC0350014 - ERROR_HV_INVALID_VP_STATE syscall.Errno = 0xC0350015 - ERROR_HV_ACKNOWLEDGED syscall.Errno = 0xC0350016 - ERROR_HV_INVALID_SAVE_RESTORE_STATE syscall.Errno = 0xC0350017 - ERROR_HV_INVALID_SYNIC_STATE syscall.Errno = 0xC0350018 - ERROR_HV_OBJECT_IN_USE syscall.Errno = 0xC0350019 - ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO syscall.Errno = 0xC035001A - ERROR_HV_NO_DATA syscall.Errno = 0xC035001B - ERROR_HV_INACTIVE syscall.Errno = 0xC035001C - ERROR_HV_NO_RESOURCES syscall.Errno = 0xC035001D - ERROR_HV_FEATURE_UNAVAILABLE syscall.Errno = 0xC035001E - ERROR_HV_INSUFFICIENT_BUFFER syscall.Errno = 0xC0350033 - ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS syscall.Errno = 0xC0350038 - ERROR_HV_CPUID_FEATURE_VALIDATION syscall.Errno = 0xC035003C - ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION syscall.Errno = 0xC035003D - ERROR_HV_PROCESSOR_STARTUP_TIMEOUT syscall.Errno = 0xC035003E - ERROR_HV_SMX_ENABLED syscall.Errno = 0xC035003F - ERROR_HV_INVALID_LP_INDEX syscall.Errno = 0xC0350041 - ERROR_HV_INVALID_REGISTER_VALUE syscall.Errno = 0xC0350050 - ERROR_HV_INVALID_VTL_STATE syscall.Errno = 0xC0350051 - ERROR_HV_NX_NOT_DETECTED syscall.Errno = 0xC0350055 - ERROR_HV_INVALID_DEVICE_ID syscall.Errno = 0xC0350057 - ERROR_HV_INVALID_DEVICE_STATE syscall.Errno = 0xC0350058 - ERROR_HV_PENDING_PAGE_REQUESTS syscall.Errno = 0x00350059 - ERROR_HV_PAGE_REQUEST_INVALID syscall.Errno = 0xC0350060 - ERROR_HV_INVALID_CPU_GROUP_ID syscall.Errno = 0xC035006F - ERROR_HV_INVALID_CPU_GROUP_STATE syscall.Errno = 0xC0350070 - ERROR_HV_OPERATION_FAILED syscall.Errno = 0xC0350071 - ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE syscall.Errno = 0xC0350072 - ERROR_HV_INSUFFICIENT_ROOT_MEMORY syscall.Errno = 0xC0350073 - ERROR_HV_NOT_PRESENT syscall.Errno = 0xC0351000 - ERROR_VID_DUPLICATE_HANDLER syscall.Errno = 0xC0370001 - ERROR_VID_TOO_MANY_HANDLERS syscall.Errno = 0xC0370002 - ERROR_VID_QUEUE_FULL syscall.Errno = 0xC0370003 - ERROR_VID_HANDLER_NOT_PRESENT syscall.Errno = 0xC0370004 - ERROR_VID_INVALID_OBJECT_NAME syscall.Errno = 0xC0370005 - ERROR_VID_PARTITION_NAME_TOO_LONG syscall.Errno = 0xC0370006 - ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG syscall.Errno = 0xC0370007 - ERROR_VID_PARTITION_ALREADY_EXISTS syscall.Errno = 0xC0370008 - ERROR_VID_PARTITION_DOES_NOT_EXIST syscall.Errno = 0xC0370009 - ERROR_VID_PARTITION_NAME_NOT_FOUND syscall.Errno = 0xC037000A - ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS syscall.Errno = 0xC037000B - ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT syscall.Errno = 0xC037000C - ERROR_VID_MB_STILL_REFERENCED syscall.Errno = 0xC037000D - ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED syscall.Errno = 0xC037000E - ERROR_VID_INVALID_NUMA_SETTINGS syscall.Errno = 0xC037000F - ERROR_VID_INVALID_NUMA_NODE_INDEX syscall.Errno = 0xC0370010 - ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED syscall.Errno = 0xC0370011 - ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE syscall.Errno = 0xC0370012 - ERROR_VID_PAGE_RANGE_OVERFLOW syscall.Errno = 0xC0370013 - ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE syscall.Errno = 0xC0370014 - ERROR_VID_INVALID_GPA_RANGE_HANDLE syscall.Errno = 0xC0370015 - ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE syscall.Errno = 0xC0370016 - ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED syscall.Errno = 0xC0370017 - ERROR_VID_INVALID_PPM_HANDLE syscall.Errno = 0xC0370018 - ERROR_VID_MBPS_ARE_LOCKED syscall.Errno = 0xC0370019 - ERROR_VID_MESSAGE_QUEUE_CLOSED syscall.Errno = 0xC037001A - ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED syscall.Errno = 0xC037001B - ERROR_VID_STOP_PENDING syscall.Errno = 0xC037001C - ERROR_VID_INVALID_PROCESSOR_STATE syscall.Errno = 0xC037001D - ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT syscall.Errno = 0xC037001E - ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED syscall.Errno = 0xC037001F - ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET syscall.Errno = 0xC0370020 - ERROR_VID_MMIO_RANGE_DESTROYED syscall.Errno = 0xC0370021 - ERROR_VID_INVALID_CHILD_GPA_PAGE_SET syscall.Errno = 0xC0370022 - ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED syscall.Errno = 0xC0370023 - ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL syscall.Errno = 0xC0370024 - ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE syscall.Errno = 0xC0370025 - ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT syscall.Errno = 0xC0370026 - ERROR_VID_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370027 - ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM syscall.Errno = 0xC0370028 - ERROR_VID_SAVED_STATE_INCOMPATIBLE syscall.Errno = 0xC0370029 - ERROR_VID_VTL_ACCESS_DENIED syscall.Errno = 0xC037002A - ERROR_VMCOMPUTE_TERMINATED_DURING_START syscall.Errno = 0xC0370100 - ERROR_VMCOMPUTE_IMAGE_MISMATCH syscall.Errno = 0xC0370101 - ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED syscall.Errno = 0xC0370102 - ERROR_VMCOMPUTE_OPERATION_PENDING syscall.Errno = 0xC0370103 - ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS syscall.Errno = 0xC0370104 - ERROR_VMCOMPUTE_INVALID_STATE syscall.Errno = 0xC0370105 - ERROR_VMCOMPUTE_UNEXPECTED_EXIT syscall.Errno = 0xC0370106 - ERROR_VMCOMPUTE_TERMINATED syscall.Errno = 0xC0370107 - ERROR_VMCOMPUTE_CONNECT_FAILED syscall.Errno = 0xC0370108 - ERROR_VMCOMPUTE_TIMEOUT syscall.Errno = 0xC0370109 - ERROR_VMCOMPUTE_CONNECTION_CLOSED syscall.Errno = 0xC037010A - ERROR_VMCOMPUTE_UNKNOWN_MESSAGE syscall.Errno = 0xC037010B - ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION syscall.Errno = 0xC037010C - ERROR_VMCOMPUTE_INVALID_JSON syscall.Errno = 0xC037010D - ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND syscall.Errno = 0xC037010E - ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS syscall.Errno = 0xC037010F - ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED syscall.Errno = 0xC0370110 - ERROR_VMCOMPUTE_PROTOCOL_ERROR syscall.Errno = 0xC0370111 - ERROR_VMCOMPUTE_INVALID_LAYER syscall.Errno = 0xC0370112 - ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED syscall.Errno = 0xC0370113 - HCS_E_TERMINATED_DURING_START Handle = 0x80370100 - HCS_E_IMAGE_MISMATCH Handle = 0x80370101 - HCS_E_HYPERV_NOT_INSTALLED Handle = 0x80370102 - HCS_E_INVALID_STATE Handle = 0x80370105 - HCS_E_UNEXPECTED_EXIT Handle = 0x80370106 - HCS_E_TERMINATED Handle = 0x80370107 - HCS_E_CONNECT_FAILED Handle = 0x80370108 - HCS_E_CONNECTION_TIMEOUT Handle = 0x80370109 - HCS_E_CONNECTION_CLOSED Handle = 0x8037010A - HCS_E_UNKNOWN_MESSAGE Handle = 0x8037010B - HCS_E_UNSUPPORTED_PROTOCOL_VERSION Handle = 0x8037010C - HCS_E_INVALID_JSON Handle = 0x8037010D - HCS_E_SYSTEM_NOT_FOUND Handle = 0x8037010E - HCS_E_SYSTEM_ALREADY_EXISTS Handle = 0x8037010F - HCS_E_SYSTEM_ALREADY_STOPPED Handle = 0x80370110 - HCS_E_PROTOCOL_ERROR Handle = 0x80370111 - HCS_E_INVALID_LAYER Handle = 0x80370112 - HCS_E_WINDOWS_INSIDER_REQUIRED Handle = 0x80370113 - HCS_E_SERVICE_NOT_AVAILABLE Handle = 0x80370114 - HCS_E_OPERATION_NOT_STARTED Handle = 0x80370115 - HCS_E_OPERATION_ALREADY_STARTED Handle = 0x80370116 - HCS_E_OPERATION_PENDING Handle = 0x80370117 - HCS_E_OPERATION_TIMEOUT Handle = 0x80370118 - HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET Handle = 0x80370119 - HCS_E_OPERATION_RESULT_ALLOCATION_FAILED Handle = 0x8037011A - HCS_E_ACCESS_DENIED Handle = 0x8037011B - HCS_E_GUEST_CRITICAL_ERROR Handle = 0x8037011C - ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND syscall.Errno = 0xC0370200 - ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED syscall.Errno = 0x80370001 - WHV_E_UNKNOWN_CAPABILITY Handle = 0x80370300 - WHV_E_INSUFFICIENT_BUFFER Handle = 0x80370301 - WHV_E_UNKNOWN_PROPERTY Handle = 0x80370302 - WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG Handle = 0x80370303 - WHV_E_INVALID_PARTITION_CONFIG Handle = 0x80370304 - WHV_E_GPA_RANGE_NOT_FOUND Handle = 0x80370305 - WHV_E_VP_ALREADY_EXISTS Handle = 0x80370306 - WHV_E_VP_DOES_NOT_EXIST Handle = 0x80370307 - WHV_E_INVALID_VP_STATE Handle = 0x80370308 - WHV_E_INVALID_VP_REGISTER_NAME Handle = 0x80370309 - ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND syscall.Errno = 0xC0370400 - ERROR_VSMB_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370401 - ERROR_VOLMGR_INCOMPLETE_REGENERATION syscall.Errno = 0x80380001 - ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION syscall.Errno = 0x80380002 - ERROR_VOLMGR_DATABASE_FULL syscall.Errno = 0xC0380001 - ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED syscall.Errno = 0xC0380002 - ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC syscall.Errno = 0xC0380003 - ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED syscall.Errno = 0xC0380004 - ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME syscall.Errno = 0xC0380005 - ERROR_VOLMGR_DISK_DUPLICATE syscall.Errno = 0xC0380006 - ERROR_VOLMGR_DISK_DYNAMIC syscall.Errno = 0xC0380007 - ERROR_VOLMGR_DISK_ID_INVALID syscall.Errno = 0xC0380008 - ERROR_VOLMGR_DISK_INVALID syscall.Errno = 0xC0380009 - ERROR_VOLMGR_DISK_LAST_VOTER syscall.Errno = 0xC038000A - ERROR_VOLMGR_DISK_LAYOUT_INVALID syscall.Errno = 0xC038000B - ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS syscall.Errno = 0xC038000C - ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED syscall.Errno = 0xC038000D - ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL syscall.Errno = 0xC038000E - ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS syscall.Errno = 0xC038000F - ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS syscall.Errno = 0xC0380010 - ERROR_VOLMGR_DISK_MISSING syscall.Errno = 0xC0380011 - ERROR_VOLMGR_DISK_NOT_EMPTY syscall.Errno = 0xC0380012 - ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE syscall.Errno = 0xC0380013 - ERROR_VOLMGR_DISK_REVECTORING_FAILED syscall.Errno = 0xC0380014 - ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID syscall.Errno = 0xC0380015 - ERROR_VOLMGR_DISK_SET_NOT_CONTAINED syscall.Errno = 0xC0380016 - ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS syscall.Errno = 0xC0380017 - ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES syscall.Errno = 0xC0380018 - ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED syscall.Errno = 0xC0380019 - ERROR_VOLMGR_EXTENT_ALREADY_USED syscall.Errno = 0xC038001A - ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS syscall.Errno = 0xC038001B - ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION syscall.Errno = 0xC038001C - ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED syscall.Errno = 0xC038001D - ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION syscall.Errno = 0xC038001E - ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH syscall.Errno = 0xC038001F - ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED syscall.Errno = 0xC0380020 - ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID syscall.Errno = 0xC0380021 - ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS syscall.Errno = 0xC0380022 - ERROR_VOLMGR_MEMBER_IN_SYNC syscall.Errno = 0xC0380023 - ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE syscall.Errno = 0xC0380024 - ERROR_VOLMGR_MEMBER_INDEX_INVALID syscall.Errno = 0xC0380025 - ERROR_VOLMGR_MEMBER_MISSING syscall.Errno = 0xC0380026 - ERROR_VOLMGR_MEMBER_NOT_DETACHED syscall.Errno = 0xC0380027 - ERROR_VOLMGR_MEMBER_REGENERATING syscall.Errno = 0xC0380028 - ERROR_VOLMGR_ALL_DISKS_FAILED syscall.Errno = 0xC0380029 - ERROR_VOLMGR_NO_REGISTERED_USERS syscall.Errno = 0xC038002A - ERROR_VOLMGR_NO_SUCH_USER syscall.Errno = 0xC038002B - ERROR_VOLMGR_NOTIFICATION_RESET syscall.Errno = 0xC038002C - ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID syscall.Errno = 0xC038002D - ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID syscall.Errno = 0xC038002E - ERROR_VOLMGR_PACK_DUPLICATE syscall.Errno = 0xC038002F - ERROR_VOLMGR_PACK_ID_INVALID syscall.Errno = 0xC0380030 - ERROR_VOLMGR_PACK_INVALID syscall.Errno = 0xC0380031 - ERROR_VOLMGR_PACK_NAME_INVALID syscall.Errno = 0xC0380032 - ERROR_VOLMGR_PACK_OFFLINE syscall.Errno = 0xC0380033 - ERROR_VOLMGR_PACK_HAS_QUORUM syscall.Errno = 0xC0380034 - ERROR_VOLMGR_PACK_WITHOUT_QUORUM syscall.Errno = 0xC0380035 - ERROR_VOLMGR_PARTITION_STYLE_INVALID syscall.Errno = 0xC0380036 - ERROR_VOLMGR_PARTITION_UPDATE_FAILED syscall.Errno = 0xC0380037 - ERROR_VOLMGR_PLEX_IN_SYNC syscall.Errno = 0xC0380038 - ERROR_VOLMGR_PLEX_INDEX_DUPLICATE syscall.Errno = 0xC0380039 - ERROR_VOLMGR_PLEX_INDEX_INVALID syscall.Errno = 0xC038003A - ERROR_VOLMGR_PLEX_LAST_ACTIVE syscall.Errno = 0xC038003B - ERROR_VOLMGR_PLEX_MISSING syscall.Errno = 0xC038003C - ERROR_VOLMGR_PLEX_REGENERATING syscall.Errno = 0xC038003D - ERROR_VOLMGR_PLEX_TYPE_INVALID syscall.Errno = 0xC038003E - ERROR_VOLMGR_PLEX_NOT_RAID5 syscall.Errno = 0xC038003F - ERROR_VOLMGR_PLEX_NOT_SIMPLE syscall.Errno = 0xC0380040 - ERROR_VOLMGR_STRUCTURE_SIZE_INVALID syscall.Errno = 0xC0380041 - ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS syscall.Errno = 0xC0380042 - ERROR_VOLMGR_TRANSACTION_IN_PROGRESS syscall.Errno = 0xC0380043 - ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE syscall.Errno = 0xC0380044 - ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK syscall.Errno = 0xC0380045 - ERROR_VOLMGR_VOLUME_ID_INVALID syscall.Errno = 0xC0380046 - ERROR_VOLMGR_VOLUME_LENGTH_INVALID syscall.Errno = 0xC0380047 - ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE syscall.Errno = 0xC0380048 - ERROR_VOLMGR_VOLUME_NOT_MIRRORED syscall.Errno = 0xC0380049 - ERROR_VOLMGR_VOLUME_NOT_RETAINED syscall.Errno = 0xC038004A - ERROR_VOLMGR_VOLUME_OFFLINE syscall.Errno = 0xC038004B - ERROR_VOLMGR_VOLUME_RETAINED syscall.Errno = 0xC038004C - ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID syscall.Errno = 0xC038004D - ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE syscall.Errno = 0xC038004E - ERROR_VOLMGR_BAD_BOOT_DISK syscall.Errno = 0xC038004F - ERROR_VOLMGR_PACK_CONFIG_OFFLINE syscall.Errno = 0xC0380050 - ERROR_VOLMGR_PACK_CONFIG_ONLINE syscall.Errno = 0xC0380051 - ERROR_VOLMGR_NOT_PRIMARY_PACK syscall.Errno = 0xC0380052 - ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED syscall.Errno = 0xC0380053 - ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID syscall.Errno = 0xC0380054 - ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID syscall.Errno = 0xC0380055 - ERROR_VOLMGR_VOLUME_MIRRORED syscall.Errno = 0xC0380056 - ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED syscall.Errno = 0xC0380057 - ERROR_VOLMGR_NO_VALID_LOG_COPIES syscall.Errno = 0xC0380058 - ERROR_VOLMGR_PRIMARY_PACK_PRESENT syscall.Errno = 0xC0380059 - ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID syscall.Errno = 0xC038005A - ERROR_VOLMGR_MIRROR_NOT_SUPPORTED syscall.Errno = 0xC038005B - ERROR_VOLMGR_RAID5_NOT_SUPPORTED syscall.Errno = 0xC038005C - ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED syscall.Errno = 0x80390001 - ERROR_BCD_TOO_MANY_ELEMENTS syscall.Errno = 0xC0390002 - ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED syscall.Errno = 0x80390003 - ERROR_VHD_DRIVE_FOOTER_MISSING syscall.Errno = 0xC03A0001 - ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0002 - ERROR_VHD_DRIVE_FOOTER_CORRUPT syscall.Errno = 0xC03A0003 - ERROR_VHD_FORMAT_UNKNOWN syscall.Errno = 0xC03A0004 - ERROR_VHD_FORMAT_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0005 - ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0006 - ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0007 - ERROR_VHD_SPARSE_HEADER_CORRUPT syscall.Errno = 0xC03A0008 - ERROR_VHD_BLOCK_ALLOCATION_FAILURE syscall.Errno = 0xC03A0009 - ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT syscall.Errno = 0xC03A000A - ERROR_VHD_INVALID_BLOCK_SIZE syscall.Errno = 0xC03A000B - ERROR_VHD_BITMAP_MISMATCH syscall.Errno = 0xC03A000C - ERROR_VHD_PARENT_VHD_NOT_FOUND syscall.Errno = 0xC03A000D - ERROR_VHD_CHILD_PARENT_ID_MISMATCH syscall.Errno = 0xC03A000E - ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH syscall.Errno = 0xC03A000F - ERROR_VHD_METADATA_READ_FAILURE syscall.Errno = 0xC03A0010 - ERROR_VHD_METADATA_WRITE_FAILURE syscall.Errno = 0xC03A0011 - ERROR_VHD_INVALID_SIZE syscall.Errno = 0xC03A0012 - ERROR_VHD_INVALID_FILE_SIZE syscall.Errno = 0xC03A0013 - ERROR_VIRTDISK_PROVIDER_NOT_FOUND syscall.Errno = 0xC03A0014 - ERROR_VIRTDISK_NOT_VIRTUAL_DISK syscall.Errno = 0xC03A0015 - ERROR_VHD_PARENT_VHD_ACCESS_DENIED syscall.Errno = 0xC03A0016 - ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH syscall.Errno = 0xC03A0017 - ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED syscall.Errno = 0xC03A0018 - ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT syscall.Errno = 0xC03A0019 - ERROR_VIRTUAL_DISK_LIMITATION syscall.Errno = 0xC03A001A - ERROR_VHD_INVALID_TYPE syscall.Errno = 0xC03A001B - ERROR_VHD_INVALID_STATE syscall.Errno = 0xC03A001C - ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE syscall.Errno = 0xC03A001D - ERROR_VIRTDISK_DISK_ALREADY_OWNED syscall.Errno = 0xC03A001E - ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE syscall.Errno = 0xC03A001F - ERROR_CTLOG_TRACKING_NOT_INITIALIZED syscall.Errno = 0xC03A0020 - ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE syscall.Errno = 0xC03A0021 - ERROR_CTLOG_VHD_CHANGED_OFFLINE syscall.Errno = 0xC03A0022 - ERROR_CTLOG_INVALID_TRACKING_STATE syscall.Errno = 0xC03A0023 - ERROR_CTLOG_INCONSISTENT_TRACKING_FILE syscall.Errno = 0xC03A0024 - ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA syscall.Errno = 0xC03A0025 - ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0026 - ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0027 - ERROR_VHD_METADATA_FULL syscall.Errno = 0xC03A0028 - ERROR_VHD_INVALID_CHANGE_TRACKING_ID syscall.Errno = 0xC03A0029 - ERROR_VHD_CHANGE_TRACKING_DISABLED syscall.Errno = 0xC03A002A - ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION syscall.Errno = 0xC03A0030 - ERROR_QUERY_STORAGE_ERROR syscall.Errno = 0x803A0001 - HCN_E_NETWORK_NOT_FOUND Handle = 0x803B0001 - HCN_E_ENDPOINT_NOT_FOUND Handle = 0x803B0002 - HCN_E_LAYER_NOT_FOUND Handle = 0x803B0003 - HCN_E_SWITCH_NOT_FOUND Handle = 0x803B0004 - HCN_E_SUBNET_NOT_FOUND Handle = 0x803B0005 - HCN_E_ADAPTER_NOT_FOUND Handle = 0x803B0006 - HCN_E_PORT_NOT_FOUND Handle = 0x803B0007 - HCN_E_POLICY_NOT_FOUND Handle = 0x803B0008 - HCN_E_VFP_PORTSETTING_NOT_FOUND Handle = 0x803B0009 - HCN_E_INVALID_NETWORK Handle = 0x803B000A - HCN_E_INVALID_NETWORK_TYPE Handle = 0x803B000B - HCN_E_INVALID_ENDPOINT Handle = 0x803B000C - HCN_E_INVALID_POLICY Handle = 0x803B000D - HCN_E_INVALID_POLICY_TYPE Handle = 0x803B000E - HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION Handle = 0x803B000F - HCN_E_NETWORK_ALREADY_EXISTS Handle = 0x803B0010 - HCN_E_LAYER_ALREADY_EXISTS Handle = 0x803B0011 - HCN_E_POLICY_ALREADY_EXISTS Handle = 0x803B0012 - HCN_E_PORT_ALREADY_EXISTS Handle = 0x803B0013 - HCN_E_ENDPOINT_ALREADY_ATTACHED Handle = 0x803B0014 - HCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0015 - HCN_E_MAPPING_NOT_SUPPORTED Handle = 0x803B0016 - HCN_E_DEGRADED_OPERATION Handle = 0x803B0017 - HCN_E_SHARED_SWITCH_MODIFICATION Handle = 0x803B0018 - HCN_E_GUID_CONVERSION_FAILURE Handle = 0x803B0019 - HCN_E_REGKEY_FAILURE Handle = 0x803B001A - HCN_E_INVALID_JSON Handle = 0x803B001B - HCN_E_INVALID_JSON_REFERENCE Handle = 0x803B001C - HCN_E_ENDPOINT_SHARING_DISABLED Handle = 0x803B001D - HCN_E_INVALID_IP Handle = 0x803B001E - HCN_E_SWITCH_EXTENSION_NOT_FOUND Handle = 0x803B001F - HCN_E_MANAGER_STOPPED Handle = 0x803B0020 - GCN_E_MODULE_NOT_FOUND Handle = 0x803B0021 - GCN_E_NO_REQUEST_HANDLERS Handle = 0x803B0022 - GCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0023 - GCN_E_RUNTIMEKEYS_FAILED Handle = 0x803B0024 - GCN_E_NETADAPTER_TIMEOUT Handle = 0x803B0025 - GCN_E_NETADAPTER_NOT_FOUND Handle = 0x803B0026 - GCN_E_NETCOMPARTMENT_NOT_FOUND Handle = 0x803B0027 - GCN_E_NETINTERFACE_NOT_FOUND Handle = 0x803B0028 - GCN_E_DEFAULTNAMESPACE_EXISTS Handle = 0x803B0029 - SDIAG_E_CANCELLED syscall.Errno = 0x803C0100 - SDIAG_E_SCRIPT syscall.Errno = 0x803C0101 - SDIAG_E_POWERSHELL syscall.Errno = 0x803C0102 - SDIAG_E_MANAGEDHOST syscall.Errno = 0x803C0103 - SDIAG_E_NOVERIFIER syscall.Errno = 0x803C0104 - SDIAG_S_CANNOTRUN syscall.Errno = 0x003C0105 - SDIAG_E_DISABLED syscall.Errno = 0x803C0106 - SDIAG_E_TRUST syscall.Errno = 0x803C0107 - SDIAG_E_CANNOTRUN syscall.Errno = 0x803C0108 - SDIAG_E_VERSION syscall.Errno = 0x803C0109 - SDIAG_E_RESOURCE syscall.Errno = 0x803C010A - SDIAG_E_ROOTCAUSE syscall.Errno = 0x803C010B - WPN_E_CHANNEL_CLOSED Handle = 0x803E0100 - WPN_E_CHANNEL_REQUEST_NOT_COMPLETE Handle = 0x803E0101 - WPN_E_INVALID_APP Handle = 0x803E0102 - WPN_E_OUTSTANDING_CHANNEL_REQUEST Handle = 0x803E0103 - WPN_E_DUPLICATE_CHANNEL Handle = 0x803E0104 - WPN_E_PLATFORM_UNAVAILABLE Handle = 0x803E0105 - WPN_E_NOTIFICATION_POSTED Handle = 0x803E0106 - WPN_E_NOTIFICATION_HIDDEN Handle = 0x803E0107 - WPN_E_NOTIFICATION_NOT_POSTED Handle = 0x803E0108 - WPN_E_CLOUD_DISABLED Handle = 0x803E0109 - WPN_E_CLOUD_INCAPABLE Handle = 0x803E0110 - WPN_E_CLOUD_AUTH_UNAVAILABLE Handle = 0x803E011A - WPN_E_CLOUD_SERVICE_UNAVAILABLE Handle = 0x803E011B - WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION Handle = 0x803E011C - WPN_E_NOTIFICATION_DISABLED Handle = 0x803E0111 - WPN_E_NOTIFICATION_INCAPABLE Handle = 0x803E0112 - WPN_E_INTERNET_INCAPABLE Handle = 0x803E0113 - WPN_E_NOTIFICATION_TYPE_DISABLED Handle = 0x803E0114 - WPN_E_NOTIFICATION_SIZE Handle = 0x803E0115 - WPN_E_TAG_SIZE Handle = 0x803E0116 - WPN_E_ACCESS_DENIED Handle = 0x803E0117 - WPN_E_DUPLICATE_REGISTRATION Handle = 0x803E0118 - WPN_E_PUSH_NOTIFICATION_INCAPABLE Handle = 0x803E0119 - WPN_E_DEV_ID_SIZE Handle = 0x803E0120 - WPN_E_TAG_ALPHANUMERIC Handle = 0x803E012A - WPN_E_INVALID_HTTP_STATUS_CODE Handle = 0x803E012B - WPN_E_OUT_OF_SESSION Handle = 0x803E0200 - WPN_E_POWER_SAVE Handle = 0x803E0201 - WPN_E_IMAGE_NOT_FOUND_IN_CACHE Handle = 0x803E0202 - WPN_E_ALL_URL_NOT_COMPLETED Handle = 0x803E0203 - WPN_E_INVALID_CLOUD_IMAGE Handle = 0x803E0204 - WPN_E_NOTIFICATION_ID_MATCHED Handle = 0x803E0205 - WPN_E_CALLBACK_ALREADY_REGISTERED Handle = 0x803E0206 - WPN_E_TOAST_NOTIFICATION_DROPPED Handle = 0x803E0207 - WPN_E_STORAGE_LOCKED Handle = 0x803E0208 - WPN_E_GROUP_SIZE Handle = 0x803E0209 - WPN_E_GROUP_ALPHANUMERIC Handle = 0x803E020A - WPN_E_CLOUD_DISABLED_FOR_APP Handle = 0x803E020B - E_MBN_CONTEXT_NOT_ACTIVATED Handle = 0x80548201 - E_MBN_BAD_SIM Handle = 0x80548202 - E_MBN_DATA_CLASS_NOT_AVAILABLE Handle = 0x80548203 - E_MBN_INVALID_ACCESS_STRING Handle = 0x80548204 - E_MBN_MAX_ACTIVATED_CONTEXTS Handle = 0x80548205 - E_MBN_PACKET_SVC_DETACHED Handle = 0x80548206 - E_MBN_PROVIDER_NOT_VISIBLE Handle = 0x80548207 - E_MBN_RADIO_POWER_OFF Handle = 0x80548208 - E_MBN_SERVICE_NOT_ACTIVATED Handle = 0x80548209 - E_MBN_SIM_NOT_INSERTED Handle = 0x8054820A - E_MBN_VOICE_CALL_IN_PROGRESS Handle = 0x8054820B - E_MBN_INVALID_CACHE Handle = 0x8054820C - E_MBN_NOT_REGISTERED Handle = 0x8054820D - E_MBN_PROVIDERS_NOT_FOUND Handle = 0x8054820E - E_MBN_PIN_NOT_SUPPORTED Handle = 0x8054820F - E_MBN_PIN_REQUIRED Handle = 0x80548210 - E_MBN_PIN_DISABLED Handle = 0x80548211 - E_MBN_FAILURE Handle = 0x80548212 - E_MBN_INVALID_PROFILE Handle = 0x80548218 - E_MBN_DEFAULT_PROFILE_EXIST Handle = 0x80548219 - E_MBN_SMS_ENCODING_NOT_SUPPORTED Handle = 0x80548220 - E_MBN_SMS_FILTER_NOT_SUPPORTED Handle = 0x80548221 - E_MBN_SMS_INVALID_MEMORY_INDEX Handle = 0x80548222 - E_MBN_SMS_LANG_NOT_SUPPORTED Handle = 0x80548223 - E_MBN_SMS_MEMORY_FAILURE Handle = 0x80548224 - E_MBN_SMS_NETWORK_TIMEOUT Handle = 0x80548225 - E_MBN_SMS_UNKNOWN_SMSC_ADDRESS Handle = 0x80548226 - E_MBN_SMS_FORMAT_NOT_SUPPORTED Handle = 0x80548227 - E_MBN_SMS_OPERATION_NOT_ALLOWED Handle = 0x80548228 - E_MBN_SMS_MEMORY_FULL Handle = 0x80548229 - PEER_E_IPV6_NOT_INSTALLED Handle = 0x80630001 - PEER_E_NOT_INITIALIZED Handle = 0x80630002 - PEER_E_CANNOT_START_SERVICE Handle = 0x80630003 - PEER_E_NOT_LICENSED Handle = 0x80630004 - PEER_E_INVALID_GRAPH Handle = 0x80630010 - PEER_E_DBNAME_CHANGED Handle = 0x80630011 - PEER_E_DUPLICATE_GRAPH Handle = 0x80630012 - PEER_E_GRAPH_NOT_READY Handle = 0x80630013 - PEER_E_GRAPH_SHUTTING_DOWN Handle = 0x80630014 - PEER_E_GRAPH_IN_USE Handle = 0x80630015 - PEER_E_INVALID_DATABASE Handle = 0x80630016 - PEER_E_TOO_MANY_ATTRIBUTES Handle = 0x80630017 - PEER_E_CONNECTION_NOT_FOUND Handle = 0x80630103 - PEER_E_CONNECT_SELF Handle = 0x80630106 - PEER_E_ALREADY_LISTENING Handle = 0x80630107 - PEER_E_NODE_NOT_FOUND Handle = 0x80630108 - PEER_E_CONNECTION_FAILED Handle = 0x80630109 - PEER_E_CONNECTION_NOT_AUTHENTICATED Handle = 0x8063010A - PEER_E_CONNECTION_REFUSED Handle = 0x8063010B - PEER_E_CLASSIFIER_TOO_LONG Handle = 0x80630201 - PEER_E_TOO_MANY_IDENTITIES Handle = 0x80630202 - PEER_E_NO_KEY_ACCESS Handle = 0x80630203 - PEER_E_GROUPS_EXIST Handle = 0x80630204 - PEER_E_RECORD_NOT_FOUND Handle = 0x80630301 - PEER_E_DATABASE_ACCESSDENIED Handle = 0x80630302 - PEER_E_DBINITIALIZATION_FAILED Handle = 0x80630303 - PEER_E_MAX_RECORD_SIZE_EXCEEDED Handle = 0x80630304 - PEER_E_DATABASE_ALREADY_PRESENT Handle = 0x80630305 - PEER_E_DATABASE_NOT_PRESENT Handle = 0x80630306 - PEER_E_IDENTITY_NOT_FOUND Handle = 0x80630401 - PEER_E_EVENT_HANDLE_NOT_FOUND Handle = 0x80630501 - PEER_E_INVALID_SEARCH Handle = 0x80630601 - PEER_E_INVALID_ATTRIBUTES Handle = 0x80630602 - PEER_E_INVITATION_NOT_TRUSTED Handle = 0x80630701 - PEER_E_CHAIN_TOO_LONG Handle = 0x80630703 - PEER_E_INVALID_TIME_PERIOD Handle = 0x80630705 - PEER_E_CIRCULAR_CHAIN_DETECTED Handle = 0x80630706 - PEER_E_CERT_STORE_CORRUPTED Handle = 0x80630801 - PEER_E_NO_CLOUD Handle = 0x80631001 - PEER_E_CLOUD_NAME_AMBIGUOUS Handle = 0x80631005 - PEER_E_INVALID_RECORD Handle = 0x80632010 - PEER_E_NOT_AUTHORIZED Handle = 0x80632020 - PEER_E_PASSWORD_DOES_NOT_MEET_POLICY Handle = 0x80632021 - PEER_E_DEFERRED_VALIDATION Handle = 0x80632030 - PEER_E_INVALID_GROUP_PROPERTIES Handle = 0x80632040 - PEER_E_INVALID_PEER_NAME Handle = 0x80632050 - PEER_E_INVALID_CLASSIFIER Handle = 0x80632060 - PEER_E_INVALID_FRIENDLY_NAME Handle = 0x80632070 - PEER_E_INVALID_ROLE_PROPERTY Handle = 0x80632071 - PEER_E_INVALID_CLASSIFIER_PROPERTY Handle = 0x80632072 - PEER_E_INVALID_RECORD_EXPIRATION Handle = 0x80632080 - PEER_E_INVALID_CREDENTIAL_INFO Handle = 0x80632081 - PEER_E_INVALID_CREDENTIAL Handle = 0x80632082 - PEER_E_INVALID_RECORD_SIZE Handle = 0x80632083 - PEER_E_UNSUPPORTED_VERSION Handle = 0x80632090 - PEER_E_GROUP_NOT_READY Handle = 0x80632091 - PEER_E_GROUP_IN_USE Handle = 0x80632092 - PEER_E_INVALID_GROUP Handle = 0x80632093 - PEER_E_NO_MEMBERS_FOUND Handle = 0x80632094 - PEER_E_NO_MEMBER_CONNECTIONS Handle = 0x80632095 - PEER_E_UNABLE_TO_LISTEN Handle = 0x80632096 - PEER_E_IDENTITY_DELETED Handle = 0x806320A0 - PEER_E_SERVICE_NOT_AVAILABLE Handle = 0x806320A1 - PEER_E_CONTACT_NOT_FOUND Handle = 0x80636001 - PEER_S_GRAPH_DATA_CREATED Handle = 0x00630001 - PEER_S_NO_EVENT_DATA Handle = 0x00630002 - PEER_S_ALREADY_CONNECTED Handle = 0x00632000 - PEER_S_SUBSCRIPTION_EXISTS Handle = 0x00636000 - PEER_S_NO_CONNECTIVITY Handle = 0x00630005 - PEER_S_ALREADY_A_MEMBER Handle = 0x00630006 - PEER_E_CANNOT_CONVERT_PEER_NAME Handle = 0x80634001 - PEER_E_INVALID_PEER_HOST_NAME Handle = 0x80634002 - PEER_E_NO_MORE Handle = 0x80634003 - PEER_E_PNRP_DUPLICATE_PEER_NAME Handle = 0x80634005 - PEER_E_INVITE_CANCELLED Handle = 0x80637000 - PEER_E_INVITE_RESPONSE_NOT_AVAILABLE Handle = 0x80637001 - PEER_E_NOT_SIGNED_IN Handle = 0x80637003 - PEER_E_PRIVACY_DECLINED Handle = 0x80637004 - PEER_E_TIMEOUT Handle = 0x80637005 - PEER_E_INVALID_ADDRESS Handle = 0x80637007 - PEER_E_FW_EXCEPTION_DISABLED Handle = 0x80637008 - PEER_E_FW_BLOCKED_BY_POLICY Handle = 0x80637009 - PEER_E_FW_BLOCKED_BY_SHIELDS_UP Handle = 0x8063700A - PEER_E_FW_DECLINED Handle = 0x8063700B - UI_E_CREATE_FAILED Handle = 0x802A0001 - UI_E_SHUTDOWN_CALLED Handle = 0x802A0002 - UI_E_ILLEGAL_REENTRANCY Handle = 0x802A0003 - UI_E_OBJECT_SEALED Handle = 0x802A0004 - UI_E_VALUE_NOT_SET Handle = 0x802A0005 - UI_E_VALUE_NOT_DETERMINED Handle = 0x802A0006 - UI_E_INVALID_OUTPUT Handle = 0x802A0007 - UI_E_BOOLEAN_EXPECTED Handle = 0x802A0008 - UI_E_DIFFERENT_OWNER Handle = 0x802A0009 - UI_E_AMBIGUOUS_MATCH Handle = 0x802A000A - UI_E_FP_OVERFLOW Handle = 0x802A000B - UI_E_WRONG_THREAD Handle = 0x802A000C - UI_E_STORYBOARD_ACTIVE Handle = 0x802A0101 - UI_E_STORYBOARD_NOT_PLAYING Handle = 0x802A0102 - UI_E_START_KEYFRAME_AFTER_END Handle = 0x802A0103 - UI_E_END_KEYFRAME_NOT_DETERMINED Handle = 0x802A0104 - UI_E_LOOPS_OVERLAP Handle = 0x802A0105 - UI_E_TRANSITION_ALREADY_USED Handle = 0x802A0106 - UI_E_TRANSITION_NOT_IN_STORYBOARD Handle = 0x802A0107 - UI_E_TRANSITION_ECLIPSED Handle = 0x802A0108 - UI_E_TIME_BEFORE_LAST_UPDATE Handle = 0x802A0109 - UI_E_TIMER_CLIENT_ALREADY_CONNECTED Handle = 0x802A010A - UI_E_INVALID_DIMENSION Handle = 0x802A010B - UI_E_PRIMITIVE_OUT_OF_BOUNDS Handle = 0x802A010C - UI_E_WINDOW_CLOSED Handle = 0x802A0201 - E_BLUETOOTH_ATT_INVALID_HANDLE Handle = 0x80650001 - E_BLUETOOTH_ATT_READ_NOT_PERMITTED Handle = 0x80650002 - E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED Handle = 0x80650003 - E_BLUETOOTH_ATT_INVALID_PDU Handle = 0x80650004 - E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION Handle = 0x80650005 - E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED Handle = 0x80650006 - E_BLUETOOTH_ATT_INVALID_OFFSET Handle = 0x80650007 - E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION Handle = 0x80650008 - E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL Handle = 0x80650009 - E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND Handle = 0x8065000A - E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG Handle = 0x8065000B - E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE Handle = 0x8065000C - E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH Handle = 0x8065000D - E_BLUETOOTH_ATT_UNLIKELY Handle = 0x8065000E - E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION Handle = 0x8065000F - E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE Handle = 0x80650010 - E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES Handle = 0x80650011 - E_BLUETOOTH_ATT_UNKNOWN_ERROR Handle = 0x80651000 - E_AUDIO_ENGINE_NODE_NOT_FOUND Handle = 0x80660001 - E_HDAUDIO_EMPTY_CONNECTION_LIST Handle = 0x80660002 - E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED Handle = 0x80660003 - E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED Handle = 0x80660004 - E_HDAUDIO_NULL_LINKED_LIST_ENTRY Handle = 0x80660005 - STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE Handle = 0x80670001 - STATEREPOSITORY_E_STATEMENT_INPROGRESS Handle = 0x80670002 - STATEREPOSITORY_E_CONFIGURATION_INVALID Handle = 0x80670003 - STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION Handle = 0x80670004 - STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED Handle = 0x80670005 - STATEREPOSITORY_E_BLOCKED Handle = 0x80670006 - STATEREPOSITORY_E_BUSY_RETRY Handle = 0x80670007 - STATEREPOSITORY_E_BUSY_RECOVERY_RETRY Handle = 0x80670008 - STATEREPOSITORY_E_LOCKED_RETRY Handle = 0x80670009 - STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY Handle = 0x8067000A - STATEREPOSITORY_E_TRANSACTION_REQUIRED Handle = 0x8067000B - STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED Handle = 0x8067000C - STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED Handle = 0x8067000D - STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED Handle = 0x8067000E - STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED Handle = 0x8067000F - STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS Handle = 0x80670010 - STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED Handle = 0x80670011 - STATEREPOSITORY_ERROR_CACHE_CORRUPTED Handle = 0x80670012 - STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED Handle = 0x00670013 - STATEREPOSITORY_TRANSACTION_IN_PROGRESS Handle = 0x00670014 - ERROR_SPACES_POOL_WAS_DELETED Handle = 0x00E70001 - ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID Handle = 0x80E70001 - ERROR_SPACES_INTERNAL_ERROR Handle = 0x80E70002 - ERROR_SPACES_RESILIENCY_TYPE_INVALID Handle = 0x80E70003 - ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID Handle = 0x80E70004 - ERROR_SPACES_DRIVE_REDUNDANCY_INVALID Handle = 0x80E70006 - ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID Handle = 0x80E70007 - ERROR_SPACES_PARITY_LAYOUT_INVALID Handle = 0x80E70008 - ERROR_SPACES_INTERLEAVE_LENGTH_INVALID Handle = 0x80E70009 - ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID Handle = 0x80E7000A - ERROR_SPACES_NOT_ENOUGH_DRIVES Handle = 0x80E7000B - ERROR_SPACES_EXTENDED_ERROR Handle = 0x80E7000C - ERROR_SPACES_PROVISIONING_TYPE_INVALID Handle = 0x80E7000D - ERROR_SPACES_ALLOCATION_SIZE_INVALID Handle = 0x80E7000E - ERROR_SPACES_ENCLOSURE_AWARE_INVALID Handle = 0x80E7000F - ERROR_SPACES_WRITE_CACHE_SIZE_INVALID Handle = 0x80E70010 - ERROR_SPACES_NUMBER_OF_GROUPS_INVALID Handle = 0x80E70011 - ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID Handle = 0x80E70012 - ERROR_SPACES_ENTRY_INCOMPLETE Handle = 0x80E70013 - ERROR_SPACES_ENTRY_INVALID Handle = 0x80E70014 - ERROR_VOLSNAP_BOOTFILE_NOT_VALID Handle = 0x80820001 - ERROR_VOLSNAP_ACTIVATION_TIMEOUT Handle = 0x80820002 - ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME Handle = 0x80830001 - ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS Handle = 0x80830002 - ERROR_TIERING_STORAGE_TIER_NOT_FOUND Handle = 0x80830003 - ERROR_TIERING_INVALID_FILE_ID Handle = 0x80830004 - ERROR_TIERING_WRONG_CLUSTER_NODE Handle = 0x80830005 - ERROR_TIERING_ALREADY_PROCESSING Handle = 0x80830006 - ERROR_TIERING_CANNOT_PIN_OBJECT Handle = 0x80830007 - ERROR_TIERING_FILE_IS_NOT_PINNED Handle = 0x80830008 - ERROR_NOT_A_TIERED_VOLUME Handle = 0x80830009 - ERROR_ATTRIBUTE_NOT_PRESENT Handle = 0x8083000A - ERROR_SECCORE_INVALID_COMMAND Handle = 0xC0E80000 - ERROR_NO_APPLICABLE_APP_LICENSES_FOUND Handle = 0xC0EA0001 - ERROR_CLIP_LICENSE_NOT_FOUND Handle = 0xC0EA0002 - ERROR_CLIP_DEVICE_LICENSE_MISSING Handle = 0xC0EA0003 - ERROR_CLIP_LICENSE_INVALID_SIGNATURE Handle = 0xC0EA0004 - ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID Handle = 0xC0EA0005 - ERROR_CLIP_LICENSE_EXPIRED Handle = 0xC0EA0006 - ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE Handle = 0xC0EA0007 - ERROR_CLIP_LICENSE_NOT_SIGNED Handle = 0xC0EA0008 - ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE Handle = 0xC0EA0009 - ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH Handle = 0xC0EA000A - DXGI_STATUS_OCCLUDED Handle = 0x087A0001 - DXGI_STATUS_CLIPPED Handle = 0x087A0002 - DXGI_STATUS_NO_REDIRECTION Handle = 0x087A0004 - DXGI_STATUS_NO_DESKTOP_ACCESS Handle = 0x087A0005 - DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x087A0006 - DXGI_STATUS_MODE_CHANGED Handle = 0x087A0007 - DXGI_STATUS_MODE_CHANGE_IN_PROGRESS Handle = 0x087A0008 - DXGI_ERROR_INVALID_CALL Handle = 0x887A0001 - DXGI_ERROR_NOT_FOUND Handle = 0x887A0002 - DXGI_ERROR_MORE_DATA Handle = 0x887A0003 - DXGI_ERROR_UNSUPPORTED Handle = 0x887A0004 - DXGI_ERROR_DEVICE_REMOVED Handle = 0x887A0005 - DXGI_ERROR_DEVICE_HUNG Handle = 0x887A0006 - DXGI_ERROR_DEVICE_RESET Handle = 0x887A0007 - DXGI_ERROR_WAS_STILL_DRAWING Handle = 0x887A000A - DXGI_ERROR_FRAME_STATISTICS_DISJOINT Handle = 0x887A000B - DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x887A000C - DXGI_ERROR_DRIVER_INTERNAL_ERROR Handle = 0x887A0020 - DXGI_ERROR_NONEXCLUSIVE Handle = 0x887A0021 - DXGI_ERROR_NOT_CURRENTLY_AVAILABLE Handle = 0x887A0022 - DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED Handle = 0x887A0023 - DXGI_ERROR_REMOTE_OUTOFMEMORY Handle = 0x887A0024 - DXGI_ERROR_ACCESS_LOST Handle = 0x887A0026 - DXGI_ERROR_WAIT_TIMEOUT Handle = 0x887A0027 - DXGI_ERROR_SESSION_DISCONNECTED Handle = 0x887A0028 - DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE Handle = 0x887A0029 - DXGI_ERROR_CANNOT_PROTECT_CONTENT Handle = 0x887A002A - DXGI_ERROR_ACCESS_DENIED Handle = 0x887A002B - DXGI_ERROR_NAME_ALREADY_EXISTS Handle = 0x887A002C - DXGI_ERROR_SDK_COMPONENT_MISSING Handle = 0x887A002D - DXGI_ERROR_NOT_CURRENT Handle = 0x887A002E - DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY Handle = 0x887A0030 - DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION Handle = 0x887A0031 - DXGI_ERROR_NON_COMPOSITED_UI Handle = 0x887A0032 - DXGI_STATUS_UNOCCLUDED Handle = 0x087A0009 - DXGI_STATUS_DDA_WAS_STILL_DRAWING Handle = 0x087A000A - DXGI_ERROR_MODE_CHANGE_IN_PROGRESS Handle = 0x887A0025 - DXGI_STATUS_PRESENT_REQUIRED Handle = 0x087A002F - DXGI_ERROR_CACHE_CORRUPT Handle = 0x887A0033 - DXGI_ERROR_CACHE_FULL Handle = 0x887A0034 - DXGI_ERROR_CACHE_HASH_COLLISION Handle = 0x887A0035 - DXGI_ERROR_ALREADY_EXISTS Handle = 0x887A0036 - DXGI_DDI_ERR_WASSTILLDRAWING Handle = 0x887B0001 - DXGI_DDI_ERR_UNSUPPORTED Handle = 0x887B0002 - DXGI_DDI_ERR_NONEXCLUSIVE Handle = 0x887B0003 - D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x88790001 - D3D10_ERROR_FILE_NOT_FOUND Handle = 0x88790002 - D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x887C0001 - D3D11_ERROR_FILE_NOT_FOUND Handle = 0x887C0002 - D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS Handle = 0x887C0003 - D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD Handle = 0x887C0004 - D3D12_ERROR_ADAPTER_NOT_FOUND Handle = 0x887E0001 - D3D12_ERROR_DRIVER_VERSION_MISMATCH Handle = 0x887E0002 - D2DERR_WRONG_STATE Handle = 0x88990001 - D2DERR_NOT_INITIALIZED Handle = 0x88990002 - D2DERR_UNSUPPORTED_OPERATION Handle = 0x88990003 - D2DERR_SCANNER_FAILED Handle = 0x88990004 - D2DERR_SCREEN_ACCESS_DENIED Handle = 0x88990005 - D2DERR_DISPLAY_STATE_INVALID Handle = 0x88990006 - D2DERR_ZERO_VECTOR Handle = 0x88990007 - D2DERR_INTERNAL_ERROR Handle = 0x88990008 - D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED Handle = 0x88990009 - D2DERR_INVALID_CALL Handle = 0x8899000A - D2DERR_NO_HARDWARE_DEVICE Handle = 0x8899000B - D2DERR_RECREATE_TARGET Handle = 0x8899000C - D2DERR_TOO_MANY_SHADER_ELEMENTS Handle = 0x8899000D - D2DERR_SHADER_COMPILE_FAILED Handle = 0x8899000E - D2DERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8899000F - D2DERR_UNSUPPORTED_VERSION Handle = 0x88990010 - D2DERR_BAD_NUMBER Handle = 0x88990011 - D2DERR_WRONG_FACTORY Handle = 0x88990012 - D2DERR_LAYER_ALREADY_IN_USE Handle = 0x88990013 - D2DERR_POP_CALL_DID_NOT_MATCH_PUSH Handle = 0x88990014 - D2DERR_WRONG_RESOURCE_DOMAIN Handle = 0x88990015 - D2DERR_PUSH_POP_UNBALANCED Handle = 0x88990016 - D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT Handle = 0x88990017 - D2DERR_INCOMPATIBLE_BRUSH_TYPES Handle = 0x88990018 - D2DERR_WIN32_ERROR Handle = 0x88990019 - D2DERR_TARGET_NOT_GDI_COMPATIBLE Handle = 0x8899001A - D2DERR_TEXT_EFFECT_IS_WRONG_TYPE Handle = 0x8899001B - D2DERR_TEXT_RENDERER_NOT_RELEASED Handle = 0x8899001C - D2DERR_EXCEEDS_MAX_BITMAP_SIZE Handle = 0x8899001D - D2DERR_INVALID_GRAPH_CONFIGURATION Handle = 0x8899001E - D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION Handle = 0x8899001F - D2DERR_CYCLIC_GRAPH Handle = 0x88990020 - D2DERR_BITMAP_CANNOT_DRAW Handle = 0x88990021 - D2DERR_OUTSTANDING_BITMAP_REFERENCES Handle = 0x88990022 - D2DERR_ORIGINAL_TARGET_NOT_BOUND Handle = 0x88990023 - D2DERR_INVALID_TARGET Handle = 0x88990024 - D2DERR_BITMAP_BOUND_AS_TARGET Handle = 0x88990025 - D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES Handle = 0x88990026 - D2DERR_INTERMEDIATE_TOO_LARGE Handle = 0x88990027 - D2DERR_EFFECT_IS_NOT_REGISTERED Handle = 0x88990028 - D2DERR_INVALID_PROPERTY Handle = 0x88990029 - D2DERR_NO_SUBPROPERTIES Handle = 0x8899002A - D2DERR_PRINT_JOB_CLOSED Handle = 0x8899002B - D2DERR_PRINT_FORMAT_NOT_SUPPORTED Handle = 0x8899002C - D2DERR_TOO_MANY_TRANSFORM_INPUTS Handle = 0x8899002D - D2DERR_INVALID_GLYPH_IMAGE Handle = 0x8899002E - DWRITE_E_FILEFORMAT Handle = 0x88985000 - DWRITE_E_UNEXPECTED Handle = 0x88985001 - DWRITE_E_NOFONT Handle = 0x88985002 - DWRITE_E_FILENOTFOUND Handle = 0x88985003 - DWRITE_E_FILEACCESS Handle = 0x88985004 - DWRITE_E_FONTCOLLECTIONOBSOLETE Handle = 0x88985005 - DWRITE_E_ALREADYREGISTERED Handle = 0x88985006 - DWRITE_E_CACHEFORMAT Handle = 0x88985007 - DWRITE_E_CACHEVERSION Handle = 0x88985008 - DWRITE_E_UNSUPPORTEDOPERATION Handle = 0x88985009 - DWRITE_E_TEXTRENDERERINCOMPATIBLE Handle = 0x8898500A - DWRITE_E_FLOWDIRECTIONCONFLICTS Handle = 0x8898500B - DWRITE_E_NOCOLOR Handle = 0x8898500C - DWRITE_E_REMOTEFONT Handle = 0x8898500D - DWRITE_E_DOWNLOADCANCELLED Handle = 0x8898500E - DWRITE_E_DOWNLOADFAILED Handle = 0x8898500F - DWRITE_E_TOOMANYDOWNLOADS Handle = 0x88985010 - WINCODEC_ERR_WRONGSTATE Handle = 0x88982F04 - WINCODEC_ERR_VALUEOUTOFRANGE Handle = 0x88982F05 - WINCODEC_ERR_UNKNOWNIMAGEFORMAT Handle = 0x88982F07 - WINCODEC_ERR_UNSUPPORTEDVERSION Handle = 0x88982F0B - WINCODEC_ERR_NOTINITIALIZED Handle = 0x88982F0C - WINCODEC_ERR_ALREADYLOCKED Handle = 0x88982F0D - WINCODEC_ERR_PROPERTYNOTFOUND Handle = 0x88982F40 - WINCODEC_ERR_PROPERTYNOTSUPPORTED Handle = 0x88982F41 - WINCODEC_ERR_PROPERTYSIZE Handle = 0x88982F42 - WINCODEC_ERR_CODECPRESENT Handle = 0x88982F43 - WINCODEC_ERR_CODECNOTHUMBNAIL Handle = 0x88982F44 - WINCODEC_ERR_PALETTEUNAVAILABLE Handle = 0x88982F45 - WINCODEC_ERR_CODECTOOMANYSCANLINES Handle = 0x88982F46 - WINCODEC_ERR_INTERNALERROR Handle = 0x88982F48 - WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS Handle = 0x88982F49 - WINCODEC_ERR_COMPONENTNOTFOUND Handle = 0x88982F50 - WINCODEC_ERR_IMAGESIZEOUTOFRANGE Handle = 0x88982F51 - WINCODEC_ERR_TOOMUCHMETADATA Handle = 0x88982F52 - WINCODEC_ERR_BADIMAGE Handle = 0x88982F60 - WINCODEC_ERR_BADHEADER Handle = 0x88982F61 - WINCODEC_ERR_FRAMEMISSING Handle = 0x88982F62 - WINCODEC_ERR_BADMETADATAHEADER Handle = 0x88982F63 - WINCODEC_ERR_BADSTREAMDATA Handle = 0x88982F70 - WINCODEC_ERR_STREAMWRITE Handle = 0x88982F71 - WINCODEC_ERR_STREAMREAD Handle = 0x88982F72 - WINCODEC_ERR_STREAMNOTAVAILABLE Handle = 0x88982F73 - WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT Handle = 0x88982F80 - WINCODEC_ERR_UNSUPPORTEDOPERATION Handle = 0x88982F81 - WINCODEC_ERR_INVALIDREGISTRATION Handle = 0x88982F8A - WINCODEC_ERR_COMPONENTINITIALIZEFAILURE Handle = 0x88982F8B - WINCODEC_ERR_INSUFFICIENTBUFFER Handle = 0x88982F8C - WINCODEC_ERR_DUPLICATEMETADATAPRESENT Handle = 0x88982F8D - WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE Handle = 0x88982F8E - WINCODEC_ERR_UNEXPECTEDSIZE Handle = 0x88982F8F - WINCODEC_ERR_INVALIDQUERYREQUEST Handle = 0x88982F90 - WINCODEC_ERR_UNEXPECTEDMETADATATYPE Handle = 0x88982F91 - WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT Handle = 0x88982F92 - WINCODEC_ERR_INVALIDQUERYCHARACTER Handle = 0x88982F93 - WINCODEC_ERR_WIN32ERROR Handle = 0x88982F94 - WINCODEC_ERR_INVALIDPROGRESSIVELEVEL Handle = 0x88982F95 - WINCODEC_ERR_INVALIDJPEGSCANINDEX Handle = 0x88982F96 - MILERR_OBJECTBUSY Handle = 0x88980001 - MILERR_INSUFFICIENTBUFFER Handle = 0x88980002 - MILERR_WIN32ERROR Handle = 0x88980003 - MILERR_SCANNER_FAILED Handle = 0x88980004 - MILERR_SCREENACCESSDENIED Handle = 0x88980005 - MILERR_DISPLAYSTATEINVALID Handle = 0x88980006 - MILERR_NONINVERTIBLEMATRIX Handle = 0x88980007 - MILERR_ZEROVECTOR Handle = 0x88980008 - MILERR_TERMINATED Handle = 0x88980009 - MILERR_BADNUMBER Handle = 0x8898000A - MILERR_INTERNALERROR Handle = 0x88980080 - MILERR_DISPLAYFORMATNOTSUPPORTED Handle = 0x88980084 - MILERR_INVALIDCALL Handle = 0x88980085 - MILERR_ALREADYLOCKED Handle = 0x88980086 - MILERR_NOTLOCKED Handle = 0x88980087 - MILERR_DEVICECANNOTRENDERTEXT Handle = 0x88980088 - MILERR_GLYPHBITMAPMISSED Handle = 0x88980089 - MILERR_MALFORMEDGLYPHCACHE Handle = 0x8898008A - MILERR_GENERIC_IGNORE Handle = 0x8898008B - MILERR_MALFORMED_GUIDELINE_DATA Handle = 0x8898008C - MILERR_NO_HARDWARE_DEVICE Handle = 0x8898008D - MILERR_NEED_RECREATE_AND_PRESENT Handle = 0x8898008E - MILERR_ALREADY_INITIALIZED Handle = 0x8898008F - MILERR_MISMATCHED_SIZE Handle = 0x88980090 - MILERR_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x88980091 - MILERR_REMOTING_NOT_SUPPORTED Handle = 0x88980092 - MILERR_QUEUED_PRESENT_NOT_SUPPORTED Handle = 0x88980093 - MILERR_NOT_QUEUING_PRESENTS Handle = 0x88980094 - MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER Handle = 0x88980095 - MILERR_TOOMANYSHADERELEMNTS Handle = 0x88980096 - MILERR_MROW_READLOCK_FAILED Handle = 0x88980097 - MILERR_MROW_UPDATE_FAILED Handle = 0x88980098 - MILERR_SHADER_COMPILE_FAILED Handle = 0x88980099 - MILERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8898009A - MILERR_QPC_TIME_WENT_BACKWARD Handle = 0x8898009B - MILERR_DXGI_ENUMERATION_OUT_OF_SYNC Handle = 0x8898009D - MILERR_ADAPTER_NOT_FOUND Handle = 0x8898009E - MILERR_COLORSPACE_NOT_SUPPORTED Handle = 0x8898009F - MILERR_PREFILTER_NOT_SUPPORTED Handle = 0x889800A0 - MILERR_DISPLAYID_ACCESS_DENIED Handle = 0x889800A1 - UCEERR_INVALIDPACKETHEADER Handle = 0x88980400 - UCEERR_UNKNOWNPACKET Handle = 0x88980401 - UCEERR_ILLEGALPACKET Handle = 0x88980402 - UCEERR_MALFORMEDPACKET Handle = 0x88980403 - UCEERR_ILLEGALHANDLE Handle = 0x88980404 - UCEERR_HANDLELOOKUPFAILED Handle = 0x88980405 - UCEERR_RENDERTHREADFAILURE Handle = 0x88980406 - UCEERR_CTXSTACKFRSTTARGETNULL Handle = 0x88980407 - UCEERR_CONNECTIONIDLOOKUPFAILED Handle = 0x88980408 - UCEERR_BLOCKSFULL Handle = 0x88980409 - UCEERR_MEMORYFAILURE Handle = 0x8898040A - UCEERR_PACKETRECORDOUTOFRANGE Handle = 0x8898040B - UCEERR_ILLEGALRECORDTYPE Handle = 0x8898040C - UCEERR_OUTOFHANDLES Handle = 0x8898040D - UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED Handle = 0x8898040E - UCEERR_NO_MULTIPLE_WORKER_THREADS Handle = 0x8898040F - UCEERR_REMOTINGNOTSUPPORTED Handle = 0x88980410 - UCEERR_MISSINGENDCOMMAND Handle = 0x88980411 - UCEERR_MISSINGBEGINCOMMAND Handle = 0x88980412 - UCEERR_CHANNELSYNCTIMEDOUT Handle = 0x88980413 - UCEERR_CHANNELSYNCABANDONED Handle = 0x88980414 - UCEERR_UNSUPPORTEDTRANSPORTVERSION Handle = 0x88980415 - UCEERR_TRANSPORTUNAVAILABLE Handle = 0x88980416 - UCEERR_FEEDBACK_UNSUPPORTED Handle = 0x88980417 - UCEERR_COMMANDTRANSPORTDENIED Handle = 0x88980418 - UCEERR_GRAPHICSSTREAMUNAVAILABLE Handle = 0x88980419 - UCEERR_GRAPHICSSTREAMALREADYOPEN Handle = 0x88980420 - UCEERR_TRANSPORTDISCONNECTED Handle = 0x88980421 - UCEERR_TRANSPORTOVERLOADED Handle = 0x88980422 - UCEERR_PARTITION_ZOMBIED Handle = 0x88980423 - MILAVERR_NOCLOCK Handle = 0x88980500 - MILAVERR_NOMEDIATYPE Handle = 0x88980501 - MILAVERR_NOVIDEOMIXER Handle = 0x88980502 - MILAVERR_NOVIDEOPRESENTER Handle = 0x88980503 - MILAVERR_NOREADYFRAMES Handle = 0x88980504 - MILAVERR_MODULENOTLOADED Handle = 0x88980505 - MILAVERR_WMPFACTORYNOTREGISTERED Handle = 0x88980506 - MILAVERR_INVALIDWMPVERSION Handle = 0x88980507 - MILAVERR_INSUFFICIENTVIDEORESOURCES Handle = 0x88980508 - MILAVERR_VIDEOACCELERATIONNOTAVAILABLE Handle = 0x88980509 - MILAVERR_REQUESTEDTEXTURETOOBIG Handle = 0x8898050A - MILAVERR_SEEKFAILED Handle = 0x8898050B - MILAVERR_UNEXPECTEDWMPFAILURE Handle = 0x8898050C - MILAVERR_MEDIAPLAYERCLOSED Handle = 0x8898050D - MILAVERR_UNKNOWNHARDWAREERROR Handle = 0x8898050E - MILEFFECTSERR_UNKNOWNPROPERTY Handle = 0x8898060E - MILEFFECTSERR_EFFECTNOTPARTOFGROUP Handle = 0x8898060F - MILEFFECTSERR_NOINPUTSOURCEATTACHED Handle = 0x88980610 - MILEFFECTSERR_CONNECTORNOTCONNECTED Handle = 0x88980611 - MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT Handle = 0x88980612 - MILEFFECTSERR_RESERVED Handle = 0x88980613 - MILEFFECTSERR_CYCLEDETECTED Handle = 0x88980614 - MILEFFECTSERR_EFFECTINMORETHANONEGRAPH Handle = 0x88980615 - MILEFFECTSERR_EFFECTALREADYINAGRAPH Handle = 0x88980616 - MILEFFECTSERR_EFFECTHASNOCHILDREN Handle = 0x88980617 - MILEFFECTSERR_ALREADYATTACHEDTOLISTENER Handle = 0x88980618 - MILEFFECTSERR_NOTAFFINETRANSFORM Handle = 0x88980619 - MILEFFECTSERR_EMPTYBOUNDS Handle = 0x8898061A - MILEFFECTSERR_OUTPUTSIZETOOLARGE Handle = 0x8898061B - DWMERR_STATE_TRANSITION_FAILED Handle = 0x88980700 - DWMERR_THEME_FAILED Handle = 0x88980701 - DWMERR_CATASTROPHIC_FAILURE Handle = 0x88980702 - DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED Handle = 0x88980800 - DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED Handle = 0x88980801 - DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED Handle = 0x88980802 - ONL_E_INVALID_AUTHENTICATION_TARGET Handle = 0x80860001 - ONL_E_ACCESS_DENIED_BY_TOU Handle = 0x80860002 - ONL_E_INVALID_APPLICATION Handle = 0x80860003 - ONL_E_PASSWORD_UPDATE_REQUIRED Handle = 0x80860004 - ONL_E_ACCOUNT_UPDATE_REQUIRED Handle = 0x80860005 - ONL_E_FORCESIGNIN Handle = 0x80860006 - ONL_E_ACCOUNT_LOCKED Handle = 0x80860007 - ONL_E_PARENTAL_CONSENT_REQUIRED Handle = 0x80860008 - ONL_E_EMAIL_VERIFICATION_REQUIRED Handle = 0x80860009 - ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE Handle = 0x8086000A - ONL_E_ACCOUNT_SUSPENDED_ABUSE Handle = 0x8086000B - ONL_E_ACTION_REQUIRED Handle = 0x8086000C - ONL_CONNECTION_COUNT_LIMIT Handle = 0x8086000D - ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT Handle = 0x8086000E - ONL_E_USER_AUTHENTICATION_REQUIRED Handle = 0x8086000F - ONL_E_REQUEST_THROTTLED Handle = 0x80860010 - FA_E_MAX_PERSISTED_ITEMS_REACHED Handle = 0x80270220 - FA_E_HOMEGROUP_NOT_AVAILABLE Handle = 0x80270222 - E_MONITOR_RESOLUTION_TOO_LOW Handle = 0x80270250 - E_ELEVATED_ACTIVATION_NOT_SUPPORTED Handle = 0x80270251 - E_UAC_DISABLED Handle = 0x80270252 - E_FULL_ADMIN_NOT_SUPPORTED Handle = 0x80270253 - E_APPLICATION_NOT_REGISTERED Handle = 0x80270254 - E_MULTIPLE_EXTENSIONS_FOR_APPLICATION Handle = 0x80270255 - E_MULTIPLE_PACKAGES_FOR_FAMILY Handle = 0x80270256 - E_APPLICATION_MANAGER_NOT_RUNNING Handle = 0x80270257 - S_STORE_LAUNCHED_FOR_REMEDIATION Handle = 0x00270258 - S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG Handle = 0x00270259 - E_APPLICATION_ACTIVATION_TIMED_OUT Handle = 0x8027025A - E_APPLICATION_ACTIVATION_EXEC_FAILURE Handle = 0x8027025B - E_APPLICATION_TEMPORARY_LICENSE_ERROR Handle = 0x8027025C - E_APPLICATION_TRIAL_LICENSE_EXPIRED Handle = 0x8027025D - E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED Handle = 0x80270260 - E_SKYDRIVE_ROOT_TARGET_OVERLAP Handle = 0x80270261 - E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX Handle = 0x80270262 - E_SKYDRIVE_FILE_NOT_UPLOADED Handle = 0x80270263 - E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL Handle = 0x80270264 - E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED Handle = 0x80270265 - E_SYNCENGINE_FILE_SIZE_OVER_LIMIT Handle = 0x8802B001 - E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA Handle = 0x8802B002 - E_SYNCENGINE_UNSUPPORTED_FILE_NAME Handle = 0x8802B003 - E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED Handle = 0x8802B004 - E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR Handle = 0x8802B005 - E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE Handle = 0x8802B006 - E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN Handle = 0x8802C002 - E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED Handle = 0x8802C003 - E_SYNCENGINE_UNKNOWN_SERVICE_ERROR Handle = 0x8802C004 - E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE Handle = 0x8802C005 - E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE Handle = 0x8802C006 - E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR Handle = 0x8802C007 - E_SYNCENGINE_FOLDER_INACCESSIBLE Handle = 0x8802D001 - E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME Handle = 0x8802D002 - E_SYNCENGINE_UNSUPPORTED_MARKET Handle = 0x8802D003 - E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D004 - E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D005 - E_SYNCENGINE_CLIENT_UPDATE_NEEDED Handle = 0x8802D006 - E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED Handle = 0x8802D007 - E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED Handle = 0x8802D008 - E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT Handle = 0x8802D009 - E_SYNCENGINE_STORAGE_SERVICE_BLOCKED Handle = 0x8802D00A - E_SYNCENGINE_FOLDER_IN_REDIRECTION Handle = 0x8802D00B - EAS_E_POLICY_NOT_MANAGED_BY_OS Handle = 0x80550001 - EAS_E_POLICY_COMPLIANT_WITH_ACTIONS Handle = 0x80550002 - EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE Handle = 0x80550003 - EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD Handle = 0x80550004 - EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE Handle = 0x80550005 - EAS_E_USER_CANNOT_CHANGE_PASSWORD Handle = 0x80550006 - EAS_E_ADMINS_HAVE_BLANK_PASSWORD Handle = 0x80550007 - EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD Handle = 0x80550008 - EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD Handle = 0x80550009 - EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS Handle = 0x8055000A - EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000B - EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER Handle = 0x8055000C - EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000D - WEB_E_UNSUPPORTED_FORMAT Handle = 0x83750001 - WEB_E_INVALID_XML Handle = 0x83750002 - WEB_E_MISSING_REQUIRED_ELEMENT Handle = 0x83750003 - WEB_E_MISSING_REQUIRED_ATTRIBUTE Handle = 0x83750004 - WEB_E_UNEXPECTED_CONTENT Handle = 0x83750005 - WEB_E_RESOURCE_TOO_LARGE Handle = 0x83750006 - WEB_E_INVALID_JSON_STRING Handle = 0x83750007 - WEB_E_INVALID_JSON_NUMBER Handle = 0x83750008 - WEB_E_JSON_VALUE_NOT_FOUND Handle = 0x83750009 - HTTP_E_STATUS_UNEXPECTED Handle = 0x80190001 - HTTP_E_STATUS_UNEXPECTED_REDIRECTION Handle = 0x80190003 - HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR Handle = 0x80190004 - HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR Handle = 0x80190005 - HTTP_E_STATUS_AMBIGUOUS Handle = 0x8019012C - HTTP_E_STATUS_MOVED Handle = 0x8019012D - HTTP_E_STATUS_REDIRECT Handle = 0x8019012E - HTTP_E_STATUS_REDIRECT_METHOD Handle = 0x8019012F - HTTP_E_STATUS_NOT_MODIFIED Handle = 0x80190130 - HTTP_E_STATUS_USE_PROXY Handle = 0x80190131 - HTTP_E_STATUS_REDIRECT_KEEP_VERB Handle = 0x80190133 - HTTP_E_STATUS_BAD_REQUEST Handle = 0x80190190 - HTTP_E_STATUS_DENIED Handle = 0x80190191 - HTTP_E_STATUS_PAYMENT_REQ Handle = 0x80190192 - HTTP_E_STATUS_FORBIDDEN Handle = 0x80190193 - HTTP_E_STATUS_NOT_FOUND Handle = 0x80190194 - HTTP_E_STATUS_BAD_METHOD Handle = 0x80190195 - HTTP_E_STATUS_NONE_ACCEPTABLE Handle = 0x80190196 - HTTP_E_STATUS_PROXY_AUTH_REQ Handle = 0x80190197 - HTTP_E_STATUS_REQUEST_TIMEOUT Handle = 0x80190198 - HTTP_E_STATUS_CONFLICT Handle = 0x80190199 - HTTP_E_STATUS_GONE Handle = 0x8019019A - HTTP_E_STATUS_LENGTH_REQUIRED Handle = 0x8019019B - HTTP_E_STATUS_PRECOND_FAILED Handle = 0x8019019C - HTTP_E_STATUS_REQUEST_TOO_LARGE Handle = 0x8019019D - HTTP_E_STATUS_URI_TOO_LONG Handle = 0x8019019E - HTTP_E_STATUS_UNSUPPORTED_MEDIA Handle = 0x8019019F - HTTP_E_STATUS_RANGE_NOT_SATISFIABLE Handle = 0x801901A0 - HTTP_E_STATUS_EXPECTATION_FAILED Handle = 0x801901A1 - HTTP_E_STATUS_SERVER_ERROR Handle = 0x801901F4 - HTTP_E_STATUS_NOT_SUPPORTED Handle = 0x801901F5 - HTTP_E_STATUS_BAD_GATEWAY Handle = 0x801901F6 - HTTP_E_STATUS_SERVICE_UNAVAIL Handle = 0x801901F7 - HTTP_E_STATUS_GATEWAY_TIMEOUT Handle = 0x801901F8 - HTTP_E_STATUS_VERSION_NOT_SUP Handle = 0x801901F9 - E_INVALID_PROTOCOL_OPERATION Handle = 0x83760001 - E_INVALID_PROTOCOL_FORMAT Handle = 0x83760002 - E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED Handle = 0x83760003 - E_SUBPROTOCOL_NOT_SUPPORTED Handle = 0x83760004 - E_PROTOCOL_VERSION_NOT_SUPPORTED Handle = 0x83760005 - INPUT_E_OUT_OF_ORDER Handle = 0x80400000 - INPUT_E_REENTRANCY Handle = 0x80400001 - INPUT_E_MULTIMODAL Handle = 0x80400002 - INPUT_E_PACKET Handle = 0x80400003 - INPUT_E_FRAME Handle = 0x80400004 - INPUT_E_HISTORY Handle = 0x80400005 - INPUT_E_DEVICE_INFO Handle = 0x80400006 - INPUT_E_TRANSFORM Handle = 0x80400007 - INPUT_E_DEVICE_PROPERTY Handle = 0x80400008 - INET_E_INVALID_URL Handle = 0x800C0002 - INET_E_NO_SESSION Handle = 0x800C0003 - INET_E_CANNOT_CONNECT Handle = 0x800C0004 - INET_E_RESOURCE_NOT_FOUND Handle = 0x800C0005 - INET_E_OBJECT_NOT_FOUND Handle = 0x800C0006 - INET_E_DATA_NOT_AVAILABLE Handle = 0x800C0007 - INET_E_DOWNLOAD_FAILURE Handle = 0x800C0008 - INET_E_AUTHENTICATION_REQUIRED Handle = 0x800C0009 - INET_E_NO_VALID_MEDIA Handle = 0x800C000A - INET_E_CONNECTION_TIMEOUT Handle = 0x800C000B - INET_E_INVALID_REQUEST Handle = 0x800C000C - INET_E_UNKNOWN_PROTOCOL Handle = 0x800C000D - INET_E_SECURITY_PROBLEM Handle = 0x800C000E - INET_E_CANNOT_LOAD_DATA Handle = 0x800C000F - INET_E_CANNOT_INSTANTIATE_OBJECT Handle = 0x800C0010 - INET_E_INVALID_CERTIFICATE Handle = 0x800C0019 - INET_E_REDIRECT_FAILED Handle = 0x800C0014 - INET_E_REDIRECT_TO_DIR Handle = 0x800C0015 - ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00001 - ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00002 - ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00003 - ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00004 - ERROR_IO_PREEMPTED Handle = 0x89010001 - JSCRIPT_E_CANTEXECUTE Handle = 0x89020001 - WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x88010001 - WEP_E_FIXED_DATA_NOT_SUPPORTED Handle = 0x88010002 - WEP_E_HARDWARE_NOT_COMPLIANT Handle = 0x88010003 - WEP_E_LOCK_NOT_CONFIGURED Handle = 0x88010004 - WEP_E_PROTECTION_SUSPENDED Handle = 0x88010005 - WEP_E_NO_LICENSE Handle = 0x88010006 - WEP_E_OS_NOT_PROTECTED Handle = 0x88010007 - WEP_E_UNEXPECTED_FAIL Handle = 0x88010008 - WEP_E_BUFFER_TOO_LARGE Handle = 0x88010009 - ERROR_SVHDX_ERROR_STORED Handle = 0xC05C0000 - ERROR_SVHDX_ERROR_NOT_AVAILABLE Handle = 0xC05CFF00 - ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE Handle = 0xC05CFF01 - ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED Handle = 0xC05CFF02 - ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED Handle = 0xC05CFF03 - ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED Handle = 0xC05CFF04 - ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED Handle = 0xC05CFF05 - ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED Handle = 0xC05CFF06 - ERROR_SVHDX_RESERVATION_CONFLICT Handle = 0xC05CFF07 - ERROR_SVHDX_WRONG_FILE_TYPE Handle = 0xC05CFF08 - ERROR_SVHDX_VERSION_MISMATCH Handle = 0xC05CFF09 - ERROR_VHD_SHARED Handle = 0xC05CFF0A - ERROR_SVHDX_NO_INITIATOR Handle = 0xC05CFF0B - ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND Handle = 0xC05CFF0C - ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP Handle = 0xC05D0000 - ERROR_SMB_BAD_CLUSTER_DIALECT Handle = 0xC05D0001 - WININET_E_OUT_OF_HANDLES Handle = 0x80072EE1 - WININET_E_TIMEOUT Handle = 0x80072EE2 - WININET_E_EXTENDED_ERROR Handle = 0x80072EE3 - WININET_E_INTERNAL_ERROR Handle = 0x80072EE4 - WININET_E_INVALID_URL Handle = 0x80072EE5 - WININET_E_UNRECOGNIZED_SCHEME Handle = 0x80072EE6 - WININET_E_NAME_NOT_RESOLVED Handle = 0x80072EE7 - WININET_E_PROTOCOL_NOT_FOUND Handle = 0x80072EE8 - WININET_E_INVALID_OPTION Handle = 0x80072EE9 - WININET_E_BAD_OPTION_LENGTH Handle = 0x80072EEA - WININET_E_OPTION_NOT_SETTABLE Handle = 0x80072EEB - WININET_E_SHUTDOWN Handle = 0x80072EEC - WININET_E_INCORRECT_USER_NAME Handle = 0x80072EED - WININET_E_INCORRECT_PASSWORD Handle = 0x80072EEE - WININET_E_LOGIN_FAILURE Handle = 0x80072EEF - WININET_E_INVALID_OPERATION Handle = 0x80072EF0 - WININET_E_OPERATION_CANCELLED Handle = 0x80072EF1 - WININET_E_INCORRECT_HANDLE_TYPE Handle = 0x80072EF2 - WININET_E_INCORRECT_HANDLE_STATE Handle = 0x80072EF3 - WININET_E_NOT_PROXY_REQUEST Handle = 0x80072EF4 - WININET_E_REGISTRY_VALUE_NOT_FOUND Handle = 0x80072EF5 - WININET_E_BAD_REGISTRY_PARAMETER Handle = 0x80072EF6 - WININET_E_NO_DIRECT_ACCESS Handle = 0x80072EF7 - WININET_E_NO_CONTEXT Handle = 0x80072EF8 - WININET_E_NO_CALLBACK Handle = 0x80072EF9 - WININET_E_REQUEST_PENDING Handle = 0x80072EFA - WININET_E_INCORRECT_FORMAT Handle = 0x80072EFB - WININET_E_ITEM_NOT_FOUND Handle = 0x80072EFC - WININET_E_CANNOT_CONNECT Handle = 0x80072EFD - WININET_E_CONNECTION_ABORTED Handle = 0x80072EFE - WININET_E_CONNECTION_RESET Handle = 0x80072EFF - WININET_E_FORCE_RETRY Handle = 0x80072F00 - WININET_E_INVALID_PROXY_REQUEST Handle = 0x80072F01 - WININET_E_NEED_UI Handle = 0x80072F02 - WININET_E_HANDLE_EXISTS Handle = 0x80072F04 - WININET_E_SEC_CERT_DATE_INVALID Handle = 0x80072F05 - WININET_E_SEC_CERT_CN_INVALID Handle = 0x80072F06 - WININET_E_HTTP_TO_HTTPS_ON_REDIR Handle = 0x80072F07 - WININET_E_HTTPS_TO_HTTP_ON_REDIR Handle = 0x80072F08 - WININET_E_MIXED_SECURITY Handle = 0x80072F09 - WININET_E_CHG_POST_IS_NON_SECURE Handle = 0x80072F0A - WININET_E_POST_IS_NON_SECURE Handle = 0x80072F0B - WININET_E_CLIENT_AUTH_CERT_NEEDED Handle = 0x80072F0C - WININET_E_INVALID_CA Handle = 0x80072F0D - WININET_E_CLIENT_AUTH_NOT_SETUP Handle = 0x80072F0E - WININET_E_ASYNC_THREAD_FAILED Handle = 0x80072F0F - WININET_E_REDIRECT_SCHEME_CHANGE Handle = 0x80072F10 - WININET_E_DIALOG_PENDING Handle = 0x80072F11 - WININET_E_RETRY_DIALOG Handle = 0x80072F12 - WININET_E_NO_NEW_CONTAINERS Handle = 0x80072F13 - WININET_E_HTTPS_HTTP_SUBMIT_REDIR Handle = 0x80072F14 - WININET_E_SEC_CERT_ERRORS Handle = 0x80072F17 - WININET_E_SEC_CERT_REV_FAILED Handle = 0x80072F19 - WININET_E_HEADER_NOT_FOUND Handle = 0x80072F76 - WININET_E_DOWNLEVEL_SERVER Handle = 0x80072F77 - WININET_E_INVALID_SERVER_RESPONSE Handle = 0x80072F78 - WININET_E_INVALID_HEADER Handle = 0x80072F79 - WININET_E_INVALID_QUERY_REQUEST Handle = 0x80072F7A - WININET_E_HEADER_ALREADY_EXISTS Handle = 0x80072F7B - WININET_E_REDIRECT_FAILED Handle = 0x80072F7C - WININET_E_SECURITY_CHANNEL_ERROR Handle = 0x80072F7D - WININET_E_UNABLE_TO_CACHE_FILE Handle = 0x80072F7E - WININET_E_TCPIP_NOT_INSTALLED Handle = 0x80072F7F - WININET_E_DISCONNECTED Handle = 0x80072F83 - WININET_E_SERVER_UNREACHABLE Handle = 0x80072F84 - WININET_E_PROXY_SERVER_UNREACHABLE Handle = 0x80072F85 - WININET_E_BAD_AUTO_PROXY_SCRIPT Handle = 0x80072F86 - WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT Handle = 0x80072F87 - WININET_E_SEC_INVALID_CERT Handle = 0x80072F89 - WININET_E_SEC_CERT_REVOKED Handle = 0x80072F8A - WININET_E_FAILED_DUETOSECURITYCHECK Handle = 0x80072F8B - WININET_E_NOT_INITIALIZED Handle = 0x80072F8C - WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY Handle = 0x80072F8E - WININET_E_DECODING_FAILED Handle = 0x80072F8F - WININET_E_NOT_REDIRECTED Handle = 0x80072F80 - WININET_E_COOKIE_NEEDS_CONFIRMATION Handle = 0x80072F81 - WININET_E_COOKIE_DECLINED Handle = 0x80072F82 - WININET_E_REDIRECT_NEEDS_CONFIRMATION Handle = 0x80072F88 - SQLITE_E_ERROR Handle = 0x87AF0001 - SQLITE_E_INTERNAL Handle = 0x87AF0002 - SQLITE_E_PERM Handle = 0x87AF0003 - SQLITE_E_ABORT Handle = 0x87AF0004 - SQLITE_E_BUSY Handle = 0x87AF0005 - SQLITE_E_LOCKED Handle = 0x87AF0006 - SQLITE_E_NOMEM Handle = 0x87AF0007 - SQLITE_E_READONLY Handle = 0x87AF0008 - SQLITE_E_INTERRUPT Handle = 0x87AF0009 - SQLITE_E_IOERR Handle = 0x87AF000A - SQLITE_E_CORRUPT Handle = 0x87AF000B - SQLITE_E_NOTFOUND Handle = 0x87AF000C - SQLITE_E_FULL Handle = 0x87AF000D - SQLITE_E_CANTOPEN Handle = 0x87AF000E - SQLITE_E_PROTOCOL Handle = 0x87AF000F - SQLITE_E_EMPTY Handle = 0x87AF0010 - SQLITE_E_SCHEMA Handle = 0x87AF0011 - SQLITE_E_TOOBIG Handle = 0x87AF0012 - SQLITE_E_CONSTRAINT Handle = 0x87AF0013 - SQLITE_E_MISMATCH Handle = 0x87AF0014 - SQLITE_E_MISUSE Handle = 0x87AF0015 - SQLITE_E_NOLFS Handle = 0x87AF0016 - SQLITE_E_AUTH Handle = 0x87AF0017 - SQLITE_E_FORMAT Handle = 0x87AF0018 - SQLITE_E_RANGE Handle = 0x87AF0019 - SQLITE_E_NOTADB Handle = 0x87AF001A - SQLITE_E_NOTICE Handle = 0x87AF001B - SQLITE_E_WARNING Handle = 0x87AF001C - SQLITE_E_ROW Handle = 0x87AF0064 - SQLITE_E_DONE Handle = 0x87AF0065 - SQLITE_E_IOERR_READ Handle = 0x87AF010A - SQLITE_E_IOERR_SHORT_READ Handle = 0x87AF020A - SQLITE_E_IOERR_WRITE Handle = 0x87AF030A - SQLITE_E_IOERR_FSYNC Handle = 0x87AF040A - SQLITE_E_IOERR_DIR_FSYNC Handle = 0x87AF050A - SQLITE_E_IOERR_TRUNCATE Handle = 0x87AF060A - SQLITE_E_IOERR_FSTAT Handle = 0x87AF070A - SQLITE_E_IOERR_UNLOCK Handle = 0x87AF080A - SQLITE_E_IOERR_RDLOCK Handle = 0x87AF090A - SQLITE_E_IOERR_DELETE Handle = 0x87AF0A0A - SQLITE_E_IOERR_BLOCKED Handle = 0x87AF0B0A - SQLITE_E_IOERR_NOMEM Handle = 0x87AF0C0A - SQLITE_E_IOERR_ACCESS Handle = 0x87AF0D0A - SQLITE_E_IOERR_CHECKRESERVEDLOCK Handle = 0x87AF0E0A - SQLITE_E_IOERR_LOCK Handle = 0x87AF0F0A - SQLITE_E_IOERR_CLOSE Handle = 0x87AF100A - SQLITE_E_IOERR_DIR_CLOSE Handle = 0x87AF110A - SQLITE_E_IOERR_SHMOPEN Handle = 0x87AF120A - SQLITE_E_IOERR_SHMSIZE Handle = 0x87AF130A - SQLITE_E_IOERR_SHMLOCK Handle = 0x87AF140A - SQLITE_E_IOERR_SHMMAP Handle = 0x87AF150A - SQLITE_E_IOERR_SEEK Handle = 0x87AF160A - SQLITE_E_IOERR_DELETE_NOENT Handle = 0x87AF170A - SQLITE_E_IOERR_MMAP Handle = 0x87AF180A - SQLITE_E_IOERR_GETTEMPPATH Handle = 0x87AF190A - SQLITE_E_IOERR_CONVPATH Handle = 0x87AF1A0A - SQLITE_E_IOERR_VNODE Handle = 0x87AF1A02 - SQLITE_E_IOERR_AUTH Handle = 0x87AF1A03 - SQLITE_E_LOCKED_SHAREDCACHE Handle = 0x87AF0106 - SQLITE_E_BUSY_RECOVERY Handle = 0x87AF0105 - SQLITE_E_BUSY_SNAPSHOT Handle = 0x87AF0205 - SQLITE_E_CANTOPEN_NOTEMPDIR Handle = 0x87AF010E - SQLITE_E_CANTOPEN_ISDIR Handle = 0x87AF020E - SQLITE_E_CANTOPEN_FULLPATH Handle = 0x87AF030E - SQLITE_E_CANTOPEN_CONVPATH Handle = 0x87AF040E - SQLITE_E_CORRUPT_VTAB Handle = 0x87AF010B - SQLITE_E_READONLY_RECOVERY Handle = 0x87AF0108 - SQLITE_E_READONLY_CANTLOCK Handle = 0x87AF0208 - SQLITE_E_READONLY_ROLLBACK Handle = 0x87AF0308 - SQLITE_E_READONLY_DBMOVED Handle = 0x87AF0408 - SQLITE_E_ABORT_ROLLBACK Handle = 0x87AF0204 - SQLITE_E_CONSTRAINT_CHECK Handle = 0x87AF0113 - SQLITE_E_CONSTRAINT_COMMITHOOK Handle = 0x87AF0213 - SQLITE_E_CONSTRAINT_FOREIGNKEY Handle = 0x87AF0313 - SQLITE_E_CONSTRAINT_FUNCTION Handle = 0x87AF0413 - SQLITE_E_CONSTRAINT_NOTNULL Handle = 0x87AF0513 - SQLITE_E_CONSTRAINT_PRIMARYKEY Handle = 0x87AF0613 - SQLITE_E_CONSTRAINT_TRIGGER Handle = 0x87AF0713 - SQLITE_E_CONSTRAINT_UNIQUE Handle = 0x87AF0813 - SQLITE_E_CONSTRAINT_VTAB Handle = 0x87AF0913 - SQLITE_E_CONSTRAINT_ROWID Handle = 0x87AF0A13 - SQLITE_E_NOTICE_RECOVER_WAL Handle = 0x87AF011B - SQLITE_E_NOTICE_RECOVER_ROLLBACK Handle = 0x87AF021B - SQLITE_E_WARNING_AUTOINDEX Handle = 0x87AF011C - UTC_E_TOGGLE_TRACE_STARTED Handle = 0x87C51001 - UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT Handle = 0x87C51002 - UTC_E_AOT_NOT_RUNNING Handle = 0x87C51003 - UTC_E_SCRIPT_TYPE_INVALID Handle = 0x87C51004 - UTC_E_SCENARIODEF_NOT_FOUND Handle = 0x87C51005 - UTC_E_TRACEPROFILE_NOT_FOUND Handle = 0x87C51006 - UTC_E_FORWARDER_ALREADY_ENABLED Handle = 0x87C51007 - UTC_E_FORWARDER_ALREADY_DISABLED Handle = 0x87C51008 - UTC_E_EVENTLOG_ENTRY_MALFORMED Handle = 0x87C51009 - UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH Handle = 0x87C5100A - UTC_E_SCRIPT_TERMINATED Handle = 0x87C5100B - UTC_E_INVALID_CUSTOM_FILTER Handle = 0x87C5100C - UTC_E_TRACE_NOT_RUNNING Handle = 0x87C5100D - UTC_E_REESCALATED_TOO_QUICKLY Handle = 0x87C5100E - UTC_E_ESCALATION_ALREADY_RUNNING Handle = 0x87C5100F - UTC_E_PERFTRACK_ALREADY_TRACING Handle = 0x87C51010 - UTC_E_REACHED_MAX_ESCALATIONS Handle = 0x87C51011 - UTC_E_FORWARDER_PRODUCER_MISMATCH Handle = 0x87C51012 - UTC_E_INTENTIONAL_SCRIPT_FAILURE Handle = 0x87C51013 - UTC_E_SQM_INIT_FAILED Handle = 0x87C51014 - UTC_E_NO_WER_LOGGER_SUPPORTED Handle = 0x87C51015 - UTC_E_TRACERS_DONT_EXIST Handle = 0x87C51016 - UTC_E_WINRT_INIT_FAILED Handle = 0x87C51017 - UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH Handle = 0x87C51018 - UTC_E_INVALID_FILTER Handle = 0x87C51019 - UTC_E_EXE_TERMINATED Handle = 0x87C5101A - UTC_E_ESCALATION_NOT_AUTHORIZED Handle = 0x87C5101B - UTC_E_SETUP_NOT_AUTHORIZED Handle = 0x87C5101C - UTC_E_CHILD_PROCESS_FAILED Handle = 0x87C5101D - UTC_E_COMMAND_LINE_NOT_AUTHORIZED Handle = 0x87C5101E - UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML Handle = 0x87C5101F - UTC_E_ESCALATION_TIMED_OUT Handle = 0x87C51020 - UTC_E_SETUP_TIMED_OUT Handle = 0x87C51021 - UTC_E_TRIGGER_MISMATCH Handle = 0x87C51022 - UTC_E_TRIGGER_NOT_FOUND Handle = 0x87C51023 - UTC_E_SIF_NOT_SUPPORTED Handle = 0x87C51024 - UTC_E_DELAY_TERMINATED Handle = 0x87C51025 - UTC_E_DEVICE_TICKET_ERROR Handle = 0x87C51026 - UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED Handle = 0x87C51027 - UTC_E_API_RESULT_UNAVAILABLE Handle = 0x87C51028 - UTC_E_RPC_TIMEOUT Handle = 0x87C51029 - UTC_E_RPC_WAIT_FAILED Handle = 0x87C5102A - UTC_E_API_BUSY Handle = 0x87C5102B - UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET Handle = 0x87C5102C - UTC_E_EXCLUSIVITY_NOT_AVAILABLE Handle = 0x87C5102D - UTC_E_GETFILE_FILE_PATH_NOT_APPROVED Handle = 0x87C5102E - UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS Handle = 0x87C5102F - UTC_E_TIME_TRIGGER_ON_START_INVALID Handle = 0x87C51030 - UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION Handle = 0x87C51031 - UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE Handle = 0x87C51032 - UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE Handle = 0x87C51033 - UTC_E_BINARY_MISSING Handle = 0x87C51034 - UTC_E_NETWORK_CAPTURE_NOT_ALLOWED Handle = 0x87C51035 - UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID Handle = 0x87C51036 - UTC_E_UNABLE_TO_RESOLVE_SESSION Handle = 0x87C51037 - UTC_E_THROTTLED Handle = 0x87C51038 - UTC_E_UNAPPROVED_SCRIPT Handle = 0x87C51039 - UTC_E_SCRIPT_MISSING Handle = 0x87C5103A - UTC_E_SCENARIO_THROTTLED Handle = 0x87C5103B - UTC_E_API_NOT_SUPPORTED Handle = 0x87C5103C - UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED Handle = 0x87C5103D - UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED Handle = 0x87C5103E - UTC_E_CERT_REV_FAILED Handle = 0x87C5103F - UTC_E_FAILED_TO_START_NDISCAP Handle = 0x87C51040 - UTC_E_KERNELDUMP_LIMIT_REACHED Handle = 0x87C51041 - UTC_E_MISSING_AGGREGATE_EVENT_TAG Handle = 0x87C51042 - UTC_E_INVALID_AGGREGATION_STRUCT Handle = 0x87C51043 - UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION Handle = 0x87C51044 - UTC_E_FILTER_MISSING_ATTRIBUTE Handle = 0x87C51045 - UTC_E_FILTER_INVALID_TYPE Handle = 0x87C51046 - UTC_E_FILTER_VARIABLE_NOT_FOUND Handle = 0x87C51047 - UTC_E_FILTER_FUNCTION_RESTRICTED Handle = 0x87C51048 - UTC_E_FILTER_VERSION_MISMATCH Handle = 0x87C51049 - UTC_E_FILTER_INVALID_FUNCTION Handle = 0x87C51050 - UTC_E_FILTER_INVALID_FUNCTION_PARAMS Handle = 0x87C51051 - UTC_E_FILTER_INVALID_COMMAND Handle = 0x87C51052 - UTC_E_FILTER_ILLEGAL_EVAL Handle = 0x87C51053 - UTC_E_TTTRACER_RETURNED_ERROR Handle = 0x87C51054 - UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE Handle = 0x87C51055 - UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS Handle = 0x87C51056 - UTC_E_SCENARIO_HAS_NO_ACTIONS Handle = 0x87C51057 - UTC_E_TTTRACER_STORAGE_FULL Handle = 0x87C51058 - UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE Handle = 0x87C51059 - UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN Handle = 0x87C5105A - UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED Handle = 0x87C5105B - WINML_ERR_INVALID_DEVICE Handle = 0x88900001 - WINML_ERR_INVALID_BINDING Handle = 0x88900002 - WINML_ERR_VALUE_NOTFOUND Handle = 0x88900003 - WINML_ERR_SIZE_MISMATCH Handle = 0x88900004 -) diff --git a/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go deleted file mode 100644 index 6048ac679..000000000 --- a/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go +++ /dev/null @@ -1,149 +0,0 @@ -// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT. - -package windows - -type KNOWNFOLDERID GUID - -var ( - FOLDERID_NetworkFolder = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}} - FOLDERID_ComputerFolder = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}} - FOLDERID_InternetFolder = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}} - FOLDERID_ControlPanelFolder = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}} - FOLDERID_PrintersFolder = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}} - FOLDERID_SyncManagerFolder = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}} - FOLDERID_SyncSetupFolder = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}} - FOLDERID_ConflictFolder = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}} - FOLDERID_SyncResultsFolder = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}} - FOLDERID_RecycleBinFolder = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}} - FOLDERID_ConnectionsFolder = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}} - FOLDERID_Fonts = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}} - FOLDERID_Desktop = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}} - FOLDERID_Startup = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}} - FOLDERID_Programs = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}} - FOLDERID_StartMenu = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}} - FOLDERID_Recent = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}} - FOLDERID_SendTo = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}} - FOLDERID_Documents = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}} - FOLDERID_Favorites = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}} - FOLDERID_NetHood = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}} - FOLDERID_PrintHood = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}} - FOLDERID_Templates = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}} - FOLDERID_CommonStartup = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}} - FOLDERID_CommonPrograms = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}} - FOLDERID_CommonStartMenu = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}} - FOLDERID_PublicDesktop = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}} - FOLDERID_ProgramData = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}} - FOLDERID_CommonTemplates = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}} - FOLDERID_PublicDocuments = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}} - FOLDERID_RoamingAppData = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}} - FOLDERID_LocalAppData = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}} - FOLDERID_LocalAppDataLow = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}} - FOLDERID_InternetCache = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}} - FOLDERID_Cookies = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}} - FOLDERID_History = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}} - FOLDERID_System = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}} - FOLDERID_SystemX86 = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}} - FOLDERID_Windows = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}} - FOLDERID_Profile = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}} - FOLDERID_Pictures = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}} - FOLDERID_ProgramFilesX86 = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}} - FOLDERID_ProgramFilesCommonX86 = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}} - FOLDERID_ProgramFilesX64 = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}} - FOLDERID_ProgramFilesCommonX64 = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}} - FOLDERID_ProgramFiles = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}} - FOLDERID_ProgramFilesCommon = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}} - FOLDERID_UserProgramFiles = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}} - FOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}} - FOLDERID_AdminTools = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}} - FOLDERID_CommonAdminTools = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}} - FOLDERID_Music = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}} - FOLDERID_Videos = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}} - FOLDERID_Ringtones = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}} - FOLDERID_PublicPictures = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}} - FOLDERID_PublicMusic = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}} - FOLDERID_PublicVideos = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}} - FOLDERID_PublicRingtones = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}} - FOLDERID_ResourceDir = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}} - FOLDERID_LocalizedResourcesDir = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}} - FOLDERID_CommonOEMLinks = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}} - FOLDERID_CDBurning = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}} - FOLDERID_UserProfiles = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}} - FOLDERID_Playlists = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}} - FOLDERID_SamplePlaylists = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}} - FOLDERID_SampleMusic = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}} - FOLDERID_SamplePictures = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}} - FOLDERID_SampleVideos = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}} - FOLDERID_PhotoAlbums = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}} - FOLDERID_Public = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}} - FOLDERID_ChangeRemovePrograms = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}} - FOLDERID_AppUpdates = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}} - FOLDERID_AddNewPrograms = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}} - FOLDERID_Downloads = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}} - FOLDERID_PublicDownloads = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}} - FOLDERID_SavedSearches = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}} - FOLDERID_QuickLaunch = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}} - FOLDERID_Contacts = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}} - FOLDERID_SidebarParts = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}} - FOLDERID_SidebarDefaultParts = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}} - FOLDERID_PublicGameTasks = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}} - FOLDERID_GameTasks = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}} - FOLDERID_SavedGames = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}} - FOLDERID_Games = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}} - FOLDERID_SEARCH_MAPI = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}} - FOLDERID_SEARCH_CSC = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}} - FOLDERID_Links = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}} - FOLDERID_UsersFiles = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}} - FOLDERID_UsersLibraries = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}} - FOLDERID_SearchHome = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}} - FOLDERID_OriginalImages = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}} - FOLDERID_DocumentsLibrary = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}} - FOLDERID_MusicLibrary = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}} - FOLDERID_PicturesLibrary = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}} - FOLDERID_VideosLibrary = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}} - FOLDERID_RecordedTVLibrary = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}} - FOLDERID_HomeGroup = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}} - FOLDERID_HomeGroupCurrentUser = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}} - FOLDERID_DeviceMetadataStore = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}} - FOLDERID_Libraries = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}} - FOLDERID_PublicLibraries = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}} - FOLDERID_UserPinned = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}} - FOLDERID_ImplicitAppShortcuts = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}} - FOLDERID_AccountPictures = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}} - FOLDERID_PublicUserTiles = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}} - FOLDERID_AppsFolder = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}} - FOLDERID_StartMenuAllPrograms = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}} - FOLDERID_CommonStartMenuPlaces = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}} - FOLDERID_ApplicationShortcuts = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}} - FOLDERID_RoamingTiles = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}} - FOLDERID_RoamedTileImages = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}} - FOLDERID_Screenshots = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}} - FOLDERID_CameraRoll = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}} - FOLDERID_SkyDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} - FOLDERID_OneDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} - FOLDERID_SkyDriveDocuments = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}} - FOLDERID_SkyDrivePictures = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}} - FOLDERID_SkyDriveMusic = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}} - FOLDERID_SkyDriveCameraRoll = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}} - FOLDERID_SearchHistory = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}} - FOLDERID_SearchTemplates = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}} - FOLDERID_CameraRollLibrary = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}} - FOLDERID_SavedPictures = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}} - FOLDERID_SavedPicturesLibrary = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}} - FOLDERID_RetailDemo = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}} - FOLDERID_Device = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}} - FOLDERID_DevelopmentFiles = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}} - FOLDERID_Objects3D = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}} - FOLDERID_AppCaptures = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}} - FOLDERID_LocalDocuments = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}} - FOLDERID_LocalPictures = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}} - FOLDERID_LocalVideos = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}} - FOLDERID_LocalMusic = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}} - FOLDERID_LocalDownloads = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}} - FOLDERID_RecordedCalls = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}} - FOLDERID_AllAppMods = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}} - FOLDERID_CurrentAppMods = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}} - FOLDERID_AppDataDesktop = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}} - FOLDERID_AppDataDocuments = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}} - FOLDERID_AppDataFavorites = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}} - FOLDERID_AppDataProgramData = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}} -) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index e66ab0494..e4b54e2d9 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -38,17 +38,14 @@ var ( modadvapi32 = NewLazySystemDLL("advapi32.dll") modkernel32 = NewLazySystemDLL("kernel32.dll") modshell32 = NewLazySystemDLL("shell32.dll") - moduserenv = NewLazySystemDLL("userenv.dll") modmswsock = NewLazySystemDLL("mswsock.dll") modcrypt32 = NewLazySystemDLL("crypt32.dll") - moduser32 = NewLazySystemDLL("user32.dll") - modole32 = NewLazySystemDLL("ole32.dll") modws2_32 = NewLazySystemDLL("ws2_32.dll") moddnsapi = NewLazySystemDLL("dnsapi.dll") modiphlpapi = NewLazySystemDLL("iphlpapi.dll") modsecur32 = NewLazySystemDLL("secur32.dll") modnetapi32 = NewLazySystemDLL("netapi32.dll") - modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") + moduserenv = NewLazySystemDLL("userenv.dll") procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") @@ -60,7 +57,6 @@ var ( procDeleteService = modadvapi32.NewProc("DeleteService") procStartServiceW = modadvapi32.NewProc("StartServiceW") procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") - procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") procControlService = modadvapi32.NewProc("ControlService") procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") @@ -70,7 +66,6 @@ var ( procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") - procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW") procGetLastError = modkernel32.NewProc("GetLastError") procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") @@ -79,11 +74,9 @@ var ( procGetVersion = modkernel32.NewProc("GetVersion") procFormatMessageW = modkernel32.NewProc("FormatMessageW") procExitProcess = modkernel32.NewProc("ExitProcess") - procIsWow64Process = modkernel32.NewProc("IsWow64Process") procCreateFileW = modkernel32.NewProc("CreateFileW") procReadFile = modkernel32.NewProc("ReadFile") procWriteFile = modkernel32.NewProc("WriteFile") - procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") procSetFilePointer = modkernel32.NewProc("SetFilePointer") procCloseHandle = modkernel32.NewProc("CloseHandle") procGetStdHandle = modkernel32.NewProc("GetStdHandle") @@ -92,7 +85,6 @@ var ( procFindNextFileW = modkernel32.NewProc("FindNextFileW") procFindClose = modkernel32.NewProc("FindClose") procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") - procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") @@ -113,13 +105,10 @@ var ( procCancelIoEx = modkernel32.NewProc("CancelIoEx") procCreateProcessW = modkernel32.NewProc("CreateProcessW") procOpenProcess = modkernel32.NewProc("OpenProcess") - procShellExecuteW = modshell32.NewProc("ShellExecuteW") - procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") procTerminateProcess = modkernel32.NewProc("TerminateProcess") procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess") - procGetCurrentThread = modkernel32.NewProc("GetCurrentThread") procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") @@ -134,9 +123,6 @@ var ( procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") - procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") - procGetTickCount64 = modkernel32.NewProc("GetTickCount64") procSetFileTime = modkernel32.NewProc("SetFileTime") procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") @@ -184,8 +170,6 @@ var ( procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") procProcess32FirstW = modkernel32.NewProc("Process32FirstW") procProcess32NextW = modkernel32.NewProc("Process32NextW") - procThread32First = modkernel32.NewProc("Thread32First") - procThread32Next = modkernel32.NewProc("Thread32Next") procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") @@ -196,18 +180,6 @@ var ( procSetEvent = modkernel32.NewProc("SetEvent") procResetEvent = modkernel32.NewProc("ResetEvent") procPulseEvent = modkernel32.NewProc("PulseEvent") - procSleepEx = modkernel32.NewProc("SleepEx") - procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW") - procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") - procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procResumeThread = modkernel32.NewProc("ResumeThread") - procSetPriorityClass = modkernel32.NewProc("SetPriorityClass") - procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") - procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") - procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") - procGetProcessId = modkernel32.NewProc("GetProcessId") - procOpenThread = modkernel32.NewProc("OpenThread") procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") @@ -227,11 +199,6 @@ var ( procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") - procMessageBoxW = moduser32.NewProc("MessageBoxW") - procCLSIDFromString = modole32.NewProc("CLSIDFromString") - procStringFromGUID2 = modole32.NewProc("StringFromGUID2") - procCoCreateGuid = modole32.NewProc("CoCreateGuid") - procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") procWSAStartup = modws2_32.NewProc("WSAStartup") procWSACleanup = modws2_32.NewProc("WSACleanup") procWSAIoctl = modws2_32.NewProc("WSAIoctl") @@ -279,31 +246,12 @@ var ( procGetLengthSid = modadvapi32.NewProc("GetLengthSid") procCopySid = modadvapi32.NewProc("CopySid") procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") - procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") - procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid") procFreeSid = modadvapi32.NewProc("FreeSid") procEqualSid = modadvapi32.NewProc("EqualSid") - procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority") - procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount") - procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority") - procIsValidSid = modadvapi32.NewProc("IsValidSid") procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") - procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") - procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") - procRevertToSelf = modadvapi32.NewProc("RevertToSelf") - procSetThreadToken = modadvapi32.NewProc("SetThreadToken") - procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") - procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") - procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups") procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") - procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") - procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") - procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") - procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken") - procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW") - procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory") ) func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { @@ -430,18 +378,6 @@ func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { return } -func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) if r1 == 0 { @@ -550,14 +486,6 @@ func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize return } -func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { - r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - func GetLastError() (lasterr error) { r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) if r0 != 0 { @@ -679,19 +607,7 @@ func ExitProcess(exitcode uint32) { return } -func IsWow64Process(handle Handle, isWow64 *bool) (err error) { - r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(isWow64)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { +func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) { r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) handle = Handle(r0) if handle == InvalidHandle { @@ -736,24 +652,6 @@ func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) return } -func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { - var _p0 uint32 - if wait { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) newlowoffset = uint32(r0) @@ -853,18 +751,6 @@ func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (e return } -func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) n = uint32(r0) @@ -1088,14 +974,14 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA return } -func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { +func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) { var _p0 uint32 if inheritHandle { _p0 = 1 } else { _p0 = 0 } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(da), uintptr(_p0), uintptr(pid)) handle = Handle(r0) if handle == 0 { if e1 != 0 { @@ -1107,26 +993,6 @@ func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (ha return } -func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { - r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { - r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - func TerminateProcess(handle Handle, exitcode uint32) (err error) { r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) if r1 == 0 { @@ -1176,19 +1042,6 @@ func GetCurrentProcess() (pseudoHandle Handle, err error) { return } -func GetCurrentThread() (pseudoHandle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0) - pseudoHandle = Handle(r0) - if pseudoHandle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) if r1 == 0 { @@ -1375,42 +1228,6 @@ func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { return } -func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { - var _p0 uint32 - if inheritExisting { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DestroyEnvironmentBlock(block *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func getTickCount64() (ms uint64) { - r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) - ms = uint64(r0) - return -} - func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) if r1 == 0 { @@ -1853,7 +1670,7 @@ func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32 return } -func GetCurrentProcessId() (pid uint32) { +func getCurrentProcessId() (pid uint32) { r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) pid = uint32(r0) return @@ -1956,30 +1773,6 @@ func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { return } -func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { @@ -2103,156 +1896,6 @@ func PulseEvent(event Handle) (err error) { return } -func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { - var _p0 uint32 - if alertable { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) - ret = uint32(r0) - return -} - -func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func TerminateJobObject(job Handle, exitCode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetErrorMode(mode uint32) (ret uint32) { - r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) - ret = uint32(r0) - return -} - -func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) - ret = uint32(r0) - if ret == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetPriorityClass(process Handle, priorityClass uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetPriorityClass(process Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) - ret = uint32(r0) - if ret == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { - r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) - ret = int(r0) - if ret == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetProcessId(process Handle) (id uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) - id = uint32(r0) - if id == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) if r1 == 0 { @@ -2480,46 +2123,6 @@ func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err erro return } -func MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { - r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) - ret = int32(r0) - if ret == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { - r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) - chars = int32(r0) - return -} - -func coCreateGuid(pguid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func coTaskMemFree(address unsafe.Pointer) { - syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) - return -} - func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) if r0 != 0 { @@ -3050,24 +2653,6 @@ func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, s return } -func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) - isWellKnown = r0 != 0 - return -} - func FreeSid(sid *SID) (err error) { r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) if r1 != 0 { @@ -3086,30 +2671,6 @@ func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { return } -func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) - return -} - -func getSidSubAuthorityCount(sid *SID) (count *uint8) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - count = (*uint8)(unsafe.Pointer(r0)) - return -} - -func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) - subAuthority = (*uint32)(unsafe.Pointer(r0)) - return -} - -func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - isValid = r0 != 0 - return -} - func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) if r1 == 0 { @@ -3122,8 +2683,8 @@ func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) ( return } -func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) +func OpenProcessToken(h Handle, access uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(h), uintptr(access), uintptr(unsafe.Pointer(token))) if r1 == 0 { if e1 != 0 { err = errnoErr(e1) @@ -3134,134 +2695,8 @@ func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { return } -func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) { - var _p0 uint32 - if openAsSelf { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func RevertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetThreadToken(thread *Handle, token Token) (err error) { - r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { - r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { - var _p0 uint32 - if disableAllPrivileges { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { - var _p0 uint32 - if resetToDefault { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { - r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) +func GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(t), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) if r1 == 0 { if e1 != 0 { err = errnoErr(e1) @@ -3283,45 +2718,3 @@ func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { } return } - -func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) - len = uint32(r0) - if len == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WTSQueryUserToken(session uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WTSFreeMemory(ptr uintptr) { - syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) - return -} diff --git a/vendor/golang.org/x/text/encoding/encoding.go b/vendor/golang.org/x/text/encoding/encoding.go index a0bd7cd4d..221f175c0 100644 --- a/vendor/golang.org/x/text/encoding/encoding.go +++ b/vendor/golang.org/x/text/encoding/encoding.go @@ -124,7 +124,7 @@ func (e *Encoder) Writer(w io.Writer) io.Writer { } // ASCIISub is the ASCII substitute character, as recommended by -// https://unicode.org/reports/tr36/#Text_Comparison +// http://unicode.org/reports/tr36/#Text_Comparison const ASCIISub = '\x1a' // Nop is the nop encoding. Its transformed bytes are the same as the source diff --git a/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/vendor/golang.org/x/text/encoding/htmlindex/tables.go index f074e2c6d..9d6b4315c 100644 --- a/vendor/golang.org/x/text/encoding/htmlindex/tables.go +++ b/vendor/golang.org/x/text/encoding/htmlindex/tables.go @@ -306,7 +306,6 @@ var nameMap = map[string]htmlEncoding{ "iso-2022-cn": replacement, "iso-2022-cn-ext": replacement, "iso-2022-kr": replacement, - "replacement": replacement, "utf-16be": utf16be, "utf-16": utf16le, "utf-16le": utf16le, diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/gen.go b/vendor/golang.org/x/text/encoding/internal/identifier/gen.go index 26cfef9c6..0c8eba7e5 100644 --- a/vendor/golang.org/x/text/encoding/internal/identifier/gen.go +++ b/vendor/golang.org/x/text/encoding/internal/identifier/gen.go @@ -109,12 +109,7 @@ func main() { use = use || a.Value != "person" } if a.Name.Local == "data" && use { - // Patch up URLs to use https. From some links, the - // https version is different from the http one. - s := a.Value - s = strings.Replace(s, "http://", "https://", -1) - s = strings.Replace(s, "/unicode/", "/", -1) - attr = s + " " + attr = a.Value + " " } } } diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go index 5c9b85c28..7351b4ef8 100644 --- a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go +++ b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go @@ -34,7 +34,7 @@ package identifier // - http://www.iana.org/assignments/character-sets/character-sets.xhtml // - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib // - http://www.ietf.org/rfc/rfc2978.txt -// - https://www.unicode.org/reports/tr22/ +// - http://www.unicode.org/reports/tr22/ // - http://www.w3.org/TR/encoding/ // - https://encoding.spec.whatwg.org/ // - https://encoding.spec.whatwg.org/encodings.json diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go index fc7df1bc7..768842b0a 100644 --- a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go +++ b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go @@ -538,6 +538,8 @@ const ( // ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic. // // ISO registry + // (formerly ECMA + // registry ) ISO111ECMACyrillic MIB = 77 // ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1. @@ -730,18 +732,18 @@ const ( // ISO885913 is the MIB identifier with IANA name ISO-8859-13. // - // ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-13 https://www.iana.org/assignments/charset-reg/ISO-8859-13 + // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-13 http://www.iana.org/assignments/charset-reg/ISO-8859-13 ISO885913 MIB = 109 // ISO885914 is the MIB identifier with IANA name ISO-8859-14. // - // ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-14 + // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-14 ISO885914 MIB = 110 // ISO885915 is the MIB identifier with IANA name ISO-8859-15. // // ISO - // Please see: https://www.iana.org/assignments/charset-reg/ISO-8859-15 + // Please see: http://www.iana.org/assignments/charset-reg/ISO-8859-15 ISO885915 MIB = 111 // ISO885916 is the MIB identifier with IANA name ISO-8859-16. @@ -752,41 +754,41 @@ const ( // GBK is the MIB identifier with IANA name GBK. // // Chinese IT Standardization Technical Committee - // Please see: https://www.iana.org/assignments/charset-reg/GBK + // Please see: http://www.iana.org/assignments/charset-reg/GBK GBK MIB = 113 // GB18030 is the MIB identifier with IANA name GB18030. // // Chinese IT Standardization Technical Committee - // Please see: https://www.iana.org/assignments/charset-reg/GB18030 + // Please see: http://www.iana.org/assignments/charset-reg/GB18030 GB18030 MIB = 114 // OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15. // // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15 + // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15 OSDEBCDICDF0415 MIB = 115 // OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV. // // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV + // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV OSDEBCDICDF03IRV MIB = 116 // OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1. // // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1 + // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1 OSDEBCDICDF041 MIB = 117 // ISO115481 is the MIB identifier with IANA name ISO-11548-1. // - // See https://www.iana.org/assignments/charset-reg/ISO-11548-1 + // See http://www.iana.org/assignments/charset-reg/ISO-11548-1 ISO115481 MIB = 118 // KZ1048 is the MIB identifier with IANA name KZ-1048. // - // See https://www.iana.org/assignments/charset-reg/KZ-1048 + // See http://www.iana.org/assignments/charset-reg/KZ-1048 KZ1048 MIB = 119 // Unicode is the MIB identifier with IANA name ISO-10646-UCS-2. @@ -853,7 +855,7 @@ const ( // SCSU is the MIB identifier with IANA name SCSU. // - // SCSU See https://www.iana.org/assignments/charset-reg/SCSU + // SCSU See http://www.iana.org/assignments/charset-reg/SCSU SCSU MIB = 1011 // UTF7 is the MIB identifier with IANA name UTF-7. @@ -882,27 +884,27 @@ const ( // CESU8 is the MIB identifier with IANA name CESU-8. // - // https://www.unicode.org/reports/tr26 + // http://www.unicode.org/unicode/reports/tr26 CESU8 MIB = 1016 // UTF32 is the MIB identifier with IANA name UTF-32. // - // https://www.unicode.org/reports/tr19/ + // http://www.unicode.org/unicode/reports/tr19/ UTF32 MIB = 1017 // UTF32BE is the MIB identifier with IANA name UTF-32BE. // - // https://www.unicode.org/reports/tr19/ + // http://www.unicode.org/unicode/reports/tr19/ UTF32BE MIB = 1018 // UTF32LE is the MIB identifier with IANA name UTF-32LE. // - // https://www.unicode.org/reports/tr19/ + // http://www.unicode.org/unicode/reports/tr19/ UTF32LE MIB = 1019 // BOCU1 is the MIB identifier with IANA name BOCU-1. // - // https://www.unicode.org/notes/tn6/ + // http://www.unicode.org/notes/tn6/ BOCU1 MIB = 1020 // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1. @@ -1459,152 +1461,152 @@ const ( // IBM00858 is the MIB identifier with IANA name IBM00858. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM00858 + // IBM See http://www.iana.org/assignments/charset-reg/IBM00858 IBM00858 MIB = 2089 // IBM00924 is the MIB identifier with IANA name IBM00924. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM00924 + // IBM See http://www.iana.org/assignments/charset-reg/IBM00924 IBM00924 MIB = 2090 // IBM01140 is the MIB identifier with IANA name IBM01140. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01140 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01140 IBM01140 MIB = 2091 // IBM01141 is the MIB identifier with IANA name IBM01141. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01141 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01141 IBM01141 MIB = 2092 // IBM01142 is the MIB identifier with IANA name IBM01142. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01142 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01142 IBM01142 MIB = 2093 // IBM01143 is the MIB identifier with IANA name IBM01143. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01143 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01143 IBM01143 MIB = 2094 // IBM01144 is the MIB identifier with IANA name IBM01144. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01144 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01144 IBM01144 MIB = 2095 // IBM01145 is the MIB identifier with IANA name IBM01145. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01145 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01145 IBM01145 MIB = 2096 // IBM01146 is the MIB identifier with IANA name IBM01146. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01146 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01146 IBM01146 MIB = 2097 // IBM01147 is the MIB identifier with IANA name IBM01147. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01147 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01147 IBM01147 MIB = 2098 // IBM01148 is the MIB identifier with IANA name IBM01148. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01148 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01148 IBM01148 MIB = 2099 // IBM01149 is the MIB identifier with IANA name IBM01149. // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01149 + // IBM See http://www.iana.org/assignments/charset-reg/IBM01149 IBM01149 MIB = 2100 // Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS. // - // See https://www.iana.org/assignments/charset-reg/Big5-HKSCS + // See http://www.iana.org/assignments/charset-reg/Big5-HKSCS Big5HKSCS MIB = 2101 // IBM1047 is the MIB identifier with IANA name IBM1047. // - // IBM1047 (EBCDIC Latin 1/Open Systems) https://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf + // IBM1047 (EBCDIC Latin 1/Open Systems) http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf IBM1047 MIB = 2102 // PTCP154 is the MIB identifier with IANA name PTCP154. // - // See https://www.iana.org/assignments/charset-reg/PTCP154 + // See http://www.iana.org/assignments/charset-reg/PTCP154 PTCP154 MIB = 2103 // Amiga1251 is the MIB identifier with IANA name Amiga-1251. // - // See https://www.amiga.ultranet.ru/Amiga-1251.html + // See http://www.amiga.ultranet.ru/Amiga-1251.html Amiga1251 MIB = 2104 // KOI7switched is the MIB identifier with IANA name KOI7-switched. // - // See https://www.iana.org/assignments/charset-reg/KOI7-switched + // See http://www.iana.org/assignments/charset-reg/KOI7-switched KOI7switched MIB = 2105 // BRF is the MIB identifier with IANA name BRF. // - // See https://www.iana.org/assignments/charset-reg/BRF + // See http://www.iana.org/assignments/charset-reg/BRF BRF MIB = 2106 // TSCII is the MIB identifier with IANA name TSCII. // - // See https://www.iana.org/assignments/charset-reg/TSCII + // See http://www.iana.org/assignments/charset-reg/TSCII TSCII MIB = 2107 // CP51932 is the MIB identifier with IANA name CP51932. // - // See https://www.iana.org/assignments/charset-reg/CP51932 + // See http://www.iana.org/assignments/charset-reg/CP51932 CP51932 MIB = 2108 // Windows874 is the MIB identifier with IANA name windows-874. // - // See https://www.iana.org/assignments/charset-reg/windows-874 + // See http://www.iana.org/assignments/charset-reg/windows-874 Windows874 MIB = 2109 // Windows1250 is the MIB identifier with IANA name windows-1250. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1250 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1250 Windows1250 MIB = 2250 // Windows1251 is the MIB identifier with IANA name windows-1251. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1251 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1251 Windows1251 MIB = 2251 // Windows1252 is the MIB identifier with IANA name windows-1252. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1252 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1252 Windows1252 MIB = 2252 // Windows1253 is the MIB identifier with IANA name windows-1253. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1253 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1253 Windows1253 MIB = 2253 // Windows1254 is the MIB identifier with IANA name windows-1254. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1254 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1254 Windows1254 MIB = 2254 // Windows1255 is the MIB identifier with IANA name windows-1255. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1255 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1255 Windows1255 MIB = 2255 // Windows1256 is the MIB identifier with IANA name windows-1256. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1256 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1256 Windows1256 MIB = 2256 // Windows1257 is the MIB identifier with IANA name windows-1257. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1257 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1257 Windows1257 MIB = 2257 // Windows1258 is the MIB identifier with IANA name windows-1258. // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1258 + // Microsoft http://www.iana.org/assignments/charset-reg/windows-1258 Windows1258 MIB = 2258 // TIS620 is the MIB identifier with IANA name TIS-620. @@ -1614,6 +1616,6 @@ const ( // CP50220 is the MIB identifier with IANA name CP50220. // - // See https://www.iana.org/assignments/charset-reg/CP50220 + // See http://www.iana.org/assignments/charset-reg/CP50220 CP50220 MIB = 2260 ) diff --git a/vendor/golang.org/x/text/encoding/japanese/maketables.go b/vendor/golang.org/x/text/encoding/japanese/maketables.go index 023957a67..d6c10deb0 100644 --- a/vendor/golang.org/x/text/encoding/japanese/maketables.go +++ b/vendor/golang.org/x/text/encoding/japanese/maketables.go @@ -10,8 +10,8 @@ package main // go run maketables.go | gofmt > tables.go // TODO: Emoji extensions? -// https://www.unicode.org/faq/emoji_dingbats.html -// https://www.unicode.org/Public/UNIDATA/EmojiSources.txt +// http://www.unicode.org/faq/emoji_dingbats.html +// http://www.unicode.org/Public/UNIDATA/EmojiSources.txt import ( "bufio" diff --git a/vendor/golang.org/x/text/encoding/unicode/unicode.go b/vendor/golang.org/x/text/encoding/unicode/unicode.go index 4850ff365..579cadfb1 100644 --- a/vendor/golang.org/x/text/encoding/unicode/unicode.go +++ b/vendor/golang.org/x/text/encoding/unicode/unicode.go @@ -145,7 +145,7 @@ func (utf8Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err e // and consumed in a greater context that implies a certain endianness, use // IgnoreBOM. Otherwise, use ExpectBOM and always produce and consume a BOM. // -// In the language of https://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM +// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM // corresponds to "Where the precise type of the data stream is known... the // BOM should not be used" and ExpectBOM corresponds to "A particular // protocol... may require use of the BOM". diff --git a/vendor/golang.org/x/text/internal/language/compact.go b/vendor/golang.org/x/text/internal/language/compact.go deleted file mode 100644 index 46a001507..000000000 --- a/vendor/golang.org/x/text/internal/language/compact.go +++ /dev/null @@ -1,29 +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. - -package language - -// CompactCoreInfo is a compact integer with the three core tags encoded. -type CompactCoreInfo uint32 - -// GetCompactCore generates a uint32 value that is guaranteed to be unique for -// different language, region, and script values. -func GetCompactCore(t Tag) (cci CompactCoreInfo, ok bool) { - if t.LangID > langNoIndexOffset { - return 0, false - } - cci |= CompactCoreInfo(t.LangID) << (8 + 12) - cci |= CompactCoreInfo(t.ScriptID) << 12 - cci |= CompactCoreInfo(t.RegionID) - return cci, true -} - -// Tag generates a tag from c. -func (c CompactCoreInfo) Tag() Tag { - return Tag{ - LangID: Language(c >> 20), - RegionID: Region(c & 0x3ff), - ScriptID: Script(c>>12) & 0xff, - } -} diff --git a/vendor/golang.org/x/text/internal/language/compact/compact.go b/vendor/golang.org/x/text/internal/language/compact/compact.go deleted file mode 100644 index 1b36935ef..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/compact.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. - -// Package compact defines a compact representation of language tags. -// -// Common language tags (at least all for which locale information is defined -// in CLDR) are assigned a unique index. Each Tag is associated with such an -// ID for selecting language-related resources (such as translations) as well -// as one for selecting regional defaults (currency, number formatting, etc.) -// -// It may want to export this functionality at some point, but at this point -// this is only available for use within x/text. -package compact // import "golang.org/x/text/internal/language/compact" - -import ( - "sort" - "strings" - - "golang.org/x/text/internal/language" -) - -// ID is an integer identifying a single tag. -type ID uint16 - -func getCoreIndex(t language.Tag) (id ID, ok bool) { - cci, ok := language.GetCompactCore(t) - if !ok { - return 0, false - } - i := sort.Search(len(coreTags), func(i int) bool { - return cci <= coreTags[i] - }) - if i == len(coreTags) || coreTags[i] != cci { - return 0, false - } - return ID(i), true -} - -// Parent returns the ID of the parent or the root ID if id is already the root. -func (id ID) Parent() ID { - return parents[id] -} - -// Tag converts id to an internal language Tag. -func (id ID) Tag() language.Tag { - if int(id) >= len(coreTags) { - return specialTags[int(id)-len(coreTags)] - } - return coreTags[id].Tag() -} - -var specialTags []language.Tag - -func init() { - tags := strings.Split(specialTagsStr, " ") - specialTags = make([]language.Tag, len(tags)) - for i, t := range tags { - specialTags[i] = language.MustParse(t) - } -} diff --git a/vendor/golang.org/x/text/internal/language/compact/gen.go b/vendor/golang.org/x/text/internal/language/compact/gen.go deleted file mode 100644 index 0c36a052f..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/gen.go +++ /dev/null @@ -1,64 +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 ( - "flag" - "fmt" - "log" - - "golang.org/x/text/internal/gen" - "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") -) - -func main() { - gen.Init() - - w := gen.NewCodeWriter() - defer w.WriteGoFile("tables.go", "compact") - - fmt.Fprintln(w, `import "golang.org/x/text/internal/language"`) - - b := newBuilder(w) - gen.WriteCLDRVersion(w) - - b.writeCompactIndex() -} - -type builder struct { - w *gen.CodeWriter - data *cldr.CLDR - supp *cldr.SupplementalData -} - -func newBuilder(w *gen.CodeWriter) *builder { - r := gen.OpenCLDRCoreZip() - defer r.Close() - d := &cldr.Decoder{} - data, err := d.DecodeZip(r) - if err != nil { - log.Fatal(err) - } - b := builder{ - w: w, - data: data, - supp: data.Supplemental(), - } - return &b -} diff --git a/vendor/golang.org/x/text/internal/language/compact/gen_index.go b/vendor/golang.org/x/text/internal/language/compact/gen_index.go deleted file mode 100644 index 136cefaf0..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/gen_index.go +++ /dev/null @@ -1,113 +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 file generates derivative tables based on the language package itself. - -import ( - "fmt" - "log" - "sort" - "strings" - - "golang.org/x/text/internal/language" -) - -// Compact indices: -// Note -va-X variants only apply to localization variants. -// BCP variants only ever apply to language. -// The only ambiguity between tags is with regions. - -func (b *builder) writeCompactIndex() { - // Collect all language tags for which we have any data in CLDR. - m := map[language.Tag]bool{} - for _, lang := range b.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 - // } - } - - // TODO: plural rules are also defined for the deprecated tags: - // iw mo sh tl - // Consider removing these as compact tags. - - // Include locales for plural rules, which uses a different structure. - for _, plurals := range b.supp.Plurals { - for _, rules := range plurals.PluralRules { - for _, lang := range strings.Split(rules.Locales, " ") { - m[language.Make(lang)] = true - } - } - } - - var coreTags []language.CompactCoreInfo - var special []string - - 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 { - cci, ok := language.GetCompactCore(t) - if !ok { - log.Fatalf("Locale for non-basic language %q", t) - } - coreTags = append(coreTags, cci) - } else { - special = append(special, t.String()) - } - } - - w := b.w - - sort.Slice(coreTags, func(i, j int) bool { return coreTags[i] < coreTags[j] }) - sort.Strings(special) - - w.WriteComment(` - NumCompactTags is the number of common tags. The maximum tag is - NumCompactTags-1.`) - w.WriteConst("NumCompactTags", len(m)) - - fmt.Fprintln(w, "const (") - for i, t := range coreTags { - fmt.Fprintf(w, "%s ID = %d\n", ident(t.Tag().String()), i) - } - for i, t := range special { - fmt.Fprintf(w, "%s ID = %d\n", ident(t), i+len(coreTags)) - } - fmt.Fprintln(w, ")") - - w.WriteVar("coreTags", coreTags) - - w.WriteConst("specialTagsStr", strings.Join(special, " ")) -} - -func ident(s string) string { - return strings.Replace(s, "-", "", -1) + "Index" -} diff --git a/vendor/golang.org/x/text/internal/language/compact/gen_parents.go b/vendor/golang.org/x/text/internal/language/compact/gen_parents.go deleted file mode 100644 index 9543d5832..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/gen_parents.go +++ /dev/null @@ -1,54 +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 - -package main - -import ( - "log" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/language" - "golang.org/x/text/internal/language/compact" - "golang.org/x/text/unicode/cldr" -) - -func main() { - r := gen.OpenCLDRCoreZip() - defer r.Close() - - d := &cldr.Decoder{} - data, err := d.DecodeZip(r) - if err != nil { - log.Fatalf("DecodeZip: %v", err) - } - - w := gen.NewCodeWriter() - defer w.WriteGoFile("parents.go", "compact") - - // Create parents table. - type ID uint16 - parents := make([]ID, compact.NumCompactTags) - for _, loc := range data.Locales() { - tag := language.MustParse(loc) - index, ok := compact.FromTag(tag) - if !ok { - continue - } - parentIndex := compact.ID(0) // und - for p := tag.Parent(); p != language.Und; p = p.Parent() { - if x, ok := compact.FromTag(p); ok { - parentIndex = x - break - } - } - parents[index] = ID(parentIndex) - } - - w.WriteComment(` - parents maps a compact index of a tag to the compact index of the parent of - this tag.`) - w.WriteVar("parents", parents) -} diff --git a/vendor/golang.org/x/text/internal/language/compact/language.go b/vendor/golang.org/x/text/internal/language/compact/language.go deleted file mode 100644 index 83816a72a..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/language.go +++ /dev/null @@ -1,260 +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. - -//go:generate go run gen.go gen_index.go -output tables.go -//go:generate go run gen_parents.go - -package compact - -// TODO: Remove above NOTE after: -// - verifying that tables are dropped correctly (most notably matcher tables). - -import ( - "strings" - - "golang.org/x/text/internal/language" -) - -// Tag represents a BCP 47 language tag. It is used to specify an instance of a -// specific language or locale. All language tag values are guaranteed to be -// well-formed. -type Tag struct { - // NOTE: exported tags will become part of the public API. - language ID - locale ID - full fullTag // always a language.Tag for now. -} - -const _und = 0 - -type fullTag interface { - IsRoot() bool - Parent() language.Tag -} - -// Make a compact Tag from a fully specified internal language Tag. -func Make(t language.Tag) (tag Tag) { - if region := t.TypeForKey("rg"); len(region) == 6 && region[2:] == "zzzz" { - if r, err := language.ParseRegion(region[:2]); err == nil { - tFull := t - t, _ = t.SetTypeForKey("rg", "") - // TODO: should we not consider "va" for the language tag? - var exact1, exact2 bool - tag.language, exact1 = FromTag(t) - t.RegionID = r - tag.locale, exact2 = FromTag(t) - if !exact1 || !exact2 { - tag.full = tFull - } - return tag - } - } - lang, ok := FromTag(t) - tag.language = lang - tag.locale = lang - if !ok { - tag.full = t - } - return tag -} - -// Tag returns an internal language Tag version of this tag. -func (t Tag) Tag() language.Tag { - if t.full != nil { - return t.full.(language.Tag) - } - tag := t.language.Tag() - if t.language != t.locale { - loc := t.locale.Tag() - tag, _ = tag.SetTypeForKey("rg", strings.ToLower(loc.RegionID.String())+"zzzz") - } - return tag -} - -// IsCompact reports whether this tag is fully defined in terms of ID. -func (t *Tag) IsCompact() bool { - return t.full == nil -} - -// MayHaveVariants reports whether a tag may have variants. If it returns false -// it is guaranteed the tag does not have variants. -func (t Tag) MayHaveVariants() bool { - return t.full != nil || int(t.language) >= len(coreTags) -} - -// MayHaveExtensions reports whether a tag may have extensions. If it returns -// false it is guaranteed the tag does not have them. -func (t Tag) MayHaveExtensions() bool { - return t.full != nil || - int(t.language) >= len(coreTags) || - t.language != t.locale -} - -// IsRoot returns true if t is equal to language "und". -func (t Tag) IsRoot() bool { - if t.full != nil { - return t.full.IsRoot() - } - return t.language == _und -} - -// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a -// specific language are substituted with fields from the parent language. -// The parent for a language may change for newer versions of CLDR. -func (t Tag) Parent() Tag { - if t.full != nil { - return Make(t.full.Parent()) - } - if t.language != t.locale { - // Simulate stripping -u-rg-xxxxxx - return Tag{language: t.language, locale: t.language} - } - // TODO: use parent lookup table once cycle from internal package is - // removed. Probably by internalizing the table and declaring this fast - // enough. - // lang := compactID(internal.Parent(uint16(t.language))) - lang, _ := FromTag(t.language.Tag().Parent()) - return Tag{language: lang, locale: lang} -} - -// returns token t and the rest of the string. -func nextToken(s string) (t, tail string) { - p := strings.Index(s[1:], "-") - if p == -1 { - return s[1:], "" - } - p++ - return s[1:p], s[p:] -} - -// LanguageID returns an index, where 0 <= index < NumCompactTags, for tags -// for which data exists in the text repository.The index will change over time -// and should not be stored in persistent storage. If t does not match a compact -// index, exact will be false and the compact index will be returned for the -// first match after repeatedly taking the Parent of t. -func LanguageID(t Tag) (id ID, exact bool) { - return t.language, t.full == nil -} - -// RegionalID returns the ID for the regional variant of this tag. This index is -// used to indicate region-specific overrides, such as default currency, default -// calendar and week data, default time cycle, and default measurement system -// and unit preferences. -// -// For instance, the tag en-GB-u-rg-uszzzz specifies British English with US -// settings for currency, number formatting, etc. The CompactIndex for this tag -// will be that for en-GB, while the RegionalID will be the one corresponding to -// en-US. -func RegionalID(t Tag) (id ID, exact bool) { - return t.locale, t.full == nil -} - -// LanguageTag returns t stripped of regional variant indicators. -// -// At the moment this means it is stripped of a regional and variant subtag "rg" -// and "va" in the "u" extension. -func (t Tag) LanguageTag() Tag { - if t.full == nil { - return Tag{language: t.language, locale: t.language} - } - tt := t.Tag() - tt.SetTypeForKey("rg", "") - tt.SetTypeForKey("va", "") - return Make(tt) -} - -// RegionalTag returns the regional variant of the tag. -// -// At the moment this means that the region is set from the regional subtag -// "rg" in the "u" extension. -func (t Tag) RegionalTag() Tag { - rt := Tag{language: t.locale, locale: t.locale} - if t.full == nil { - return rt - } - b := language.Builder{} - tag := t.Tag() - // tag, _ = tag.SetTypeForKey("rg", "") - b.SetTag(t.locale.Tag()) - if v := tag.Variants(); v != "" { - for _, v := range strings.Split(v, "-") { - b.AddVariant(v) - } - } - for _, e := range tag.Extensions() { - b.AddExt(e) - } - return t -} - -// FromTag reports closest matching ID for an internal language Tag. -func FromTag(t language.Tag) (id ID, exact bool) { - // TODO: perhaps give more frequent tags a lower index. - // TODO: we could make the indexes stable. This will excluded some - // possibilities for optimization, so don't do this quite yet. - exact = true - - b, s, r := t.Raw() - if t.HasString() { - if t.IsPrivateUse() { - // We have no entries for user-defined tags. - return 0, false - } - hasExtra := false - if t.HasVariants() { - if t.HasExtensions() { - build := language.Builder{} - build.SetTag(language.Tag{LangID: b, ScriptID: s, RegionID: r}) - build.AddVariant(t.Variants()) - exact = false - t = build.Make() - } - hasExtra = true - } else if _, ok := t.Extension('u'); ok { - // TODO: va may mean something else. Consider not considering it. - // Strip all but the 'va' entry. - old := t - variant := t.TypeForKey("va") - t = language.Tag{LangID: b, ScriptID: s, RegionID: r} - if variant != "" { - t, _ = t.SetTypeForKey("va", variant) - hasExtra = true - } - exact = old == t - } else { - exact = false - } - if hasExtra { - // We have some variants. - for i, s := range specialTags { - if s == t { - return ID(i + len(coreTags)), exact - } - } - exact = false - } - } - if x, ok := getCoreIndex(t); ok { - return x, exact - } - exact = false - if r != 0 && s == 0 { - // Deal with cases where an extra script is inserted for the region. - t, _ := t.Maximize() - if x, ok := getCoreIndex(t); ok { - return x, exact - } - } - for t = t.Parent(); t != root; t = t.Parent() { - // No variants specified: just compare core components. - // The key has the form lllssrrr, where l, s, and r are nibbles for - // respectively the langID, scriptID, and regionID. - if x, ok := getCoreIndex(t); ok { - return x, exact - } - } - return 0, exact -} - -var root = language.Tag{} diff --git a/vendor/golang.org/x/text/internal/language/compact/parents.go b/vendor/golang.org/x/text/internal/language/compact/parents.go deleted file mode 100644 index 8d810723c..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/parents.go +++ /dev/null @@ -1,120 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package compact - -// parents maps a compact index of a tag to the compact index of the parent of -// this tag. -var parents = []ID{ // 775 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0004, 0x0000, 0x0006, - 0x0000, 0x0008, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, - 0x0000, 0x0028, 0x0000, 0x002a, 0x0000, 0x002c, 0x0000, 0x0000, - 0x002f, 0x002e, 0x002e, 0x0000, 0x0033, 0x0000, 0x0035, 0x0000, - 0x0037, 0x0000, 0x0039, 0x0000, 0x003b, 0x0000, 0x0000, 0x003e, - // Entry 40 - 7F - 0x0000, 0x0040, 0x0040, 0x0000, 0x0043, 0x0043, 0x0000, 0x0046, - 0x0000, 0x0048, 0x0000, 0x0000, 0x004b, 0x004a, 0x004a, 0x0000, - 0x004f, 0x004f, 0x004f, 0x004f, 0x0000, 0x0054, 0x0054, 0x0000, - 0x0057, 0x0000, 0x0059, 0x0000, 0x005b, 0x0000, 0x005d, 0x005d, - 0x0000, 0x0060, 0x0000, 0x0062, 0x0000, 0x0064, 0x0000, 0x0066, - 0x0066, 0x0000, 0x0069, 0x0000, 0x006b, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x006b, 0x0000, 0x0073, 0x0000, 0x0075, 0x0000, - 0x0077, 0x0000, 0x0000, 0x007a, 0x0000, 0x007c, 0x0000, 0x007e, - // Entry 80 - BF - 0x0000, 0x0080, 0x0080, 0x0000, 0x0083, 0x0083, 0x0000, 0x0086, - 0x0087, 0x0087, 0x0087, 0x0086, 0x0088, 0x0087, 0x0087, 0x0087, - 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0088, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0088, 0x0087, 0x0088, 0x0087, - 0x0087, 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0086, 0x0087, 0x0086, - // Entry C0 - FF - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0088, 0x0087, - 0x0087, 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0086, 0x0086, 0x0087, - 0x0087, 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0000, - 0x00ef, 0x0000, 0x00f1, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, - 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f1, 0x00f2, 0x00f1, 0x00f1, - // Entry 100 - 13F - 0x00f2, 0x00f2, 0x00f1, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f1, - 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x0000, 0x010e, - 0x0000, 0x0110, 0x0000, 0x0112, 0x0000, 0x0114, 0x0114, 0x0000, - 0x0117, 0x0117, 0x0117, 0x0117, 0x0000, 0x011c, 0x0000, 0x011e, - 0x0000, 0x0120, 0x0120, 0x0000, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - // Entry 140 - 17F - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0000, 0x0152, 0x0000, 0x0154, 0x0000, 0x0156, - 0x0000, 0x0158, 0x0000, 0x015a, 0x0000, 0x015c, 0x015c, 0x015c, - 0x0000, 0x0160, 0x0000, 0x0000, 0x0163, 0x0000, 0x0165, 0x0000, - 0x0167, 0x0167, 0x0167, 0x0000, 0x016b, 0x0000, 0x016d, 0x0000, - 0x016f, 0x0000, 0x0171, 0x0171, 0x0000, 0x0174, 0x0000, 0x0176, - 0x0000, 0x0178, 0x0000, 0x017a, 0x0000, 0x017c, 0x0000, 0x017e, - // Entry 180 - 1BF - 0x0000, 0x0000, 0x0000, 0x0182, 0x0000, 0x0184, 0x0184, 0x0184, - 0x0184, 0x0000, 0x0000, 0x0000, 0x018b, 0x0000, 0x0000, 0x018e, - 0x0000, 0x0000, 0x0191, 0x0000, 0x0000, 0x0000, 0x0195, 0x0000, - 0x0197, 0x0000, 0x0000, 0x019a, 0x0000, 0x0000, 0x019d, 0x0000, - 0x019f, 0x0000, 0x01a1, 0x0000, 0x01a3, 0x0000, 0x01a5, 0x0000, - 0x01a7, 0x0000, 0x01a9, 0x0000, 0x01ab, 0x0000, 0x01ad, 0x0000, - 0x01af, 0x0000, 0x01b1, 0x01b1, 0x0000, 0x01b4, 0x0000, 0x01b6, - 0x0000, 0x01b8, 0x0000, 0x01ba, 0x0000, 0x01bc, 0x0000, 0x0000, - // Entry 1C0 - 1FF - 0x01bf, 0x0000, 0x01c1, 0x0000, 0x01c3, 0x0000, 0x01c5, 0x0000, - 0x01c7, 0x0000, 0x01c9, 0x0000, 0x01cb, 0x01cb, 0x01cb, 0x01cb, - 0x0000, 0x01d0, 0x0000, 0x01d2, 0x01d2, 0x0000, 0x01d5, 0x0000, - 0x01d7, 0x0000, 0x01d9, 0x0000, 0x01db, 0x0000, 0x01dd, 0x0000, - 0x01df, 0x01df, 0x0000, 0x01e2, 0x0000, 0x01e4, 0x0000, 0x01e6, - 0x0000, 0x01e8, 0x0000, 0x01ea, 0x0000, 0x01ec, 0x0000, 0x01ee, - 0x0000, 0x01f0, 0x0000, 0x0000, 0x01f3, 0x0000, 0x01f5, 0x01f5, - 0x01f5, 0x0000, 0x01f9, 0x0000, 0x01fb, 0x0000, 0x01fd, 0x0000, - // Entry 200 - 23F - 0x01ff, 0x0000, 0x0000, 0x0202, 0x0000, 0x0204, 0x0204, 0x0000, - 0x0207, 0x0000, 0x0209, 0x0209, 0x0000, 0x020c, 0x020c, 0x0000, - 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x0000, - 0x0217, 0x0000, 0x0219, 0x0000, 0x021b, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0221, 0x0000, 0x0000, 0x0224, 0x0000, 0x0226, - 0x0226, 0x0000, 0x0229, 0x0000, 0x022b, 0x022b, 0x0000, 0x0000, - 0x022f, 0x022e, 0x022e, 0x0000, 0x0000, 0x0234, 0x0000, 0x0236, - 0x0000, 0x0238, 0x0000, 0x0244, 0x023a, 0x0244, 0x0244, 0x0244, - // Entry 240 - 27F - 0x0244, 0x0244, 0x0244, 0x0244, 0x023a, 0x0244, 0x0244, 0x0000, - 0x0247, 0x0247, 0x0247, 0x0000, 0x024b, 0x0000, 0x024d, 0x0000, - 0x024f, 0x024f, 0x0000, 0x0252, 0x0000, 0x0254, 0x0254, 0x0254, - 0x0254, 0x0254, 0x0254, 0x0000, 0x025b, 0x0000, 0x025d, 0x0000, - 0x025f, 0x0000, 0x0261, 0x0000, 0x0263, 0x0000, 0x0265, 0x0000, - 0x0000, 0x0268, 0x0268, 0x0268, 0x0000, 0x026c, 0x0000, 0x026e, - 0x0000, 0x0270, 0x0000, 0x0000, 0x0000, 0x0274, 0x0273, 0x0273, - 0x0000, 0x0278, 0x0000, 0x027a, 0x0000, 0x027c, 0x0000, 0x0000, - // Entry 280 - 2BF - 0x0000, 0x0000, 0x0281, 0x0000, 0x0000, 0x0284, 0x0000, 0x0286, - 0x0286, 0x0286, 0x0286, 0x0000, 0x028b, 0x028b, 0x028b, 0x0000, - 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x0000, 0x0295, 0x0295, - 0x0295, 0x0295, 0x0000, 0x0000, 0x0000, 0x0000, 0x029d, 0x029d, - 0x029d, 0x0000, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x0000, 0x0000, - 0x02a7, 0x02a7, 0x02a7, 0x02a7, 0x0000, 0x02ac, 0x0000, 0x02ae, - 0x02ae, 0x0000, 0x02b1, 0x0000, 0x02b3, 0x0000, 0x02b5, 0x02b5, - 0x0000, 0x0000, 0x02b9, 0x0000, 0x0000, 0x0000, 0x02bd, 0x0000, - // Entry 2C0 - 2FF - 0x02bf, 0x02bf, 0x0000, 0x0000, 0x02c3, 0x0000, 0x02c5, 0x0000, - 0x02c7, 0x0000, 0x02c9, 0x0000, 0x02cb, 0x0000, 0x02cd, 0x02cd, - 0x0000, 0x0000, 0x02d1, 0x0000, 0x02d3, 0x02d0, 0x02d0, 0x0000, - 0x0000, 0x02d8, 0x02d7, 0x02d7, 0x0000, 0x0000, 0x02dd, 0x0000, - 0x02df, 0x0000, 0x02e1, 0x0000, 0x0000, 0x02e4, 0x0000, 0x02e6, - 0x0000, 0x0000, 0x02e9, 0x0000, 0x02eb, 0x0000, 0x02ed, 0x0000, - 0x02ef, 0x02ef, 0x0000, 0x0000, 0x02f3, 0x02f2, 0x02f2, 0x0000, - 0x02f7, 0x0000, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x0000, - // Entry 300 - 33F - 0x02ff, 0x0300, 0x02ff, 0x0000, 0x0303, 0x0051, 0x00e6, -} // Size: 1574 bytes - -// Total table size 1574 bytes (1KiB); checksum: 895AAF0B diff --git a/vendor/golang.org/x/text/internal/language/compact/tables.go b/vendor/golang.org/x/text/internal/language/compact/tables.go deleted file mode 100644 index 554ca354b..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/tables.go +++ /dev/null @@ -1,1015 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package compact - -import "golang.org/x/text/internal/language" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "32" - -// NumCompactTags is the number of common tags. The maximum tag is -// NumCompactTags-1. -const NumCompactTags = 775 -const ( - undIndex ID = 0 - afIndex ID = 1 - afNAIndex ID = 2 - afZAIndex ID = 3 - agqIndex ID = 4 - agqCMIndex ID = 5 - akIndex ID = 6 - akGHIndex ID = 7 - amIndex ID = 8 - amETIndex ID = 9 - arIndex ID = 10 - ar001Index ID = 11 - arAEIndex ID = 12 - arBHIndex ID = 13 - arDJIndex ID = 14 - arDZIndex ID = 15 - arEGIndex ID = 16 - arEHIndex ID = 17 - arERIndex ID = 18 - arILIndex ID = 19 - arIQIndex ID = 20 - arJOIndex ID = 21 - arKMIndex ID = 22 - arKWIndex ID = 23 - arLBIndex ID = 24 - arLYIndex ID = 25 - arMAIndex ID = 26 - arMRIndex ID = 27 - arOMIndex ID = 28 - arPSIndex ID = 29 - arQAIndex ID = 30 - arSAIndex ID = 31 - arSDIndex ID = 32 - arSOIndex ID = 33 - arSSIndex ID = 34 - arSYIndex ID = 35 - arTDIndex ID = 36 - arTNIndex ID = 37 - arYEIndex ID = 38 - arsIndex ID = 39 - asIndex ID = 40 - asINIndex ID = 41 - asaIndex ID = 42 - asaTZIndex ID = 43 - astIndex ID = 44 - astESIndex ID = 45 - azIndex ID = 46 - azCyrlIndex ID = 47 - azCyrlAZIndex ID = 48 - azLatnIndex ID = 49 - azLatnAZIndex ID = 50 - basIndex ID = 51 - basCMIndex ID = 52 - beIndex ID = 53 - beBYIndex ID = 54 - bemIndex ID = 55 - bemZMIndex ID = 56 - bezIndex ID = 57 - bezTZIndex ID = 58 - bgIndex ID = 59 - bgBGIndex ID = 60 - bhIndex ID = 61 - bmIndex ID = 62 - bmMLIndex ID = 63 - bnIndex ID = 64 - bnBDIndex ID = 65 - bnINIndex ID = 66 - boIndex ID = 67 - boCNIndex ID = 68 - boINIndex ID = 69 - brIndex ID = 70 - brFRIndex ID = 71 - brxIndex ID = 72 - brxINIndex ID = 73 - bsIndex ID = 74 - bsCyrlIndex ID = 75 - bsCyrlBAIndex ID = 76 - bsLatnIndex ID = 77 - bsLatnBAIndex ID = 78 - caIndex ID = 79 - caADIndex ID = 80 - caESIndex ID = 81 - caFRIndex ID = 82 - caITIndex ID = 83 - ccpIndex ID = 84 - ccpBDIndex ID = 85 - ccpINIndex ID = 86 - ceIndex ID = 87 - ceRUIndex ID = 88 - cggIndex ID = 89 - cggUGIndex ID = 90 - chrIndex ID = 91 - chrUSIndex ID = 92 - ckbIndex ID = 93 - ckbIQIndex ID = 94 - ckbIRIndex ID = 95 - csIndex ID = 96 - csCZIndex ID = 97 - cuIndex ID = 98 - cuRUIndex ID = 99 - cyIndex ID = 100 - cyGBIndex ID = 101 - daIndex ID = 102 - daDKIndex ID = 103 - daGLIndex ID = 104 - davIndex ID = 105 - davKEIndex ID = 106 - deIndex ID = 107 - deATIndex ID = 108 - deBEIndex ID = 109 - deCHIndex ID = 110 - deDEIndex ID = 111 - deITIndex ID = 112 - deLIIndex ID = 113 - deLUIndex ID = 114 - djeIndex ID = 115 - djeNEIndex ID = 116 - dsbIndex ID = 117 - dsbDEIndex ID = 118 - duaIndex ID = 119 - duaCMIndex ID = 120 - dvIndex ID = 121 - dyoIndex ID = 122 - dyoSNIndex ID = 123 - dzIndex ID = 124 - dzBTIndex ID = 125 - ebuIndex ID = 126 - ebuKEIndex ID = 127 - eeIndex ID = 128 - eeGHIndex ID = 129 - eeTGIndex ID = 130 - elIndex ID = 131 - elCYIndex ID = 132 - elGRIndex ID = 133 - enIndex ID = 134 - en001Index ID = 135 - en150Index ID = 136 - enAGIndex ID = 137 - enAIIndex ID = 138 - enASIndex ID = 139 - enATIndex ID = 140 - enAUIndex ID = 141 - enBBIndex ID = 142 - enBEIndex ID = 143 - enBIIndex ID = 144 - enBMIndex ID = 145 - enBSIndex ID = 146 - enBWIndex ID = 147 - enBZIndex ID = 148 - enCAIndex ID = 149 - enCCIndex ID = 150 - enCHIndex ID = 151 - enCKIndex ID = 152 - enCMIndex ID = 153 - enCXIndex ID = 154 - enCYIndex ID = 155 - enDEIndex ID = 156 - enDGIndex ID = 157 - enDKIndex ID = 158 - enDMIndex ID = 159 - enERIndex ID = 160 - enFIIndex ID = 161 - enFJIndex ID = 162 - enFKIndex ID = 163 - enFMIndex ID = 164 - enGBIndex ID = 165 - enGDIndex ID = 166 - enGGIndex ID = 167 - enGHIndex ID = 168 - enGIIndex ID = 169 - enGMIndex ID = 170 - enGUIndex ID = 171 - enGYIndex ID = 172 - enHKIndex ID = 173 - enIEIndex ID = 174 - enILIndex ID = 175 - enIMIndex ID = 176 - enINIndex ID = 177 - enIOIndex ID = 178 - enJEIndex ID = 179 - enJMIndex ID = 180 - enKEIndex ID = 181 - enKIIndex ID = 182 - enKNIndex ID = 183 - enKYIndex ID = 184 - enLCIndex ID = 185 - enLRIndex ID = 186 - enLSIndex ID = 187 - enMGIndex ID = 188 - enMHIndex ID = 189 - enMOIndex ID = 190 - enMPIndex ID = 191 - enMSIndex ID = 192 - enMTIndex ID = 193 - enMUIndex ID = 194 - enMWIndex ID = 195 - enMYIndex ID = 196 - enNAIndex ID = 197 - enNFIndex ID = 198 - enNGIndex ID = 199 - enNLIndex ID = 200 - enNRIndex ID = 201 - enNUIndex ID = 202 - enNZIndex ID = 203 - enPGIndex ID = 204 - enPHIndex ID = 205 - enPKIndex ID = 206 - enPNIndex ID = 207 - enPRIndex ID = 208 - enPWIndex ID = 209 - enRWIndex ID = 210 - enSBIndex ID = 211 - enSCIndex ID = 212 - enSDIndex ID = 213 - enSEIndex ID = 214 - enSGIndex ID = 215 - enSHIndex ID = 216 - enSIIndex ID = 217 - enSLIndex ID = 218 - enSSIndex ID = 219 - enSXIndex ID = 220 - enSZIndex ID = 221 - enTCIndex ID = 222 - enTKIndex ID = 223 - enTOIndex ID = 224 - enTTIndex ID = 225 - enTVIndex ID = 226 - enTZIndex ID = 227 - enUGIndex ID = 228 - enUMIndex ID = 229 - enUSIndex ID = 230 - enVCIndex ID = 231 - enVGIndex ID = 232 - enVIIndex ID = 233 - enVUIndex ID = 234 - enWSIndex ID = 235 - enZAIndex ID = 236 - enZMIndex ID = 237 - enZWIndex ID = 238 - eoIndex ID = 239 - eo001Index ID = 240 - esIndex ID = 241 - es419Index ID = 242 - esARIndex ID = 243 - esBOIndex ID = 244 - esBRIndex ID = 245 - esBZIndex ID = 246 - esCLIndex ID = 247 - esCOIndex ID = 248 - esCRIndex ID = 249 - esCUIndex ID = 250 - esDOIndex ID = 251 - esEAIndex ID = 252 - esECIndex ID = 253 - esESIndex ID = 254 - esGQIndex ID = 255 - esGTIndex ID = 256 - esHNIndex ID = 257 - esICIndex ID = 258 - esMXIndex ID = 259 - esNIIndex ID = 260 - esPAIndex ID = 261 - esPEIndex ID = 262 - esPHIndex ID = 263 - esPRIndex ID = 264 - esPYIndex ID = 265 - esSVIndex ID = 266 - esUSIndex ID = 267 - esUYIndex ID = 268 - esVEIndex ID = 269 - etIndex ID = 270 - etEEIndex ID = 271 - euIndex ID = 272 - euESIndex ID = 273 - ewoIndex ID = 274 - ewoCMIndex ID = 275 - faIndex ID = 276 - faAFIndex ID = 277 - faIRIndex ID = 278 - ffIndex ID = 279 - ffCMIndex ID = 280 - ffGNIndex ID = 281 - ffMRIndex ID = 282 - ffSNIndex ID = 283 - fiIndex ID = 284 - fiFIIndex ID = 285 - filIndex ID = 286 - filPHIndex ID = 287 - foIndex ID = 288 - foDKIndex ID = 289 - foFOIndex ID = 290 - frIndex ID = 291 - frBEIndex ID = 292 - frBFIndex ID = 293 - frBIIndex ID = 294 - frBJIndex ID = 295 - frBLIndex ID = 296 - frCAIndex ID = 297 - frCDIndex ID = 298 - frCFIndex ID = 299 - frCGIndex ID = 300 - frCHIndex ID = 301 - frCIIndex ID = 302 - frCMIndex ID = 303 - frDJIndex ID = 304 - frDZIndex ID = 305 - frFRIndex ID = 306 - frGAIndex ID = 307 - frGFIndex ID = 308 - frGNIndex ID = 309 - frGPIndex ID = 310 - frGQIndex ID = 311 - frHTIndex ID = 312 - frKMIndex ID = 313 - frLUIndex ID = 314 - frMAIndex ID = 315 - frMCIndex ID = 316 - frMFIndex ID = 317 - frMGIndex ID = 318 - frMLIndex ID = 319 - frMQIndex ID = 320 - frMRIndex ID = 321 - frMUIndex ID = 322 - frNCIndex ID = 323 - frNEIndex ID = 324 - frPFIndex ID = 325 - frPMIndex ID = 326 - frREIndex ID = 327 - frRWIndex ID = 328 - frSCIndex ID = 329 - frSNIndex ID = 330 - frSYIndex ID = 331 - frTDIndex ID = 332 - frTGIndex ID = 333 - frTNIndex ID = 334 - frVUIndex ID = 335 - frWFIndex ID = 336 - frYTIndex ID = 337 - furIndex ID = 338 - furITIndex ID = 339 - fyIndex ID = 340 - fyNLIndex ID = 341 - gaIndex ID = 342 - gaIEIndex ID = 343 - gdIndex ID = 344 - gdGBIndex ID = 345 - glIndex ID = 346 - glESIndex ID = 347 - gswIndex ID = 348 - gswCHIndex ID = 349 - gswFRIndex ID = 350 - gswLIIndex ID = 351 - guIndex ID = 352 - guINIndex ID = 353 - guwIndex ID = 354 - guzIndex ID = 355 - guzKEIndex ID = 356 - gvIndex ID = 357 - gvIMIndex ID = 358 - haIndex ID = 359 - haGHIndex ID = 360 - haNEIndex ID = 361 - haNGIndex ID = 362 - hawIndex ID = 363 - hawUSIndex ID = 364 - heIndex ID = 365 - heILIndex ID = 366 - hiIndex ID = 367 - hiINIndex ID = 368 - hrIndex ID = 369 - hrBAIndex ID = 370 - hrHRIndex ID = 371 - hsbIndex ID = 372 - hsbDEIndex ID = 373 - huIndex ID = 374 - huHUIndex ID = 375 - hyIndex ID = 376 - hyAMIndex ID = 377 - idIndex ID = 378 - idIDIndex ID = 379 - igIndex ID = 380 - igNGIndex ID = 381 - iiIndex ID = 382 - iiCNIndex ID = 383 - inIndex ID = 384 - ioIndex ID = 385 - isIndex ID = 386 - isISIndex ID = 387 - itIndex ID = 388 - itCHIndex ID = 389 - itITIndex ID = 390 - itSMIndex ID = 391 - itVAIndex ID = 392 - iuIndex ID = 393 - iwIndex ID = 394 - jaIndex ID = 395 - jaJPIndex ID = 396 - jboIndex ID = 397 - jgoIndex ID = 398 - jgoCMIndex ID = 399 - jiIndex ID = 400 - jmcIndex ID = 401 - jmcTZIndex ID = 402 - jvIndex ID = 403 - jwIndex ID = 404 - kaIndex ID = 405 - kaGEIndex ID = 406 - kabIndex ID = 407 - kabDZIndex ID = 408 - kajIndex ID = 409 - kamIndex ID = 410 - kamKEIndex ID = 411 - kcgIndex ID = 412 - kdeIndex ID = 413 - kdeTZIndex ID = 414 - keaIndex ID = 415 - keaCVIndex ID = 416 - khqIndex ID = 417 - khqMLIndex ID = 418 - kiIndex ID = 419 - kiKEIndex ID = 420 - kkIndex ID = 421 - kkKZIndex ID = 422 - kkjIndex ID = 423 - kkjCMIndex ID = 424 - klIndex ID = 425 - klGLIndex ID = 426 - klnIndex ID = 427 - klnKEIndex ID = 428 - kmIndex ID = 429 - kmKHIndex ID = 430 - knIndex ID = 431 - knINIndex ID = 432 - koIndex ID = 433 - koKPIndex ID = 434 - koKRIndex ID = 435 - kokIndex ID = 436 - kokINIndex ID = 437 - ksIndex ID = 438 - ksINIndex ID = 439 - ksbIndex ID = 440 - ksbTZIndex ID = 441 - ksfIndex ID = 442 - ksfCMIndex ID = 443 - kshIndex ID = 444 - kshDEIndex ID = 445 - kuIndex ID = 446 - kwIndex ID = 447 - kwGBIndex ID = 448 - kyIndex ID = 449 - kyKGIndex ID = 450 - lagIndex ID = 451 - lagTZIndex ID = 452 - lbIndex ID = 453 - lbLUIndex ID = 454 - lgIndex ID = 455 - lgUGIndex ID = 456 - lktIndex ID = 457 - lktUSIndex ID = 458 - lnIndex ID = 459 - lnAOIndex ID = 460 - lnCDIndex ID = 461 - lnCFIndex ID = 462 - lnCGIndex ID = 463 - loIndex ID = 464 - loLAIndex ID = 465 - lrcIndex ID = 466 - lrcIQIndex ID = 467 - lrcIRIndex ID = 468 - ltIndex ID = 469 - ltLTIndex ID = 470 - luIndex ID = 471 - luCDIndex ID = 472 - luoIndex ID = 473 - luoKEIndex ID = 474 - luyIndex ID = 475 - luyKEIndex ID = 476 - lvIndex ID = 477 - lvLVIndex ID = 478 - masIndex ID = 479 - masKEIndex ID = 480 - masTZIndex ID = 481 - merIndex ID = 482 - merKEIndex ID = 483 - mfeIndex ID = 484 - mfeMUIndex ID = 485 - mgIndex ID = 486 - mgMGIndex ID = 487 - mghIndex ID = 488 - mghMZIndex ID = 489 - mgoIndex ID = 490 - mgoCMIndex ID = 491 - mkIndex ID = 492 - mkMKIndex ID = 493 - mlIndex ID = 494 - mlINIndex ID = 495 - mnIndex ID = 496 - mnMNIndex ID = 497 - moIndex ID = 498 - mrIndex ID = 499 - mrINIndex ID = 500 - msIndex ID = 501 - msBNIndex ID = 502 - msMYIndex ID = 503 - msSGIndex ID = 504 - mtIndex ID = 505 - mtMTIndex ID = 506 - muaIndex ID = 507 - muaCMIndex ID = 508 - myIndex ID = 509 - myMMIndex ID = 510 - mznIndex ID = 511 - mznIRIndex ID = 512 - nahIndex ID = 513 - naqIndex ID = 514 - naqNAIndex ID = 515 - nbIndex ID = 516 - nbNOIndex ID = 517 - nbSJIndex ID = 518 - ndIndex ID = 519 - ndZWIndex ID = 520 - ndsIndex ID = 521 - ndsDEIndex ID = 522 - ndsNLIndex ID = 523 - neIndex ID = 524 - neINIndex ID = 525 - neNPIndex ID = 526 - nlIndex ID = 527 - nlAWIndex ID = 528 - nlBEIndex ID = 529 - nlBQIndex ID = 530 - nlCWIndex ID = 531 - nlNLIndex ID = 532 - nlSRIndex ID = 533 - nlSXIndex ID = 534 - nmgIndex ID = 535 - nmgCMIndex ID = 536 - nnIndex ID = 537 - nnNOIndex ID = 538 - nnhIndex ID = 539 - nnhCMIndex ID = 540 - noIndex ID = 541 - nqoIndex ID = 542 - nrIndex ID = 543 - nsoIndex ID = 544 - nusIndex ID = 545 - nusSSIndex ID = 546 - nyIndex ID = 547 - nynIndex ID = 548 - nynUGIndex ID = 549 - omIndex ID = 550 - omETIndex ID = 551 - omKEIndex ID = 552 - orIndex ID = 553 - orINIndex ID = 554 - osIndex ID = 555 - osGEIndex ID = 556 - osRUIndex ID = 557 - paIndex ID = 558 - paArabIndex ID = 559 - paArabPKIndex ID = 560 - paGuruIndex ID = 561 - paGuruINIndex ID = 562 - papIndex ID = 563 - plIndex ID = 564 - plPLIndex ID = 565 - prgIndex ID = 566 - prg001Index ID = 567 - psIndex ID = 568 - psAFIndex ID = 569 - ptIndex ID = 570 - ptAOIndex ID = 571 - ptBRIndex ID = 572 - ptCHIndex ID = 573 - ptCVIndex ID = 574 - ptGQIndex ID = 575 - ptGWIndex ID = 576 - ptLUIndex ID = 577 - ptMOIndex ID = 578 - ptMZIndex ID = 579 - ptPTIndex ID = 580 - ptSTIndex ID = 581 - ptTLIndex ID = 582 - quIndex ID = 583 - quBOIndex ID = 584 - quECIndex ID = 585 - quPEIndex ID = 586 - rmIndex ID = 587 - rmCHIndex ID = 588 - rnIndex ID = 589 - rnBIIndex ID = 590 - roIndex ID = 591 - roMDIndex ID = 592 - roROIndex ID = 593 - rofIndex ID = 594 - rofTZIndex ID = 595 - ruIndex ID = 596 - ruBYIndex ID = 597 - ruKGIndex ID = 598 - ruKZIndex ID = 599 - ruMDIndex ID = 600 - ruRUIndex ID = 601 - ruUAIndex ID = 602 - rwIndex ID = 603 - rwRWIndex ID = 604 - rwkIndex ID = 605 - rwkTZIndex ID = 606 - sahIndex ID = 607 - sahRUIndex ID = 608 - saqIndex ID = 609 - saqKEIndex ID = 610 - sbpIndex ID = 611 - sbpTZIndex ID = 612 - sdIndex ID = 613 - sdPKIndex ID = 614 - sdhIndex ID = 615 - seIndex ID = 616 - seFIIndex ID = 617 - seNOIndex ID = 618 - seSEIndex ID = 619 - sehIndex ID = 620 - sehMZIndex ID = 621 - sesIndex ID = 622 - sesMLIndex ID = 623 - sgIndex ID = 624 - sgCFIndex ID = 625 - shIndex ID = 626 - shiIndex ID = 627 - shiLatnIndex ID = 628 - shiLatnMAIndex ID = 629 - shiTfngIndex ID = 630 - shiTfngMAIndex ID = 631 - siIndex ID = 632 - siLKIndex ID = 633 - skIndex ID = 634 - skSKIndex ID = 635 - slIndex ID = 636 - slSIIndex ID = 637 - smaIndex ID = 638 - smiIndex ID = 639 - smjIndex ID = 640 - smnIndex ID = 641 - smnFIIndex ID = 642 - smsIndex ID = 643 - snIndex ID = 644 - snZWIndex ID = 645 - soIndex ID = 646 - soDJIndex ID = 647 - soETIndex ID = 648 - soKEIndex ID = 649 - soSOIndex ID = 650 - sqIndex ID = 651 - sqALIndex ID = 652 - sqMKIndex ID = 653 - sqXKIndex ID = 654 - srIndex ID = 655 - srCyrlIndex ID = 656 - srCyrlBAIndex ID = 657 - srCyrlMEIndex ID = 658 - srCyrlRSIndex ID = 659 - srCyrlXKIndex ID = 660 - srLatnIndex ID = 661 - srLatnBAIndex ID = 662 - srLatnMEIndex ID = 663 - srLatnRSIndex ID = 664 - srLatnXKIndex ID = 665 - ssIndex ID = 666 - ssyIndex ID = 667 - stIndex ID = 668 - svIndex ID = 669 - svAXIndex ID = 670 - svFIIndex ID = 671 - svSEIndex ID = 672 - swIndex ID = 673 - swCDIndex ID = 674 - swKEIndex ID = 675 - swTZIndex ID = 676 - swUGIndex ID = 677 - syrIndex ID = 678 - taIndex ID = 679 - taINIndex ID = 680 - taLKIndex ID = 681 - taMYIndex ID = 682 - taSGIndex ID = 683 - teIndex ID = 684 - teINIndex ID = 685 - teoIndex ID = 686 - teoKEIndex ID = 687 - teoUGIndex ID = 688 - tgIndex ID = 689 - tgTJIndex ID = 690 - thIndex ID = 691 - thTHIndex ID = 692 - tiIndex ID = 693 - tiERIndex ID = 694 - tiETIndex ID = 695 - tigIndex ID = 696 - tkIndex ID = 697 - tkTMIndex ID = 698 - tlIndex ID = 699 - tnIndex ID = 700 - toIndex ID = 701 - toTOIndex ID = 702 - trIndex ID = 703 - trCYIndex ID = 704 - trTRIndex ID = 705 - tsIndex ID = 706 - ttIndex ID = 707 - ttRUIndex ID = 708 - twqIndex ID = 709 - twqNEIndex ID = 710 - tzmIndex ID = 711 - tzmMAIndex ID = 712 - ugIndex ID = 713 - ugCNIndex ID = 714 - ukIndex ID = 715 - ukUAIndex ID = 716 - urIndex ID = 717 - urINIndex ID = 718 - urPKIndex ID = 719 - uzIndex ID = 720 - uzArabIndex ID = 721 - uzArabAFIndex ID = 722 - uzCyrlIndex ID = 723 - uzCyrlUZIndex ID = 724 - uzLatnIndex ID = 725 - uzLatnUZIndex ID = 726 - vaiIndex ID = 727 - vaiLatnIndex ID = 728 - vaiLatnLRIndex ID = 729 - vaiVaiiIndex ID = 730 - vaiVaiiLRIndex ID = 731 - veIndex ID = 732 - viIndex ID = 733 - viVNIndex ID = 734 - voIndex ID = 735 - vo001Index ID = 736 - vunIndex ID = 737 - vunTZIndex ID = 738 - waIndex ID = 739 - waeIndex ID = 740 - waeCHIndex ID = 741 - woIndex ID = 742 - woSNIndex ID = 743 - xhIndex ID = 744 - xogIndex ID = 745 - xogUGIndex ID = 746 - yavIndex ID = 747 - yavCMIndex ID = 748 - yiIndex ID = 749 - yi001Index ID = 750 - yoIndex ID = 751 - yoBJIndex ID = 752 - yoNGIndex ID = 753 - yueIndex ID = 754 - yueHansIndex ID = 755 - yueHansCNIndex ID = 756 - yueHantIndex ID = 757 - yueHantHKIndex ID = 758 - zghIndex ID = 759 - zghMAIndex ID = 760 - zhIndex ID = 761 - zhHansIndex ID = 762 - zhHansCNIndex ID = 763 - zhHansHKIndex ID = 764 - zhHansMOIndex ID = 765 - zhHansSGIndex ID = 766 - zhHantIndex ID = 767 - zhHantHKIndex ID = 768 - zhHantMOIndex ID = 769 - zhHantTWIndex ID = 770 - zuIndex ID = 771 - zuZAIndex ID = 772 - caESvalenciaIndex ID = 773 - enUSuvaposixIndex ID = 774 -) - -var coreTags = []language.CompactCoreInfo{ // 773 elements - // Entry 0 - 1F - 0x00000000, 0x01600000, 0x016000d2, 0x01600161, - 0x01c00000, 0x01c00052, 0x02100000, 0x02100080, - 0x02700000, 0x0270006f, 0x03a00000, 0x03a00001, - 0x03a00023, 0x03a00039, 0x03a00062, 0x03a00067, - 0x03a0006b, 0x03a0006c, 0x03a0006d, 0x03a00097, - 0x03a0009b, 0x03a000a1, 0x03a000a8, 0x03a000ac, - 0x03a000b0, 0x03a000b9, 0x03a000ba, 0x03a000c9, - 0x03a000e1, 0x03a000ed, 0x03a000f3, 0x03a00108, - // Entry 20 - 3F - 0x03a0010b, 0x03a00115, 0x03a00117, 0x03a0011c, - 0x03a00120, 0x03a00128, 0x03a0015e, 0x04000000, - 0x04300000, 0x04300099, 0x04400000, 0x0440012f, - 0x04800000, 0x0480006e, 0x05800000, 0x0581f000, - 0x0581f032, 0x05857000, 0x05857032, 0x05e00000, - 0x05e00052, 0x07100000, 0x07100047, 0x07500000, - 0x07500162, 0x07900000, 0x0790012f, 0x07e00000, - 0x07e00038, 0x08200000, 0x0a000000, 0x0a0000c3, - // Entry 40 - 5F - 0x0a500000, 0x0a500035, 0x0a500099, 0x0a900000, - 0x0a900053, 0x0a900099, 0x0b200000, 0x0b200078, - 0x0b500000, 0x0b500099, 0x0b700000, 0x0b71f000, - 0x0b71f033, 0x0b757000, 0x0b757033, 0x0d700000, - 0x0d700022, 0x0d70006e, 0x0d700078, 0x0d70009e, - 0x0db00000, 0x0db00035, 0x0db00099, 0x0dc00000, - 0x0dc00106, 0x0df00000, 0x0df00131, 0x0e500000, - 0x0e500135, 0x0e900000, 0x0e90009b, 0x0e90009c, - // Entry 60 - 7F - 0x0fa00000, 0x0fa0005e, 0x0fe00000, 0x0fe00106, - 0x10000000, 0x1000007b, 0x10100000, 0x10100063, - 0x10100082, 0x10800000, 0x108000a4, 0x10d00000, - 0x10d0002e, 0x10d00036, 0x10d0004e, 0x10d00060, - 0x10d0009e, 0x10d000b2, 0x10d000b7, 0x11700000, - 0x117000d4, 0x11f00000, 0x11f00060, 0x12400000, - 0x12400052, 0x12800000, 0x12b00000, 0x12b00114, - 0x12d00000, 0x12d00043, 0x12f00000, 0x12f000a4, - // Entry 80 - 9F - 0x13000000, 0x13000080, 0x13000122, 0x13600000, - 0x1360005d, 0x13600087, 0x13900000, 0x13900001, - 0x1390001a, 0x13900025, 0x13900026, 0x1390002d, - 0x1390002e, 0x1390002f, 0x13900034, 0x13900036, - 0x1390003a, 0x1390003d, 0x13900042, 0x13900046, - 0x13900048, 0x13900049, 0x1390004a, 0x1390004e, - 0x13900050, 0x13900052, 0x1390005c, 0x1390005d, - 0x13900060, 0x13900061, 0x13900063, 0x13900064, - // Entry A0 - BF - 0x1390006d, 0x13900072, 0x13900073, 0x13900074, - 0x13900075, 0x1390007b, 0x1390007c, 0x1390007f, - 0x13900080, 0x13900081, 0x13900083, 0x1390008a, - 0x1390008c, 0x1390008d, 0x13900096, 0x13900097, - 0x13900098, 0x13900099, 0x1390009a, 0x1390009f, - 0x139000a0, 0x139000a4, 0x139000a7, 0x139000a9, - 0x139000ad, 0x139000b1, 0x139000b4, 0x139000b5, - 0x139000bf, 0x139000c0, 0x139000c6, 0x139000c7, - // Entry C0 - DF - 0x139000ca, 0x139000cb, 0x139000cc, 0x139000ce, - 0x139000d0, 0x139000d2, 0x139000d5, 0x139000d6, - 0x139000d9, 0x139000dd, 0x139000df, 0x139000e0, - 0x139000e6, 0x139000e7, 0x139000e8, 0x139000eb, - 0x139000ec, 0x139000f0, 0x13900107, 0x13900109, - 0x1390010a, 0x1390010b, 0x1390010c, 0x1390010d, - 0x1390010e, 0x1390010f, 0x13900112, 0x13900117, - 0x1390011b, 0x1390011d, 0x1390011f, 0x13900125, - // Entry E0 - FF - 0x13900129, 0x1390012c, 0x1390012d, 0x1390012f, - 0x13900131, 0x13900133, 0x13900135, 0x13900139, - 0x1390013c, 0x1390013d, 0x1390013f, 0x13900142, - 0x13900161, 0x13900162, 0x13900164, 0x13c00000, - 0x13c00001, 0x13e00000, 0x13e0001f, 0x13e0002c, - 0x13e0003f, 0x13e00041, 0x13e00048, 0x13e00051, - 0x13e00054, 0x13e00056, 0x13e00059, 0x13e00065, - 0x13e00068, 0x13e00069, 0x13e0006e, 0x13e00086, - // Entry 100 - 11F - 0x13e00089, 0x13e0008f, 0x13e00094, 0x13e000cf, - 0x13e000d8, 0x13e000e2, 0x13e000e4, 0x13e000e7, - 0x13e000ec, 0x13e000f1, 0x13e0011a, 0x13e00135, - 0x13e00136, 0x13e0013b, 0x14000000, 0x1400006a, - 0x14500000, 0x1450006e, 0x14600000, 0x14600052, - 0x14800000, 0x14800024, 0x1480009c, 0x14e00000, - 0x14e00052, 0x14e00084, 0x14e000c9, 0x14e00114, - 0x15100000, 0x15100072, 0x15300000, 0x153000e7, - // Entry 120 - 13F - 0x15800000, 0x15800063, 0x15800076, 0x15e00000, - 0x15e00036, 0x15e00037, 0x15e0003a, 0x15e0003b, - 0x15e0003c, 0x15e00049, 0x15e0004b, 0x15e0004c, - 0x15e0004d, 0x15e0004e, 0x15e0004f, 0x15e00052, - 0x15e00062, 0x15e00067, 0x15e00078, 0x15e0007a, - 0x15e0007e, 0x15e00084, 0x15e00085, 0x15e00086, - 0x15e00091, 0x15e000a8, 0x15e000b7, 0x15e000ba, - 0x15e000bb, 0x15e000be, 0x15e000bf, 0x15e000c3, - // Entry 140 - 15F - 0x15e000c8, 0x15e000c9, 0x15e000cc, 0x15e000d3, - 0x15e000d4, 0x15e000e5, 0x15e000ea, 0x15e00102, - 0x15e00107, 0x15e0010a, 0x15e00114, 0x15e0011c, - 0x15e00120, 0x15e00122, 0x15e00128, 0x15e0013f, - 0x15e00140, 0x15e0015f, 0x16900000, 0x1690009e, - 0x16d00000, 0x16d000d9, 0x16e00000, 0x16e00096, - 0x17e00000, 0x17e0007b, 0x19000000, 0x1900006e, - 0x1a300000, 0x1a30004e, 0x1a300078, 0x1a3000b2, - // Entry 160 - 17F - 0x1a400000, 0x1a400099, 0x1a900000, 0x1ab00000, - 0x1ab000a4, 0x1ac00000, 0x1ac00098, 0x1b400000, - 0x1b400080, 0x1b4000d4, 0x1b4000d6, 0x1b800000, - 0x1b800135, 0x1bc00000, 0x1bc00097, 0x1be00000, - 0x1be00099, 0x1d100000, 0x1d100033, 0x1d100090, - 0x1d200000, 0x1d200060, 0x1d500000, 0x1d500092, - 0x1d700000, 0x1d700028, 0x1e100000, 0x1e100095, - 0x1e700000, 0x1e7000d6, 0x1ea00000, 0x1ea00053, - // Entry 180 - 19F - 0x1f300000, 0x1f500000, 0x1f800000, 0x1f80009d, - 0x1f900000, 0x1f90004e, 0x1f90009e, 0x1f900113, - 0x1f900138, 0x1fa00000, 0x1fb00000, 0x20000000, - 0x200000a2, 0x20300000, 0x20700000, 0x20700052, - 0x20800000, 0x20a00000, 0x20a0012f, 0x20e00000, - 0x20f00000, 0x21000000, 0x2100007d, 0x21200000, - 0x21200067, 0x21600000, 0x21700000, 0x217000a4, - 0x21f00000, 0x22300000, 0x2230012f, 0x22700000, - // Entry 1A0 - 1BF - 0x2270005a, 0x23400000, 0x234000c3, 0x23900000, - 0x239000a4, 0x24200000, 0x242000ae, 0x24400000, - 0x24400052, 0x24500000, 0x24500082, 0x24600000, - 0x246000a4, 0x24a00000, 0x24a000a6, 0x25100000, - 0x25100099, 0x25400000, 0x254000aa, 0x254000ab, - 0x25600000, 0x25600099, 0x26a00000, 0x26a00099, - 0x26b00000, 0x26b0012f, 0x26d00000, 0x26d00052, - 0x26e00000, 0x26e00060, 0x27400000, 0x28100000, - // Entry 1C0 - 1DF - 0x2810007b, 0x28a00000, 0x28a000a5, 0x29100000, - 0x2910012f, 0x29500000, 0x295000b7, 0x2a300000, - 0x2a300131, 0x2af00000, 0x2af00135, 0x2b500000, - 0x2b50002a, 0x2b50004b, 0x2b50004c, 0x2b50004d, - 0x2b800000, 0x2b8000af, 0x2bf00000, 0x2bf0009b, - 0x2bf0009c, 0x2c000000, 0x2c0000b6, 0x2c200000, - 0x2c20004b, 0x2c400000, 0x2c4000a4, 0x2c500000, - 0x2c5000a4, 0x2c700000, 0x2c7000b8, 0x2d100000, - // Entry 1E0 - 1FF - 0x2d1000a4, 0x2d10012f, 0x2e900000, 0x2e9000a4, - 0x2ed00000, 0x2ed000cc, 0x2f100000, 0x2f1000bf, - 0x2f200000, 0x2f2000d1, 0x2f400000, 0x2f400052, - 0x2ff00000, 0x2ff000c2, 0x30400000, 0x30400099, - 0x30b00000, 0x30b000c5, 0x31000000, 0x31b00000, - 0x31b00099, 0x31f00000, 0x31f0003e, 0x31f000d0, - 0x31f0010d, 0x32000000, 0x320000cb, 0x32500000, - 0x32500052, 0x33100000, 0x331000c4, 0x33a00000, - // Entry 200 - 21F - 0x33a0009c, 0x34100000, 0x34500000, 0x345000d2, - 0x34700000, 0x347000da, 0x34700110, 0x34e00000, - 0x34e00164, 0x35000000, 0x35000060, 0x350000d9, - 0x35100000, 0x35100099, 0x351000db, 0x36700000, - 0x36700030, 0x36700036, 0x36700040, 0x3670005b, - 0x367000d9, 0x36700116, 0x3670011b, 0x36800000, - 0x36800052, 0x36a00000, 0x36a000da, 0x36c00000, - 0x36c00052, 0x36f00000, 0x37500000, 0x37600000, - // Entry 220 - 23F - 0x37a00000, 0x38000000, 0x38000117, 0x38700000, - 0x38900000, 0x38900131, 0x39000000, 0x3900006f, - 0x390000a4, 0x39500000, 0x39500099, 0x39800000, - 0x3980007d, 0x39800106, 0x39d00000, 0x39d05000, - 0x39d050e8, 0x39d33000, 0x39d33099, 0x3a100000, - 0x3b300000, 0x3b3000e9, 0x3bd00000, 0x3bd00001, - 0x3be00000, 0x3be00024, 0x3c000000, 0x3c00002a, - 0x3c000041, 0x3c00004e, 0x3c00005a, 0x3c000086, - // Entry 240 - 25F - 0x3c00008b, 0x3c0000b7, 0x3c0000c6, 0x3c0000d1, - 0x3c0000ee, 0x3c000118, 0x3c000126, 0x3c400000, - 0x3c40003f, 0x3c400069, 0x3c4000e4, 0x3d400000, - 0x3d40004e, 0x3d900000, 0x3d90003a, 0x3dc00000, - 0x3dc000bc, 0x3dc00104, 0x3de00000, 0x3de0012f, - 0x3e200000, 0x3e200047, 0x3e2000a5, 0x3e2000ae, - 0x3e2000bc, 0x3e200106, 0x3e200130, 0x3e500000, - 0x3e500107, 0x3e600000, 0x3e60012f, 0x3eb00000, - // Entry 260 - 27F - 0x3eb00106, 0x3ec00000, 0x3ec000a4, 0x3f300000, - 0x3f30012f, 0x3fa00000, 0x3fa000e8, 0x3fc00000, - 0x3fd00000, 0x3fd00072, 0x3fd000da, 0x3fd0010c, - 0x3ff00000, 0x3ff000d1, 0x40100000, 0x401000c3, - 0x40200000, 0x4020004c, 0x40700000, 0x40800000, - 0x40857000, 0x408570ba, 0x408dc000, 0x408dc0ba, - 0x40c00000, 0x40c000b3, 0x41200000, 0x41200111, - 0x41600000, 0x4160010f, 0x41c00000, 0x41d00000, - // Entry 280 - 29F - 0x41e00000, 0x41f00000, 0x41f00072, 0x42200000, - 0x42300000, 0x42300164, 0x42900000, 0x42900062, - 0x4290006f, 0x429000a4, 0x42900115, 0x43100000, - 0x43100027, 0x431000c2, 0x4310014d, 0x43200000, - 0x4321f000, 0x4321f033, 0x4321f0bd, 0x4321f105, - 0x4321f14d, 0x43257000, 0x43257033, 0x432570bd, - 0x43257105, 0x4325714d, 0x43700000, 0x43a00000, - 0x43b00000, 0x44400000, 0x44400031, 0x44400072, - // Entry 2A0 - 2BF - 0x4440010c, 0x44500000, 0x4450004b, 0x445000a4, - 0x4450012f, 0x44500131, 0x44e00000, 0x45000000, - 0x45000099, 0x450000b3, 0x450000d0, 0x4500010d, - 0x46100000, 0x46100099, 0x46400000, 0x464000a4, - 0x46400131, 0x46700000, 0x46700124, 0x46b00000, - 0x46b00123, 0x46f00000, 0x46f0006d, 0x46f0006f, - 0x47100000, 0x47600000, 0x47600127, 0x47a00000, - 0x48000000, 0x48200000, 0x48200129, 0x48a00000, - // Entry 2C0 - 2DF - 0x48a0005d, 0x48a0012b, 0x48e00000, 0x49400000, - 0x49400106, 0x4a400000, 0x4a4000d4, 0x4a900000, - 0x4a9000ba, 0x4ac00000, 0x4ac00053, 0x4ae00000, - 0x4ae00130, 0x4b400000, 0x4b400099, 0x4b4000e8, - 0x4bc00000, 0x4bc05000, 0x4bc05024, 0x4bc1f000, - 0x4bc1f137, 0x4bc57000, 0x4bc57137, 0x4be00000, - 0x4be57000, 0x4be570b4, 0x4bee3000, 0x4bee30b4, - 0x4c000000, 0x4c300000, 0x4c30013e, 0x4c900000, - // Entry 2E0 - 2FF - 0x4c900001, 0x4cc00000, 0x4cc0012f, 0x4ce00000, - 0x4cf00000, 0x4cf0004e, 0x4e500000, 0x4e500114, - 0x4f200000, 0x4fb00000, 0x4fb00131, 0x50900000, - 0x50900052, 0x51200000, 0x51200001, 0x51800000, - 0x5180003b, 0x518000d6, 0x51f00000, 0x51f38000, - 0x51f38053, 0x51f39000, 0x51f3908d, 0x52800000, - 0x528000ba, 0x52900000, 0x52938000, 0x52938053, - 0x5293808d, 0x529380c6, 0x5293810d, 0x52939000, - // Entry 300 - 31F - 0x5293908d, 0x529390c6, 0x5293912e, 0x52f00000, - 0x52f00161, -} // Size: 3116 bytes - -const specialTagsStr string = "ca-ES-valencia en-US-u-va-posix" - -// Total table size 3147 bytes (3KiB); checksum: F4E57D15 diff --git a/vendor/golang.org/x/text/internal/language/compact/tags.go b/vendor/golang.org/x/text/internal/language/compact/tags.go deleted file mode 100644 index ca135d295..000000000 --- a/vendor/golang.org/x/text/internal/language/compact/tags.go +++ /dev/null @@ -1,91 +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. - -package compact - -var ( - und = Tag{} - - Und Tag = Tag{} - - Afrikaans Tag = Tag{language: afIndex, locale: afIndex} - Amharic Tag = Tag{language: amIndex, locale: amIndex} - Arabic Tag = Tag{language: arIndex, locale: arIndex} - ModernStandardArabic Tag = Tag{language: ar001Index, locale: ar001Index} - Azerbaijani Tag = Tag{language: azIndex, locale: azIndex} - Bulgarian Tag = Tag{language: bgIndex, locale: bgIndex} - Bengali Tag = Tag{language: bnIndex, locale: bnIndex} - Catalan Tag = Tag{language: caIndex, locale: caIndex} - Czech Tag = Tag{language: csIndex, locale: csIndex} - Danish Tag = Tag{language: daIndex, locale: daIndex} - German Tag = Tag{language: deIndex, locale: deIndex} - Greek Tag = Tag{language: elIndex, locale: elIndex} - English Tag = Tag{language: enIndex, locale: enIndex} - AmericanEnglish Tag = Tag{language: enUSIndex, locale: enUSIndex} - BritishEnglish Tag = Tag{language: enGBIndex, locale: enGBIndex} - Spanish Tag = Tag{language: esIndex, locale: esIndex} - EuropeanSpanish Tag = Tag{language: esESIndex, locale: esESIndex} - LatinAmericanSpanish Tag = Tag{language: es419Index, locale: es419Index} - Estonian Tag = Tag{language: etIndex, locale: etIndex} - Persian Tag = Tag{language: faIndex, locale: faIndex} - Finnish Tag = Tag{language: fiIndex, locale: fiIndex} - Filipino Tag = Tag{language: filIndex, locale: filIndex} - French Tag = Tag{language: frIndex, locale: frIndex} - CanadianFrench Tag = Tag{language: frCAIndex, locale: frCAIndex} - Gujarati Tag = Tag{language: guIndex, locale: guIndex} - Hebrew Tag = Tag{language: heIndex, locale: heIndex} - Hindi Tag = Tag{language: hiIndex, locale: hiIndex} - Croatian Tag = Tag{language: hrIndex, locale: hrIndex} - Hungarian Tag = Tag{language: huIndex, locale: huIndex} - Armenian Tag = Tag{language: hyIndex, locale: hyIndex} - Indonesian Tag = Tag{language: idIndex, locale: idIndex} - Icelandic Tag = Tag{language: isIndex, locale: isIndex} - Italian Tag = Tag{language: itIndex, locale: itIndex} - Japanese Tag = Tag{language: jaIndex, locale: jaIndex} - Georgian Tag = Tag{language: kaIndex, locale: kaIndex} - Kazakh Tag = Tag{language: kkIndex, locale: kkIndex} - Khmer Tag = Tag{language: kmIndex, locale: kmIndex} - Kannada Tag = Tag{language: knIndex, locale: knIndex} - Korean Tag = Tag{language: koIndex, locale: koIndex} - Kirghiz Tag = Tag{language: kyIndex, locale: kyIndex} - Lao Tag = Tag{language: loIndex, locale: loIndex} - Lithuanian Tag = Tag{language: ltIndex, locale: ltIndex} - Latvian Tag = Tag{language: lvIndex, locale: lvIndex} - Macedonian Tag = Tag{language: mkIndex, locale: mkIndex} - Malayalam Tag = Tag{language: mlIndex, locale: mlIndex} - Mongolian Tag = Tag{language: mnIndex, locale: mnIndex} - Marathi Tag = Tag{language: mrIndex, locale: mrIndex} - Malay Tag = Tag{language: msIndex, locale: msIndex} - Burmese Tag = Tag{language: myIndex, locale: myIndex} - Nepali Tag = Tag{language: neIndex, locale: neIndex} - Dutch Tag = Tag{language: nlIndex, locale: nlIndex} - Norwegian Tag = Tag{language: noIndex, locale: noIndex} - Punjabi Tag = Tag{language: paIndex, locale: paIndex} - Polish Tag = Tag{language: plIndex, locale: plIndex} - Portuguese Tag = Tag{language: ptIndex, locale: ptIndex} - BrazilianPortuguese Tag = Tag{language: ptBRIndex, locale: ptBRIndex} - EuropeanPortuguese Tag = Tag{language: ptPTIndex, locale: ptPTIndex} - Romanian Tag = Tag{language: roIndex, locale: roIndex} - Russian Tag = Tag{language: ruIndex, locale: ruIndex} - Sinhala Tag = Tag{language: siIndex, locale: siIndex} - Slovak Tag = Tag{language: skIndex, locale: skIndex} - Slovenian Tag = Tag{language: slIndex, locale: slIndex} - Albanian Tag = Tag{language: sqIndex, locale: sqIndex} - Serbian Tag = Tag{language: srIndex, locale: srIndex} - SerbianLatin Tag = Tag{language: srLatnIndex, locale: srLatnIndex} - Swedish Tag = Tag{language: svIndex, locale: svIndex} - Swahili Tag = Tag{language: swIndex, locale: swIndex} - Tamil Tag = Tag{language: taIndex, locale: taIndex} - Telugu Tag = Tag{language: teIndex, locale: teIndex} - Thai Tag = Tag{language: thIndex, locale: thIndex} - Turkish Tag = Tag{language: trIndex, locale: trIndex} - Ukrainian Tag = Tag{language: ukIndex, locale: ukIndex} - Urdu Tag = Tag{language: urIndex, locale: urIndex} - Uzbek Tag = Tag{language: uzIndex, locale: uzIndex} - Vietnamese Tag = Tag{language: viIndex, locale: viIndex} - Chinese Tag = Tag{language: zhIndex, locale: zhIndex} - SimplifiedChinese Tag = Tag{language: zhHansIndex, locale: zhHansIndex} - TraditionalChinese Tag = Tag{language: zhHantIndex, locale: zhHantIndex} - Zulu Tag = Tag{language: zuIndex, locale: zuIndex} -) diff --git a/vendor/golang.org/x/text/internal/language/compose.go b/vendor/golang.org/x/text/internal/language/compose.go deleted file mode 100644 index 4ae78e0fa..000000000 --- a/vendor/golang.org/x/text/internal/language/compose.go +++ /dev/null @@ -1,167 +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. - -package language - -import ( - "sort" - "strings" -) - -// A Builder allows constructing a Tag from individual components. -// Its main user is Compose in the top-level language package. -type Builder struct { - Tag Tag - - private string // the x extension - variants []string - extensions []string -} - -// Make returns a new Tag from the current settings. -func (b *Builder) Make() Tag { - t := b.Tag - - if len(b.extensions) > 0 || len(b.variants) > 0 { - sort.Sort(sortVariants(b.variants)) - sort.Strings(b.extensions) - - if b.private != "" { - b.extensions = append(b.extensions, b.private) - } - n := maxCoreSize + tokenLen(b.variants...) + tokenLen(b.extensions...) - buf := make([]byte, n) - p := t.genCoreBytes(buf) - t.pVariant = byte(p) - p += appendTokens(buf[p:], b.variants...) - t.pExt = uint16(p) - p += appendTokens(buf[p:], b.extensions...) - t.str = string(buf[:p]) - // We may not always need to remake the string, but when or when not - // to do so is rather tricky. - scan := makeScanner(buf[:p]) - t, _ = parse(&scan, "") - return t - - } else if b.private != "" { - t.str = b.private - t.RemakeString() - } - return t -} - -// SetTag copies all the settings from a given Tag. Any previously set values -// are discarded. -func (b *Builder) SetTag(t Tag) { - b.Tag.LangID = t.LangID - b.Tag.RegionID = t.RegionID - b.Tag.ScriptID = t.ScriptID - // TODO: optimize - b.variants = b.variants[:0] - if variants := t.Variants(); variants != "" { - for _, vr := range strings.Split(variants[1:], "-") { - b.variants = append(b.variants, vr) - } - } - b.extensions, b.private = b.extensions[:0], "" - for _, e := range t.Extensions() { - b.AddExt(e) - } -} - -// AddExt adds extension e to the tag. e must be a valid extension as returned -// by Tag.Extension. If the extension already exists, it will be discarded, -// except for a -u extension, where non-existing key-type pairs will added. -func (b *Builder) AddExt(e string) { - if e[0] == 'x' { - if b.private == "" { - b.private = e - } - return - } - for i, s := range b.extensions { - if s[0] == e[0] { - if e[0] == 'u' { - b.extensions[i] += e[1:] - } - return - } - } - b.extensions = append(b.extensions, e) -} - -// SetExt sets the extension e to the tag. e must be a valid extension as -// returned by Tag.Extension. If the extension already exists, it will be -// overwritten, except for a -u extension, where the individual key-type pairs -// will be set. -func (b *Builder) SetExt(e string) { - if e[0] == 'x' { - b.private = e - return - } - for i, s := range b.extensions { - if s[0] == e[0] { - if e[0] == 'u' { - b.extensions[i] = e + s[1:] - } else { - b.extensions[i] = e - } - return - } - } - b.extensions = append(b.extensions, e) -} - -// AddVariant adds any number of variants. -func (b *Builder) AddVariant(v ...string) { - for _, v := range v { - if v != "" { - b.variants = append(b.variants, v) - } - } -} - -// ClearVariants removes any variants previously added, including those -// copied from a Tag in SetTag. -func (b *Builder) ClearVariants() { - b.variants = b.variants[:0] -} - -// ClearExtensions removes any extensions previously added, including those -// copied from a Tag in SetTag. -func (b *Builder) ClearExtensions() { - b.private = "" - b.extensions = b.extensions[:0] -} - -func tokenLen(token ...string) (n int) { - for _, t := range token { - n += len(t) + 1 - } - return -} - -func appendTokens(b []byte, token ...string) int { - p := 0 - for _, t := range token { - b[p] = '-' - copy(b[p+1:], t) - p += 1 + len(t) - } - return p -} - -type sortVariants []string - -func (s sortVariants) Len() int { - return len(s) -} - -func (s sortVariants) Swap(i, j int) { - s[j], s[i] = s[i], s[j] -} - -func (s sortVariants) Less(i, j int) bool { - return variantIndex[s[i]] < variantIndex[s[j]] -} diff --git a/vendor/golang.org/x/text/internal/language/coverage.go b/vendor/golang.org/x/text/internal/language/coverage.go deleted file mode 100644 index 9b20b88fe..000000000 --- a/vendor/golang.org/x/text/internal/language/coverage.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2014 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. - -package language - -// BaseLanguages returns the list of all supported base languages. It generates -// the list by traversing the internal structures. -func BaseLanguages() []Language { - base := make([]Language, 0, NumLanguages) - for i := 0; i < langNoIndexOffset; i++ { - // We included "und" already for the value 0. - if i != nonCanonicalUnd { - base = append(base, Language(i)) - } - } - i := langNoIndexOffset - for _, v := range langNoIndex { - for k := 0; k < 8; k++ { - if v&1 == 1 { - base = append(base, Language(i)) - } - v >>= 1 - i++ - } - } - return base -} diff --git a/vendor/golang.org/x/text/internal/language/gen.go b/vendor/golang.org/x/text/internal/language/gen.go deleted file mode 100644 index cdcc7febc..000000000 --- a/vendor/golang.org/x/text/internal/language/gen.go +++ /dev/null @@ -1,1520 +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.`, - ` -AliasMap 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.`, - ` -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]AliasType{} - - // 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] = Macro - case "deprecated": - // handled elsewhere - continue - case "bibliographic", "legacy": - if a.Type == "no" { - continue - } - aliasTypeMap[a.Type] = Legacy - 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"] = Macro - - 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] = Deprecated - } - } - // 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("AliasMap", &langAliasMap, b.langIndex) - types := make([]AliasType, len(langAliasMap.s)) - for i, s := range langAliasMap.s { - types[i] = aliasTypeMap[s] - } - b.writeSlice("AliasTypes", 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) -} - -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< 0 { - extra = extra[1:] - } - if t.equalTags(Und) && strings.HasPrefix(extra, "x-") { - t.str = extra - t.pVariant = 0 - t.pExt = 0 - return - } - var buf [max99thPercentileSize]byte // avoid extra memory allocation in most cases. - b := buf[:t.genCoreBytes(buf[:])] - if extra != "" { - diff := len(b) - int(t.pVariant) - b = append(b, '-') - b = append(b, extra...) - t.pVariant = uint8(int(t.pVariant) + diff) - t.pExt = uint16(int(t.pExt) + diff) - } else { - t.pVariant = uint8(len(b)) - t.pExt = uint16(len(b)) - } - t.str = string(b) -} - -// genCoreBytes writes a string for the base languages, script and region tags -// to the given buffer and returns the number of bytes written. It will never -// write more than maxCoreSize bytes. -func (t *Tag) genCoreBytes(buf []byte) int { - n := t.LangID.StringToBuf(buf[:]) - if t.ScriptID != 0 { - n += copy(buf[n:], "-") - n += copy(buf[n:], t.ScriptID.String()) - } - if t.RegionID != 0 { - n += copy(buf[n:], "-") - n += copy(buf[n:], t.RegionID.String()) - } - return n -} - -// String returns the canonical string representation of the language tag. -func (t Tag) String() string { - if t.str != "" { - return t.str - } - if t.ScriptID == 0 && t.RegionID == 0 { - return t.LangID.String() - } - buf := [maxCoreSize]byte{} - return string(buf[:t.genCoreBytes(buf[:])]) -} - -// MarshalText implements encoding.TextMarshaler. -func (t Tag) MarshalText() (text []byte, err error) { - if t.str != "" { - text = append(text, t.str...) - } else if t.ScriptID == 0 && t.RegionID == 0 { - text = append(text, t.LangID.String()...) - } else { - buf := [maxCoreSize]byte{} - text = buf[:t.genCoreBytes(buf[:])] - } - return text, nil -} - -// UnmarshalText implements encoding.TextUnmarshaler. -func (t *Tag) UnmarshalText(text []byte) error { - tag, err := Parse(string(text)) - *t = tag - return err -} - -// Variants returns the part of the tag holding all variants or the empty string -// if there are no variants defined. -func (t Tag) Variants() string { - if t.pVariant == 0 { - return "" - } - return t.str[t.pVariant:t.pExt] -} - -// VariantOrPrivateUseTags returns variants or private use tags. -func (t Tag) VariantOrPrivateUseTags() string { - if t.pExt > 0 { - return t.str[t.pVariant:t.pExt] - } - return t.str[t.pVariant:] -} - -// HasString reports whether this tag defines more than just the raw -// components. -func (t Tag) HasString() bool { - return t.str != "" -} - -// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a -// specific language are substituted with fields from the parent language. -// The parent for a language may change for newer versions of CLDR. -func (t Tag) Parent() Tag { - if t.str != "" { - // Strip the variants and extensions. - b, s, r := t.Raw() - t = Tag{LangID: b, ScriptID: s, RegionID: r} - if t.RegionID == 0 && t.ScriptID != 0 && t.LangID != 0 { - base, _ := addTags(Tag{LangID: t.LangID}) - if base.ScriptID == t.ScriptID { - return Tag{LangID: t.LangID} - } - } - return t - } - if t.LangID != 0 { - if t.RegionID != 0 { - maxScript := t.ScriptID - if maxScript == 0 { - max, _ := addTags(t) - maxScript = max.ScriptID - } - - for i := range parents { - if Language(parents[i].lang) == t.LangID && Script(parents[i].maxScript) == maxScript { - for _, r := range parents[i].fromRegion { - if Region(r) == t.RegionID { - return Tag{ - LangID: t.LangID, - ScriptID: Script(parents[i].script), - RegionID: Region(parents[i].toRegion), - } - } - } - } - } - - // Strip the script if it is the default one. - base, _ := addTags(Tag{LangID: t.LangID}) - if base.ScriptID != maxScript { - return Tag{LangID: t.LangID, ScriptID: maxScript} - } - return Tag{LangID: t.LangID} - } else if t.ScriptID != 0 { - // The parent for an base-script pair with a non-default script is - // "und" instead of the base language. - base, _ := addTags(Tag{LangID: t.LangID}) - if base.ScriptID != t.ScriptID { - return Und - } - return Tag{LangID: t.LangID} - } - } - return Und -} - -// ParseExtension parses s as an extension and returns it on success. -func ParseExtension(s string) (ext string, err error) { - scan := makeScannerString(s) - var end int - if n := len(scan.token); n != 1 { - return "", ErrSyntax - } - scan.toLower(0, len(scan.b)) - end = parseExtension(&scan) - if end != len(s) { - return "", ErrSyntax - } - return string(scan.b), nil -} - -// HasVariants reports whether t has variants. -func (t Tag) HasVariants() bool { - return uint16(t.pVariant) < t.pExt -} - -// HasExtensions reports whether t has extensions. -func (t Tag) HasExtensions() bool { - return int(t.pExt) < len(t.str) -} - -// Extension returns the extension of type x for tag t. It will return -// false for ok if t does not have the requested extension. The returned -// extension will be invalid in this case. -func (t Tag) Extension(x byte) (ext string, ok bool) { - for i := int(t.pExt); i < len(t.str)-1; { - var ext string - i, ext = getExtension(t.str, i) - if ext[0] == x { - return ext, true - } - } - return "", false -} - -// Extensions returns all extensions of t. -func (t Tag) Extensions() []string { - e := []string{} - for i := int(t.pExt); i < len(t.str)-1; { - var ext string - i, ext = getExtension(t.str, i) - e = append(e, ext) - } - return e -} - -// TypeForKey returns the type associated with the given key, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// TypeForKey will traverse the inheritance chain to get the correct value. -func (t Tag) TypeForKey(key string) string { - if start, end, _ := t.findTypeForKey(key); end != start { - return t.str[start:end] - } - return "" -} - -var ( - errPrivateUse = errors.New("cannot set a key on a private use tag") - errInvalidArguments = errors.New("invalid key or type") -) - -// SetTypeForKey returns a new Tag with the key set to type, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// An empty value removes an existing pair with the same key. -func (t Tag) SetTypeForKey(key, value string) (Tag, error) { - if t.IsPrivateUse() { - return t, errPrivateUse - } - if len(key) != 2 { - return t, errInvalidArguments - } - - // Remove the setting if value is "". - if value == "" { - start, end, _ := t.findTypeForKey(key) - if start != end { - // Remove key tag and leading '-'. - start -= 4 - - // Remove a possible empty extension. - if (end == len(t.str) || t.str[end+2] == '-') && t.str[start-2] == '-' { - start -= 2 - } - if start == int(t.pVariant) && end == len(t.str) { - t.str = "" - t.pVariant, t.pExt = 0, 0 - } else { - t.str = fmt.Sprintf("%s%s", t.str[:start], t.str[end:]) - } - } - return t, nil - } - - if len(value) < 3 || len(value) > 8 { - return t, errInvalidArguments - } - - var ( - buf [maxCoreSize + maxSimpleUExtensionSize]byte - uStart int // start of the -u extension. - ) - - // Generate the tag string if needed. - if t.str == "" { - uStart = t.genCoreBytes(buf[:]) - buf[uStart] = '-' - uStart++ - } - - // Create new key-type pair and parse it to verify. - b := buf[uStart:] - copy(b, "u-") - copy(b[2:], key) - b[4] = '-' - b = b[:5+copy(b[5:], value)] - scan := makeScanner(b) - if parseExtensions(&scan); scan.err != nil { - return t, scan.err - } - - // Assemble the replacement string. - if t.str == "" { - t.pVariant, t.pExt = byte(uStart-1), uint16(uStart-1) - t.str = string(buf[:uStart+len(b)]) - } else { - s := t.str - start, end, hasExt := t.findTypeForKey(key) - if start == end { - if hasExt { - b = b[2:] - } - t.str = fmt.Sprintf("%s-%s%s", s[:start], b, s[end:]) - } else { - t.str = fmt.Sprintf("%s%s%s", s[:start], value, s[end:]) - } - } - return t, nil -} - -// findKeyAndType returns the start and end position for the type corresponding -// to key or the point at which to insert the key-value pair if the type -// wasn't found. The hasExt return value reports whether an -u extension was present. -// Note: the extensions are typically very small and are likely to contain -// only one key-type pair. -func (t Tag) findTypeForKey(key string) (start, end int, hasExt bool) { - p := int(t.pExt) - if len(key) != 2 || p == len(t.str) || p == 0 { - return p, p, false - } - s := t.str - - // Find the correct extension. - for p++; s[p] != 'u'; p++ { - if s[p] > 'u' { - p-- - return p, p, false - } - if p = nextExtension(s, p); p == len(s) { - return len(s), len(s), false - } - } - // Proceed to the hyphen following the extension name. - p++ - - // curKey is the key currently being processed. - curKey := "" - - // Iterate over keys until we get the end of a section. - for { - // p points to the hyphen preceding the current token. - if p3 := p + 3; s[p3] == '-' { - // Found a key. - // Check whether we just processed the key that was requested. - if curKey == key { - return start, p, true - } - // Set to the next key and continue scanning type tokens. - curKey = s[p+1 : p3] - if curKey > key { - return p, p, true - } - // Start of the type token sequence. - start = p + 4 - // A type is at least 3 characters long. - p += 7 // 4 + 3 - } else { - // Attribute or type, which is at least 3 characters long. - p += 4 - } - // p points past the third character of a type or attribute. - max := p + 5 // maximum length of token plus hyphen. - if len(s) < max { - max = len(s) - } - for ; p < max && s[p] != '-'; p++ { - } - // Bail if we have exhausted all tokens or if the next token starts - // a new extension. - if p == len(s) || s[p+2] == '-' { - if curKey == key { - return start, p, true - } - return p, p, true - } - } -} - -// ParseBase parses a 2- or 3-letter ISO 639 code. -// It returns a ValueError if s is a well-formed but unknown language identifier -// or another error if another error occurred. -func ParseBase(s string) (Language, error) { - if n := len(s); n < 2 || 3 < n { - return 0, ErrSyntax - } - var buf [3]byte - return getLangID(buf[:copy(buf[:], s)]) -} - -// ParseScript parses a 4-letter ISO 15924 code. -// It returns a ValueError if s is a well-formed but unknown script identifier -// or another error if another error occurred. -func ParseScript(s string) (Script, error) { - if len(s) != 4 { - return 0, ErrSyntax - } - var buf [4]byte - return getScriptID(script, buf[:copy(buf[:], s)]) -} - -// EncodeM49 returns the Region for the given UN M.49 code. -// It returns an error if r is not a valid code. -func EncodeM49(r int) (Region, error) { - return getRegionM49(r) -} - -// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code. -// It returns a ValueError if s is a well-formed but unknown region identifier -// or another error if another error occurred. -func ParseRegion(s string) (Region, error) { - if n := len(s); n < 2 || 3 < n { - return 0, ErrSyntax - } - var buf [3]byte - return getRegionID(buf[:copy(buf[:], s)]) -} - -// IsCountry returns whether this region is a country or autonomous area. This -// includes non-standard definitions from CLDR. -func (r Region) IsCountry() bool { - if r == 0 || r.IsGroup() || r.IsPrivateUse() && r != _XK { - return false - } - return true -} - -// IsGroup returns whether this region defines a collection of regions. This -// includes non-standard definitions from CLDR. -func (r Region) IsGroup() bool { - if r == 0 { - return false - } - return int(regionInclusion[r]) < len(regionContainment) -} - -// Contains returns whether Region c is contained by Region r. It returns true -// if c == r. -func (r Region) Contains(c Region) bool { - if r == c { - return true - } - g := regionInclusion[r] - if g >= nRegionGroups { - return false - } - m := regionContainment[g] - - d := regionInclusion[c] - b := regionInclusionBits[d] - - // A contained country may belong to multiple disjoint groups. Matching any - // of these indicates containment. If the contained region is a group, it - // must strictly be a subset. - if d >= nRegionGroups { - return b&m != 0 - } - return b&^m == 0 -} - -var errNoTLD = errors.New("language: region is not a valid ccTLD") - -// TLD returns the country code top-level domain (ccTLD). UK is returned for GB. -// In all other cases it returns either the region itself or an error. -// -// This method may return an error for a region for which there exists a -// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The -// region will already be canonicalized it was obtained from a Tag that was -// obtained using any of the default methods. -func (r Region) TLD() (Region, error) { - // See http://en.wikipedia.org/wiki/Country_code_top-level_domain for the - // difference between ISO 3166-1 and IANA ccTLD. - if r == _GB { - r = _UK - } - if (r.typ() & ccTLD) == 0 { - return 0, errNoTLD - } - return r, nil -} - -// Canonicalize returns the region or a possible replacement if the region is -// deprecated. It will not return a replacement for deprecated regions that -// are split into multiple regions. -func (r Region) Canonicalize() Region { - if cr := normRegion(r); cr != 0 { - return cr - } - return r -} - -// Variant represents a registered variant of a language as defined by BCP 47. -type Variant struct { - ID uint8 - str string -} - -// ParseVariant parses and returns a Variant. An error is returned if s is not -// a valid variant. -func ParseVariant(s string) (Variant, error) { - s = strings.ToLower(s) - if id, ok := variantIndex[s]; ok { - return Variant{id, s}, nil - } - return Variant{}, NewValueError([]byte(s)) -} - -// String returns the string representation of the variant. -func (v Variant) String() string { - return v.str -} diff --git a/vendor/golang.org/x/text/internal/language/match.go b/vendor/golang.org/x/text/internal/language/match.go deleted file mode 100644 index 75a2dbca7..000000000 --- a/vendor/golang.org/x/text/internal/language/match.go +++ /dev/null @@ -1,226 +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. - -package language - -import "errors" - -type scriptRegionFlags uint8 - -const ( - isList = 1 << iota - scriptInFrom - regionInFrom -) - -func (t *Tag) setUndefinedLang(id Language) { - if t.LangID == 0 { - t.LangID = id - } -} - -func (t *Tag) setUndefinedScript(id Script) { - if t.ScriptID == 0 { - t.ScriptID = id - } -} - -func (t *Tag) setUndefinedRegion(id Region) { - if t.RegionID == 0 || t.RegionID.Contains(id) { - t.RegionID = id - } -} - -// ErrMissingLikelyTagsData indicates no information was available -// to compute likely values of missing tags. -var ErrMissingLikelyTagsData = errors.New("missing likely tags data") - -// addLikelySubtags sets subtags to their most likely value, given the locale. -// In most cases this means setting fields for unknown values, but in some -// cases it may alter a value. It returns an ErrMissingLikelyTagsData error -// if the given locale cannot be expanded. -func (t Tag) addLikelySubtags() (Tag, error) { - id, err := addTags(t) - if err != nil { - return t, err - } else if id.equalTags(t) { - return t, nil - } - id.RemakeString() - return id, nil -} - -// specializeRegion attempts to specialize a group region. -func specializeRegion(t *Tag) bool { - if i := regionInclusion[t.RegionID]; i < nRegionGroups { - x := likelyRegionGroup[i] - if Language(x.lang) == t.LangID && Script(x.script) == t.ScriptID { - t.RegionID = Region(x.region) - } - return true - } - return false -} - -// Maximize returns a new tag with missing tags filled in. -func (t Tag) Maximize() (Tag, error) { - return addTags(t) -} - -func addTags(t Tag) (Tag, error) { - // We leave private use identifiers alone. - if t.IsPrivateUse() { - return t, nil - } - if t.ScriptID != 0 && t.RegionID != 0 { - if t.LangID != 0 { - // already fully specified - specializeRegion(&t) - return t, nil - } - // Search matches for und-script-region. Note that for these cases - // region will never be a group so there is no need to check for this. - list := likelyRegion[t.RegionID : t.RegionID+1] - if x := list[0]; x.flags&isList != 0 { - list = likelyRegionList[x.lang : x.lang+uint16(x.script)] - } - for _, x := range list { - // Deviating from the spec. See match_test.go for details. - if Script(x.script) == t.ScriptID { - t.setUndefinedLang(Language(x.lang)) - return t, nil - } - } - } - if t.LangID != 0 { - // Search matches for lang-script and lang-region, where lang != und. - if t.LangID < langNoIndexOffset { - x := likelyLang[t.LangID] - if x.flags&isList != 0 { - list := likelyLangList[x.region : x.region+uint16(x.script)] - if t.ScriptID != 0 { - for _, x := range list { - if Script(x.script) == t.ScriptID && x.flags&scriptInFrom != 0 { - t.setUndefinedRegion(Region(x.region)) - return t, nil - } - } - } else if t.RegionID != 0 { - count := 0 - goodScript := true - tt := t - for _, x := range list { - // We visit all entries for which the script was not - // defined, including the ones where the region was not - // defined. This allows for proper disambiguation within - // regions. - if x.flags&scriptInFrom == 0 && t.RegionID.Contains(Region(x.region)) { - tt.RegionID = Region(x.region) - tt.setUndefinedScript(Script(x.script)) - goodScript = goodScript && tt.ScriptID == Script(x.script) - count++ - } - } - if count == 1 { - return tt, nil - } - // Even if we fail to find a unique Region, we might have - // an unambiguous script. - if goodScript { - t.ScriptID = tt.ScriptID - } - } - } - } - } else { - // Search matches for und-script. - if t.ScriptID != 0 { - x := likelyScript[t.ScriptID] - if x.region != 0 { - t.setUndefinedRegion(Region(x.region)) - t.setUndefinedLang(Language(x.lang)) - return t, nil - } - } - // Search matches for und-region. If und-script-region exists, it would - // have been found earlier. - if t.RegionID != 0 { - if i := regionInclusion[t.RegionID]; i < nRegionGroups { - x := likelyRegionGroup[i] - if x.region != 0 { - t.setUndefinedLang(Language(x.lang)) - t.setUndefinedScript(Script(x.script)) - t.RegionID = Region(x.region) - } - } else { - x := likelyRegion[t.RegionID] - if x.flags&isList != 0 { - x = likelyRegionList[x.lang] - } - if x.script != 0 && x.flags != scriptInFrom { - t.setUndefinedLang(Language(x.lang)) - t.setUndefinedScript(Script(x.script)) - return t, nil - } - } - } - } - - // Search matches for lang. - if t.LangID < langNoIndexOffset { - x := likelyLang[t.LangID] - if x.flags&isList != 0 { - x = likelyLangList[x.region] - } - if x.region != 0 { - t.setUndefinedScript(Script(x.script)) - t.setUndefinedRegion(Region(x.region)) - } - specializeRegion(&t) - if t.LangID == 0 { - t.LangID = _en // default language - } - return t, nil - } - return t, ErrMissingLikelyTagsData -} - -func (t *Tag) setTagsFrom(id Tag) { - t.LangID = id.LangID - t.ScriptID = id.ScriptID - t.RegionID = id.RegionID -} - -// minimize removes the region or script subtags from t such that -// t.addLikelySubtags() == t.minimize().addLikelySubtags(). -func (t Tag) minimize() (Tag, error) { - t, err := minimizeTags(t) - if err != nil { - return t, err - } - t.RemakeString() - return t, nil -} - -// minimizeTags mimics the behavior of the ICU 51 C implementation. -func minimizeTags(t Tag) (Tag, error) { - if t.equalTags(Und) { - return t, nil - } - max, err := addTags(t) - if err != nil { - return t, err - } - for _, id := range [...]Tag{ - {LangID: t.LangID}, - {LangID: t.LangID, RegionID: t.RegionID}, - {LangID: t.LangID, ScriptID: t.ScriptID}, - } { - if x, err := addTags(id); err == nil && max.equalTags(x) { - t.setTagsFrom(id) - break - } - } - return t, nil -} diff --git a/vendor/golang.org/x/text/internal/language/parse.go b/vendor/golang.org/x/text/internal/language/parse.go deleted file mode 100644 index 2be83e1da..000000000 --- a/vendor/golang.org/x/text/internal/language/parse.go +++ /dev/null @@ -1,594 +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. - -package language - -import ( - "bytes" - "errors" - "fmt" - "sort" - - "golang.org/x/text/internal/tag" -) - -// isAlpha returns true if the byte is not a digit. -// b must be an ASCII letter or digit. -func isAlpha(b byte) bool { - return b > '9' -} - -// isAlphaNum returns true if the string contains only ASCII letters or digits. -func isAlphaNum(s []byte) bool { - for _, c := range s { - if !('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9') { - return false - } - } - return true -} - -// ErrSyntax is returned by any of the parsing functions when the -// input is not well-formed, according to BCP 47. -// TODO: return the position at which the syntax error occurred? -var ErrSyntax = errors.New("language: tag is not well-formed") - -// ErrDuplicateKey is returned when a tag contains the same key twice with -// different values in the -u section. -var ErrDuplicateKey = errors.New("language: different values for same key in -u extension") - -// ValueError is returned by any of the parsing functions when the -// input is well-formed but the respective subtag is not recognized -// as a valid value. -type ValueError struct { - v [8]byte -} - -// NewValueError creates a new ValueError. -func NewValueError(tag []byte) ValueError { - var e ValueError - copy(e.v[:], tag) - return e -} - -func (e ValueError) tag() []byte { - n := bytes.IndexByte(e.v[:], 0) - if n == -1 { - n = 8 - } - return e.v[:n] -} - -// Error implements the error interface. -func (e ValueError) Error() string { - return fmt.Sprintf("language: subtag %q is well-formed but unknown", e.tag()) -} - -// Subtag returns the subtag for which the error occurred. -func (e ValueError) Subtag() string { - return string(e.tag()) -} - -// scanner is used to scan BCP 47 tokens, which are separated by _ or -. -type scanner struct { - b []byte - bytes [max99thPercentileSize]byte - token []byte - start int // start position of the current token - end int // end position of the current token - next int // next point for scan - err error - done bool -} - -func makeScannerString(s string) scanner { - scan := scanner{} - if len(s) <= len(scan.bytes) { - scan.b = scan.bytes[:copy(scan.bytes[:], s)] - } else { - scan.b = []byte(s) - } - scan.init() - return scan -} - -// makeScanner returns a scanner using b as the input buffer. -// b is not copied and may be modified by the scanner routines. -func makeScanner(b []byte) scanner { - scan := scanner{b: b} - scan.init() - return scan -} - -func (s *scanner) init() { - for i, c := range s.b { - if c == '_' { - s.b[i] = '-' - } - } - s.scan() -} - -// restToLower converts the string between start and end to lower case. -func (s *scanner) toLower(start, end int) { - for i := start; i < end; i++ { - c := s.b[i] - if 'A' <= c && c <= 'Z' { - s.b[i] += 'a' - 'A' - } - } -} - -func (s *scanner) setError(e error) { - if s.err == nil || (e == ErrSyntax && s.err != ErrSyntax) { - s.err = e - } -} - -// resizeRange shrinks or grows the array at position oldStart such that -// a new string of size newSize can fit between oldStart and oldEnd. -// Sets the scan point to after the resized range. -func (s *scanner) resizeRange(oldStart, oldEnd, newSize int) { - s.start = oldStart - if end := oldStart + newSize; end != oldEnd { - diff := end - oldEnd - if end < cap(s.b) { - b := make([]byte, len(s.b)+diff) - copy(b, s.b[:oldStart]) - copy(b[end:], s.b[oldEnd:]) - s.b = b - } else { - s.b = append(s.b[end:], s.b[oldEnd:]...) - } - s.next = end + (s.next - s.end) - s.end = end - } -} - -// replace replaces the current token with repl. -func (s *scanner) replace(repl string) { - s.resizeRange(s.start, s.end, len(repl)) - copy(s.b[s.start:], repl) -} - -// gobble removes the current token from the input. -// Caller must call scan after calling gobble. -func (s *scanner) gobble(e error) { - s.setError(e) - if s.start == 0 { - s.b = s.b[:+copy(s.b, s.b[s.next:])] - s.end = 0 - } else { - s.b = s.b[:s.start-1+copy(s.b[s.start-1:], s.b[s.end:])] - s.end = s.start - 1 - } - s.next = s.start -} - -// deleteRange removes the given range from s.b before the current token. -func (s *scanner) deleteRange(start, end int) { - s.b = s.b[:start+copy(s.b[start:], s.b[end:])] - diff := end - start - s.next -= diff - s.start -= diff - s.end -= diff -} - -// scan parses the next token of a BCP 47 string. Tokens that are larger -// than 8 characters or include non-alphanumeric characters result in an error -// and are gobbled and removed from the output. -// It returns the end position of the last token consumed. -func (s *scanner) scan() (end int) { - end = s.end - s.token = nil - for s.start = s.next; s.next < len(s.b); { - i := bytes.IndexByte(s.b[s.next:], '-') - if i == -1 { - s.end = len(s.b) - s.next = len(s.b) - i = s.end - s.start - } else { - s.end = s.next + i - s.next = s.end + 1 - } - token := s.b[s.start:s.end] - if i < 1 || i > 8 || !isAlphaNum(token) { - s.gobble(ErrSyntax) - continue - } - s.token = token - return end - } - if n := len(s.b); n > 0 && s.b[n-1] == '-' { - s.setError(ErrSyntax) - s.b = s.b[:len(s.b)-1] - } - s.done = true - return end -} - -// acceptMinSize parses multiple tokens of the given size or greater. -// It returns the end position of the last token consumed. -func (s *scanner) acceptMinSize(min int) (end int) { - end = s.end - s.scan() - for ; len(s.token) >= min; s.scan() { - end = s.end - } - return end -} - -// Parse parses the given BCP 47 string and returns a valid Tag. If parsing -// failed it returns an error and any part of the tag that could be parsed. -// If parsing succeeded but an unknown value was found, it returns -// ValueError. The Tag returned in this case is just stripped of the unknown -// value. All other values are preserved. It accepts tags in the BCP 47 format -// and extensions to this standard defined in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -func Parse(s string) (t Tag, err error) { - // TODO: consider supporting old-style locale key-value pairs. - if s == "" { - return Und, ErrSyntax - } - if len(s) <= maxAltTaglen { - b := [maxAltTaglen]byte{} - for i, c := range s { - // Generating invalid UTF-8 is okay as it won't match. - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } else if c == '_' { - c = '-' - } - b[i] = byte(c) - } - if t, ok := grandfathered(b); ok { - return t, nil - } - } - scan := makeScannerString(s) - return parse(&scan, s) -} - -func parse(scan *scanner, s string) (t Tag, err error) { - t = Und - var end int - if n := len(scan.token); n <= 1 { - scan.toLower(0, len(scan.b)) - if n == 0 || scan.token[0] != 'x' { - return t, ErrSyntax - } - end = parseExtensions(scan) - } else if n >= 4 { - return Und, ErrSyntax - } else { // the usual case - t, end = parseTag(scan) - if n := len(scan.token); n == 1 { - t.pExt = uint16(end) - end = parseExtensions(scan) - } else if end < len(scan.b) { - scan.setError(ErrSyntax) - scan.b = scan.b[:end] - } - } - if int(t.pVariant) < len(scan.b) { - if end < len(s) { - s = s[:end] - } - if len(s) > 0 && tag.Compare(s, scan.b) == 0 { - t.str = s - } else { - t.str = string(scan.b) - } - } else { - t.pVariant, t.pExt = 0, 0 - } - return t, scan.err -} - -// parseTag parses language, script, region and variants. -// It returns a Tag and the end position in the input that was parsed. -func parseTag(scan *scanner) (t Tag, end int) { - var e error - // TODO: set an error if an unknown lang, script or region is encountered. - t.LangID, e = getLangID(scan.token) - scan.setError(e) - scan.replace(t.LangID.String()) - langStart := scan.start - end = scan.scan() - for len(scan.token) == 3 && isAlpha(scan.token[0]) { - // From http://tools.ietf.org/html/bcp47, - tags are equivalent - // to a tag of the form . - lang, e := getLangID(scan.token) - if lang != 0 { - t.LangID = lang - copy(scan.b[langStart:], lang.String()) - scan.b[langStart+3] = '-' - scan.start = langStart + 4 - } - scan.gobble(e) - end = scan.scan() - } - if len(scan.token) == 4 && isAlpha(scan.token[0]) { - t.ScriptID, e = getScriptID(script, scan.token) - if t.ScriptID == 0 { - scan.gobble(e) - } - end = scan.scan() - } - if n := len(scan.token); n >= 2 && n <= 3 { - t.RegionID, e = getRegionID(scan.token) - if t.RegionID == 0 { - scan.gobble(e) - } else { - scan.replace(t.RegionID.String()) - } - end = scan.scan() - } - scan.toLower(scan.start, len(scan.b)) - t.pVariant = byte(end) - end = parseVariants(scan, end, t) - t.pExt = uint16(end) - return t, end -} - -var separator = []byte{'-'} - -// parseVariants scans tokens as long as each token is a valid variant string. -// Duplicate variants are removed. -func parseVariants(scan *scanner, end int, t Tag) int { - start := scan.start - varIDBuf := [4]uint8{} - variantBuf := [4][]byte{} - varID := varIDBuf[:0] - variant := variantBuf[:0] - last := -1 - needSort := false - for ; len(scan.token) >= 4; scan.scan() { - // TODO: measure the impact of needing this conversion and redesign - // the data structure if there is an issue. - v, ok := variantIndex[string(scan.token)] - if !ok { - // unknown variant - // TODO: allow user-defined variants? - scan.gobble(NewValueError(scan.token)) - continue - } - varID = append(varID, v) - variant = append(variant, scan.token) - if !needSort { - if last < int(v) { - last = int(v) - } else { - needSort = true - // There is no legal combinations of more than 7 variants - // (and this is by no means a useful sequence). - const maxVariants = 8 - if len(varID) > maxVariants { - break - } - } - } - end = scan.end - } - if needSort { - sort.Sort(variantsSort{varID, variant}) - k, l := 0, -1 - for i, v := range varID { - w := int(v) - if l == w { - // Remove duplicates. - continue - } - varID[k] = varID[i] - variant[k] = variant[i] - k++ - l = w - } - if str := bytes.Join(variant[:k], separator); len(str) == 0 { - end = start - 1 - } else { - scan.resizeRange(start, end, len(str)) - copy(scan.b[scan.start:], str) - end = scan.end - } - } - return end -} - -type variantsSort struct { - i []uint8 - v [][]byte -} - -func (s variantsSort) Len() int { - return len(s.i) -} - -func (s variantsSort) Swap(i, j int) { - s.i[i], s.i[j] = s.i[j], s.i[i] - s.v[i], s.v[j] = s.v[j], s.v[i] -} - -func (s variantsSort) Less(i, j int) bool { - return s.i[i] < s.i[j] -} - -type bytesSort struct { - b [][]byte - n int // first n bytes to compare -} - -func (b bytesSort) Len() int { - return len(b.b) -} - -func (b bytesSort) Swap(i, j int) { - b.b[i], b.b[j] = b.b[j], b.b[i] -} - -func (b bytesSort) Less(i, j int) bool { - for k := 0; k < b.n; k++ { - if b.b[i][k] == b.b[j][k] { - continue - } - return b.b[i][k] < b.b[j][k] - } - return false -} - -// parseExtensions parses and normalizes the extensions in the buffer. -// It returns the last position of scan.b that is part of any extension. -// It also trims scan.b to remove excess parts accordingly. -func parseExtensions(scan *scanner) int { - start := scan.start - exts := [][]byte{} - private := []byte{} - end := scan.end - for len(scan.token) == 1 { - extStart := scan.start - ext := scan.token[0] - end = parseExtension(scan) - extension := scan.b[extStart:end] - if len(extension) < 3 || (ext != 'x' && len(extension) < 4) { - scan.setError(ErrSyntax) - end = extStart - continue - } else if start == extStart && (ext == 'x' || scan.start == len(scan.b)) { - scan.b = scan.b[:end] - return end - } else if ext == 'x' { - private = extension - break - } - exts = append(exts, extension) - } - sort.Sort(bytesSort{exts, 1}) - if len(private) > 0 { - exts = append(exts, private) - } - scan.b = scan.b[:start] - if len(exts) > 0 { - scan.b = append(scan.b, bytes.Join(exts, separator)...) - } else if start > 0 { - // Strip trailing '-'. - scan.b = scan.b[:start-1] - } - return end -} - -// parseExtension parses a single extension and returns the position of -// the extension end. -func parseExtension(scan *scanner) int { - start, end := scan.start, scan.end - switch scan.token[0] { - case 'u': - attrStart := end - scan.scan() - for last := []byte{}; len(scan.token) > 2; scan.scan() { - if bytes.Compare(scan.token, last) != -1 { - // Attributes are unsorted. Start over from scratch. - p := attrStart + 1 - scan.next = p - attrs := [][]byte{} - for scan.scan(); len(scan.token) > 2; scan.scan() { - attrs = append(attrs, scan.token) - end = scan.end - } - sort.Sort(bytesSort{attrs, 3}) - copy(scan.b[p:], bytes.Join(attrs, separator)) - break - } - last = scan.token - end = scan.end - } - var last, key []byte - for attrEnd := end; len(scan.token) == 2; last = key { - key = scan.token - keyEnd := scan.end - end = scan.acceptMinSize(3) - // TODO: check key value validity - if keyEnd == end || bytes.Compare(key, last) != 1 { - // We have an invalid key or the keys are not sorted. - // Start scanning keys from scratch and reorder. - p := attrEnd + 1 - scan.next = p - keys := [][]byte{} - for scan.scan(); len(scan.token) == 2; { - keyStart, keyEnd := scan.start, scan.end - end = scan.acceptMinSize(3) - if keyEnd != end { - keys = append(keys, scan.b[keyStart:end]) - } else { - scan.setError(ErrSyntax) - end = keyStart - } - } - sort.Stable(bytesSort{keys, 2}) - if n := len(keys); n > 0 { - k := 0 - for i := 1; i < n; i++ { - if !bytes.Equal(keys[k][:2], keys[i][:2]) { - k++ - keys[k] = keys[i] - } else if !bytes.Equal(keys[k], keys[i]) { - scan.setError(ErrDuplicateKey) - } - } - keys = keys[:k+1] - } - reordered := bytes.Join(keys, separator) - if e := p + len(reordered); e < end { - scan.deleteRange(e, end) - end = e - } - copy(scan.b[p:], reordered) - break - } - } - case 't': - scan.scan() - if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) { - _, end = parseTag(scan) - scan.toLower(start, end) - } - for len(scan.token) == 2 && !isAlpha(scan.token[1]) { - end = scan.acceptMinSize(3) - } - case 'x': - end = scan.acceptMinSize(1) - default: - end = scan.acceptMinSize(2) - } - return end -} - -// getExtension returns the name, body and end position of the extension. -func getExtension(s string, p int) (end int, ext string) { - if s[p] == '-' { - p++ - } - if s[p] == 'x' { - return len(s), s[p:] - } - end = nextExtension(s, p) - return end, s[p:end] -} - -// nextExtension finds the next extension within the string, searching -// for the -- pattern from position p. -// In the fast majority of cases, language tags will have at most -// one extension and extensions tend to be small. -func nextExtension(s string, p int) int { - for n := len(s) - 3; p < n; { - if s[p] == '-' { - if s[p+2] == '-' { - return p - } - p += 3 - } else { - p++ - } - } - return len(s) -} diff --git a/vendor/golang.org/x/text/internal/language/tables.go b/vendor/golang.org/x/text/internal/language/tables.go deleted file mode 100644 index 239e2d29e..000000000 --- a/vendor/golang.org/x/text/internal/language/tables.go +++ /dev/null @@ -1,3431 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package language - -import "golang.org/x/text/internal/tag" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "32" - -const NumLanguages = 8665 - -const NumScripts = 242 - -const NumRegions = 357 - -type FromTo struct { - From uint16 - To uint16 -} - -const nonCanonicalUnd = 1201 -const ( - _af = 22 - _am = 39 - _ar = 58 - _az = 88 - _bg = 126 - _bn = 165 - _ca = 215 - _cs = 250 - _da = 257 - _de = 269 - _el = 310 - _en = 313 - _es = 318 - _et = 320 - _fa = 328 - _fi = 337 - _fil = 339 - _fr = 350 - _gu = 420 - _he = 444 - _hi = 446 - _hr = 465 - _hu = 469 - _hy = 471 - _id = 481 - _is = 504 - _it = 505 - _ja = 512 - _ka = 528 - _kk = 578 - _km = 586 - _kn = 593 - _ko = 596 - _ky = 650 - _lo = 696 - _lt = 704 - _lv = 711 - _mk = 767 - _ml = 772 - _mn = 779 - _mo = 784 - _mr = 795 - _ms = 799 - _mul = 806 - _my = 817 - _nb = 839 - _ne = 849 - _nl = 871 - _no = 879 - _pa = 925 - _pl = 947 - _pt = 960 - _ro = 988 - _ru = 994 - _sh = 1031 - _si = 1036 - _sk = 1042 - _sl = 1046 - _sq = 1073 - _sr = 1074 - _sv = 1092 - _sw = 1093 - _ta = 1104 - _te = 1121 - _th = 1131 - _tl = 1146 - _tn = 1152 - _tr = 1162 - _uk = 1198 - _ur = 1204 - _uz = 1212 - _vi = 1219 - _zh = 1321 - _zu = 1327 - _jbo = 515 - _ami = 1650 - _bnn = 2357 - _hak = 438 - _tlh = 14467 - _lb = 661 - _nv = 899 - _pwn = 12055 - _tao = 14188 - _tay = 14198 - _tsu = 14662 - _nn = 874 - _sfb = 13629 - _vgt = 15701 - _sgg = 13660 - _cmn = 3007 - _nan = 835 - _hsn = 467 -) - -const langPrivateStart = 0x2f72 - -const langPrivateEnd = 0x3179 - -// 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. -const lang tag.Index = "" + // Size: 5324 bytes - "---\x00aaaraai\x00aak\x00aau\x00abbkabi\x00abq\x00abr\x00abt\x00aby\x00a" + - "cd\x00ace\x00ach\x00ada\x00ade\x00adj\x00ady\x00adz\x00aeveaeb\x00aey" + - "\x00affragc\x00agd\x00agg\x00agm\x00ago\x00agq\x00aha\x00ahl\x00aho\x00a" + - "jg\x00akkaakk\x00ala\x00ali\x00aln\x00alt\x00ammhamm\x00amn\x00amo\x00am" + - "p\x00anrganc\x00ank\x00ann\x00any\x00aoj\x00aom\x00aoz\x00apc\x00apd\x00" + - "ape\x00apr\x00aps\x00apz\x00arraarc\x00arh\x00arn\x00aro\x00arq\x00ars" + - "\x00ary\x00arz\x00assmasa\x00ase\x00asg\x00aso\x00ast\x00ata\x00atg\x00a" + - "tj\x00auy\x00avvaavl\x00avn\x00avt\x00avu\x00awa\x00awb\x00awo\x00awx" + - "\x00ayymayb\x00azzebaakbal\x00ban\x00bap\x00bar\x00bas\x00bav\x00bax\x00" + - "bba\x00bbb\x00bbc\x00bbd\x00bbj\x00bbp\x00bbr\x00bcf\x00bch\x00bci\x00bc" + - "m\x00bcn\x00bco\x00bcq\x00bcu\x00bdd\x00beelbef\x00beh\x00bej\x00bem\x00" + - "bet\x00bew\x00bex\x00bez\x00bfd\x00bfq\x00bft\x00bfy\x00bgulbgc\x00bgn" + - "\x00bgx\x00bhihbhb\x00bhg\x00bhi\x00bhk\x00bhl\x00bho\x00bhy\x00biisbib" + - "\x00big\x00bik\x00bim\x00bin\x00bio\x00biq\x00bjh\x00bji\x00bjj\x00bjn" + - "\x00bjo\x00bjr\x00bjt\x00bjz\x00bkc\x00bkm\x00bkq\x00bku\x00bkv\x00blt" + - "\x00bmambmh\x00bmk\x00bmq\x00bmu\x00bnenbng\x00bnm\x00bnp\x00boodboj\x00" + - "bom\x00bon\x00bpy\x00bqc\x00bqi\x00bqp\x00bqv\x00brrebra\x00brh\x00brx" + - "\x00brz\x00bsosbsj\x00bsq\x00bss\x00bst\x00bto\x00btt\x00btv\x00bua\x00b" + - "uc\x00bud\x00bug\x00buk\x00bum\x00buo\x00bus\x00buu\x00bvb\x00bwd\x00bwr" + - "\x00bxh\x00bye\x00byn\x00byr\x00bys\x00byv\x00byx\x00bza\x00bze\x00bzf" + - "\x00bzh\x00bzw\x00caatcan\x00cbj\x00cch\x00ccp\x00ceheceb\x00cfa\x00cgg" + - "\x00chhachk\x00chm\x00cho\x00chp\x00chr\x00cja\x00cjm\x00cjv\x00ckb\x00c" + - "kl\x00cko\x00cky\x00cla\x00cme\x00cmg\x00cooscop\x00cps\x00crrecrh\x00cr" + - "j\x00crk\x00crl\x00crm\x00crs\x00csescsb\x00csw\x00ctd\x00cuhucvhvcyymda" + - "andad\x00daf\x00dag\x00dah\x00dak\x00dar\x00dav\x00dbd\x00dbq\x00dcc\x00" + - "ddn\x00deeuded\x00den\x00dga\x00dgh\x00dgi\x00dgl\x00dgr\x00dgz\x00dia" + - "\x00dje\x00dnj\x00dob\x00doi\x00dop\x00dow\x00dri\x00drs\x00dsb\x00dtm" + - "\x00dtp\x00dts\x00dty\x00dua\x00duc\x00dud\x00dug\x00dvivdva\x00dww\x00d" + - "yo\x00dyu\x00dzzodzg\x00ebu\x00eeweefi\x00egl\x00egy\x00eka\x00eky\x00el" + - "llema\x00emi\x00enngenn\x00enq\x00eopoeri\x00es\x00\x05esu\x00etstetr" + - "\x00ett\x00etu\x00etx\x00euusewo\x00ext\x00faasfaa\x00fab\x00fag\x00fai" + - "\x00fan\x00ffulffi\x00ffm\x00fiinfia\x00fil\x00fit\x00fjijflr\x00fmp\x00" + - "foaofod\x00fon\x00for\x00fpe\x00fqs\x00frrafrc\x00frp\x00frr\x00frs\x00f" + - "ub\x00fud\x00fue\x00fuf\x00fuh\x00fuq\x00fur\x00fuv\x00fuy\x00fvr\x00fyr" + - "ygalegaa\x00gaf\x00gag\x00gah\x00gaj\x00gam\x00gan\x00gaw\x00gay\x00gba" + - "\x00gbf\x00gbm\x00gby\x00gbz\x00gcr\x00gdlagde\x00gdn\x00gdr\x00geb\x00g" + - "ej\x00gel\x00gez\x00gfk\x00ggn\x00ghs\x00gil\x00gim\x00gjk\x00gjn\x00gju" + - "\x00gkn\x00gkp\x00gllgglk\x00gmm\x00gmv\x00gnrngnd\x00gng\x00god\x00gof" + - "\x00goi\x00gom\x00gon\x00gor\x00gos\x00got\x00grb\x00grc\x00grt\x00grw" + - "\x00gsw\x00guujgub\x00guc\x00gud\x00gur\x00guw\x00gux\x00guz\x00gvlvgvf" + - "\x00gvr\x00gvs\x00gwc\x00gwi\x00gwt\x00gyi\x00haauhag\x00hak\x00ham\x00h" + - "aw\x00haz\x00hbb\x00hdy\x00heebhhy\x00hiinhia\x00hif\x00hig\x00hih\x00hi" + - "l\x00hla\x00hlu\x00hmd\x00hmt\x00hnd\x00hne\x00hnj\x00hnn\x00hno\x00homo" + - "hoc\x00hoj\x00hot\x00hrrvhsb\x00hsn\x00htathuunhui\x00hyyehzerianaian" + - "\x00iar\x00iba\x00ibb\x00iby\x00ica\x00ich\x00idndidd\x00idi\x00idu\x00i" + - "eleife\x00igboigb\x00ige\x00iiiiijj\x00ikpkikk\x00ikt\x00ikw\x00ikx\x00i" + - "lo\x00imo\x00inndinh\x00iodoiou\x00iri\x00isslittaiukuiw\x00\x03iwm\x00i" + - "ws\x00izh\x00izi\x00japnjab\x00jam\x00jbo\x00jbu\x00jen\x00jgk\x00jgo" + - "\x00ji\x00\x06jib\x00jmc\x00jml\x00jra\x00jut\x00jvavjwavkaatkaa\x00kab" + - "\x00kac\x00kad\x00kai\x00kaj\x00kam\x00kao\x00kbd\x00kbm\x00kbp\x00kbq" + - "\x00kbx\x00kby\x00kcg\x00kck\x00kcl\x00kct\x00kde\x00kdh\x00kdl\x00kdt" + - "\x00kea\x00ken\x00kez\x00kfo\x00kfr\x00kfy\x00kgonkge\x00kgf\x00kgp\x00k" + - "ha\x00khb\x00khn\x00khq\x00khs\x00kht\x00khw\x00khz\x00kiikkij\x00kiu" + - "\x00kiw\x00kjuakjd\x00kjg\x00kjs\x00kjy\x00kkazkkc\x00kkj\x00klalkln\x00" + - "klq\x00klt\x00klx\x00kmhmkmb\x00kmh\x00kmo\x00kms\x00kmu\x00kmw\x00knank" + - "nf\x00knp\x00koorkoi\x00kok\x00kol\x00kos\x00koz\x00kpe\x00kpf\x00kpo" + - "\x00kpr\x00kpx\x00kqb\x00kqf\x00kqs\x00kqy\x00kraukrc\x00kri\x00krj\x00k" + - "rl\x00krs\x00kru\x00ksasksb\x00ksd\x00ksf\x00ksh\x00ksj\x00ksr\x00ktb" + - "\x00ktm\x00kto\x00kuurkub\x00kud\x00kue\x00kuj\x00kum\x00kun\x00kup\x00k" + - "us\x00kvomkvg\x00kvr\x00kvx\x00kw\x00\x01kwj\x00kwo\x00kxa\x00kxc\x00kxm" + - "\x00kxp\x00kxw\x00kxz\x00kyirkye\x00kyx\x00kzr\x00laatlab\x00lad\x00lag" + - "\x00lah\x00laj\x00las\x00lbtzlbe\x00lbu\x00lbw\x00lcm\x00lcp\x00ldb\x00l" + - "ed\x00lee\x00lem\x00lep\x00leq\x00leu\x00lez\x00lguglgg\x00liimlia\x00li" + - "d\x00lif\x00lig\x00lih\x00lij\x00lis\x00ljp\x00lki\x00lkt\x00lle\x00lln" + - "\x00lmn\x00lmo\x00lmp\x00lninlns\x00lnu\x00loaoloj\x00lok\x00lol\x00lor" + - "\x00los\x00loz\x00lrc\x00ltitltg\x00luublua\x00luo\x00luy\x00luz\x00lvav" + - "lwl\x00lzh\x00lzz\x00mad\x00maf\x00mag\x00mai\x00mak\x00man\x00mas\x00ma" + - "w\x00maz\x00mbh\x00mbo\x00mbq\x00mbu\x00mbw\x00mci\x00mcp\x00mcq\x00mcr" + - "\x00mcu\x00mda\x00mde\x00mdf\x00mdh\x00mdj\x00mdr\x00mdx\x00med\x00mee" + - "\x00mek\x00men\x00mer\x00met\x00meu\x00mfa\x00mfe\x00mfn\x00mfo\x00mfq" + - "\x00mglgmgh\x00mgl\x00mgo\x00mgp\x00mgy\x00mhahmhi\x00mhl\x00mirimif\x00" + - "min\x00mis\x00miw\x00mkkdmki\x00mkl\x00mkp\x00mkw\x00mlalmle\x00mlp\x00m" + - "ls\x00mmo\x00mmu\x00mmx\x00mnonmna\x00mnf\x00mni\x00mnw\x00moolmoa\x00mo" + - "e\x00moh\x00mos\x00mox\x00mpp\x00mps\x00mpt\x00mpx\x00mql\x00mrarmrd\x00" + - "mrj\x00mro\x00mssamtltmtc\x00mtf\x00mti\x00mtr\x00mua\x00mul\x00mur\x00m" + - "us\x00mva\x00mvn\x00mvy\x00mwk\x00mwr\x00mwv\x00mxc\x00mxm\x00myyamyk" + - "\x00mym\x00myv\x00myw\x00myx\x00myz\x00mzk\x00mzm\x00mzn\x00mzp\x00mzw" + - "\x00mzz\x00naaunac\x00naf\x00nah\x00nak\x00nan\x00nap\x00naq\x00nas\x00n" + - "bobnca\x00nce\x00ncf\x00nch\x00nco\x00ncu\x00nddendc\x00nds\x00neepneb" + - "\x00new\x00nex\x00nfr\x00ngdonga\x00ngb\x00ngl\x00nhb\x00nhe\x00nhw\x00n" + - "if\x00nii\x00nij\x00nin\x00niu\x00niy\x00niz\x00njo\x00nkg\x00nko\x00nll" + - "dnmg\x00nmz\x00nnnonnf\x00nnh\x00nnk\x00nnm\x00noornod\x00noe\x00non\x00" + - "nop\x00nou\x00nqo\x00nrblnrb\x00nsk\x00nsn\x00nso\x00nss\x00ntm\x00ntr" + - "\x00nui\x00nup\x00nus\x00nuv\x00nux\x00nvavnwb\x00nxq\x00nxr\x00nyyanym" + - "\x00nyn\x00nzi\x00occiogc\x00ojjiokr\x00okv\x00omrmong\x00onn\x00ons\x00" + - "opm\x00orrioro\x00oru\x00osssosa\x00ota\x00otk\x00ozm\x00paanpag\x00pal" + - "\x00pam\x00pap\x00pau\x00pbi\x00pcd\x00pcm\x00pdc\x00pdt\x00ped\x00peo" + - "\x00pex\x00pfl\x00phl\x00phn\x00pilipil\x00pip\x00pka\x00pko\x00plolpla" + - "\x00pms\x00png\x00pnn\x00pnt\x00pon\x00ppo\x00pra\x00prd\x00prg\x00psusp" + - "ss\x00ptorptp\x00puu\x00pwa\x00quuequc\x00qug\x00rai\x00raj\x00rao\x00rc" + - "f\x00rej\x00rel\x00res\x00rgn\x00rhg\x00ria\x00rif\x00rjs\x00rkt\x00rmoh" + - "rmf\x00rmo\x00rmt\x00rmu\x00rnunrna\x00rng\x00roonrob\x00rof\x00roo\x00r" + - "ro\x00rtm\x00ruusrue\x00rug\x00rw\x00\x04rwk\x00rwo\x00ryu\x00saansaf" + - "\x00sah\x00saq\x00sas\x00sat\x00sav\x00saz\x00sba\x00sbe\x00sbp\x00scrds" + - "ck\x00scl\x00scn\x00sco\x00scs\x00sdndsdc\x00sdh\x00semesef\x00seh\x00se" + - "i\x00ses\x00sgagsga\x00sgs\x00sgw\x00sgz\x00sh\x00\x02shi\x00shk\x00shn" + - "\x00shu\x00siinsid\x00sig\x00sil\x00sim\x00sjr\x00sklkskc\x00skr\x00sks" + - "\x00sllvsld\x00sli\x00sll\x00sly\x00smmosma\x00smi\x00smj\x00smn\x00smp" + - "\x00smq\x00sms\x00snnasnc\x00snk\x00snp\x00snx\x00sny\x00soomsok\x00soq" + - "\x00sou\x00soy\x00spd\x00spl\x00sps\x00sqqisrrpsrb\x00srn\x00srr\x00srx" + - "\x00ssswssd\x00ssg\x00ssy\x00stotstk\x00stq\x00suunsua\x00sue\x00suk\x00" + - "sur\x00sus\x00svweswwaswb\x00swc\x00swg\x00swp\x00swv\x00sxn\x00sxw\x00s" + - "yl\x00syr\x00szl\x00taamtaj\x00tal\x00tan\x00taq\x00tbc\x00tbd\x00tbf" + - "\x00tbg\x00tbo\x00tbw\x00tbz\x00tci\x00tcy\x00tdd\x00tdg\x00tdh\x00teelt" + - "ed\x00tem\x00teo\x00tet\x00tfi\x00tggktgc\x00tgo\x00tgu\x00thhathl\x00th" + - "q\x00thr\x00tiirtif\x00tig\x00tik\x00tim\x00tio\x00tiv\x00tkuktkl\x00tkr" + - "\x00tkt\x00tlgltlf\x00tlx\x00tly\x00tmh\x00tmy\x00tnsntnh\x00toontof\x00" + - "tog\x00toq\x00tpi\x00tpm\x00tpz\x00tqo\x00trurtru\x00trv\x00trw\x00tssot" + - "sd\x00tsf\x00tsg\x00tsj\x00tsw\x00ttatttd\x00tte\x00ttj\x00ttr\x00tts" + - "\x00ttt\x00tuh\x00tul\x00tum\x00tuq\x00tvd\x00tvl\x00tvu\x00twwitwh\x00t" + - "wq\x00txg\x00tyahtya\x00tyv\x00tzm\x00ubu\x00udm\x00ugiguga\x00ukkruli" + - "\x00umb\x00und\x00unr\x00unx\x00urrduri\x00urt\x00urw\x00usa\x00utr\x00u" + - "vh\x00uvl\x00uzzbvag\x00vai\x00van\x00veenvec\x00vep\x00viievic\x00viv" + - "\x00vls\x00vmf\x00vmw\x00voolvot\x00vro\x00vun\x00vut\x00walnwae\x00waj" + - "\x00wal\x00wan\x00war\x00wbp\x00wbq\x00wbr\x00wci\x00wer\x00wgi\x00whg" + - "\x00wib\x00wiu\x00wiv\x00wja\x00wji\x00wls\x00wmo\x00wnc\x00wni\x00wnu" + - "\x00woolwob\x00wos\x00wrs\x00wsk\x00wtm\x00wuu\x00wuv\x00wwa\x00xav\x00x" + - "bi\x00xcr\x00xes\x00xhhoxla\x00xlc\x00xld\x00xmf\x00xmn\x00xmr\x00xna" + - "\x00xnr\x00xog\x00xon\x00xpr\x00xrb\x00xsa\x00xsi\x00xsm\x00xsr\x00xwe" + - "\x00yam\x00yao\x00yap\x00yas\x00yat\x00yav\x00yay\x00yaz\x00yba\x00ybb" + - "\x00yby\x00yer\x00ygr\x00ygw\x00yiidyko\x00yle\x00ylg\x00yll\x00yml\x00y" + - "ooryon\x00yrb\x00yre\x00yrl\x00yss\x00yua\x00yue\x00yuj\x00yut\x00yuw" + - "\x00zahazag\x00zbl\x00zdj\x00zea\x00zgh\x00zhhozhx\x00zia\x00zlm\x00zmi" + - "\x00zne\x00zuulzxx\x00zza\x00\xff\xff\xff\xff" - -const langNoIndexOffset = 1330 - -// 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. -// Size: 2197 bytes, 2197 elements -var langNoIndex = [2197]uint8{ - // Entry 0 - 3F - 0xff, 0xf8, 0xed, 0xfe, 0xeb, 0xd3, 0x3b, 0xd2, - 0xfb, 0xbf, 0x7a, 0xfa, 0x37, 0x1d, 0x3c, 0x57, - 0x6e, 0x97, 0x73, 0x38, 0xfb, 0xea, 0xbf, 0x70, - 0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x62, - 0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77, - 0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2, - 0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xb8, 0x0a, 0x6a, - 0x7c, 0xea, 0xe3, 0xfa, 0x7a, 0xbf, 0x67, 0xff, - // Entry 40 - 7F - 0xff, 0xff, 0xff, 0xdf, 0x2a, 0x54, 0x91, 0xc0, - 0x5d, 0xe3, 0x97, 0x14, 0x07, 0x20, 0xdd, 0xed, - 0x9f, 0x3f, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0x35, - 0x7c, 0x5f, 0xff, 0x5f, 0x8e, 0x6e, 0xdf, 0xff, - 0xff, 0xff, 0x55, 0x7c, 0xd3, 0xfd, 0xbf, 0xb5, - 0x7b, 0xdf, 0x7f, 0xf7, 0xca, 0xfe, 0xdb, 0xa3, - 0xa8, 0xff, 0x1f, 0x67, 0x7d, 0xeb, 0xef, 0xce, - 0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf, - // Entry 80 - BF - 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x2f, 0xff, 0xff, - 0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7, - 0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba, - 0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff, - 0xfd, 0xdf, 0xfb, 0xfe, 0x9d, 0xb4, 0xd3, 0xff, - 0xef, 0xff, 0xdf, 0xf7, 0x7f, 0xb7, 0xfd, 0xd5, - 0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c, - 0x08, 0x20, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80, - // Entry C0 - FF - 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96, - 0x1b, 0x14, 0x08, 0xf2, 0x2b, 0xe7, 0x17, 0x56, - 0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x71, 0xf3, 0xef, - 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10, - 0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xf7, 0x73, 0x35, - 0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x00, 0x81, 0x00, - 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d, - // Entry 100 - 13F - 0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64, - 0x0d, 0x19, 0x41, 0xdf, 0x79, 0x22, 0x00, 0x00, - 0x00, 0x5e, 0x64, 0xdc, 0x24, 0xe5, 0xd9, 0xe3, - 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c, - 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc5, 0x67, 0x5f, - 0x56, 0x89, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00, - 0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56, - 0x90, 0x69, 0x01, 0x2c, 0x96, 0x69, 0x20, 0xfb, - // Entry 140 - 17F - 0xff, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x16, - 0x01, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x06, - 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x09, - 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04, - 0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04, - 0x00, 0x00, 0x40, 0xd5, 0x2d, 0x00, 0x64, 0x35, - 0x24, 0x52, 0xf4, 0xd4, 0xbd, 0x62, 0xc9, 0x03, - // Entry 180 - 1BF - 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98, - 0x21, 0x18, 0x81, 0x00, 0x00, 0x01, 0x40, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0x80, 0xea, - 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - // Entry 1C0 - 1FF - 0x00, 0x01, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x20, 0x04, 0xa6, 0x00, 0x04, 0x00, 0x00, - 0x81, 0x50, 0x00, 0x00, 0x00, 0x11, 0x84, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x55, - 0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x40, - 0x30, 0x83, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1e, 0xcd, 0xbf, 0x7a, 0xbf, - // Entry 200 - 23F - 0xdf, 0xc3, 0x83, 0x82, 0xc0, 0xfb, 0x57, 0x27, - 0xcd, 0x55, 0xe7, 0x01, 0x00, 0x20, 0xb2, 0xc5, - 0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe0, 0xdf, - 0x03, 0x44, 0x08, 0x10, 0x01, 0x04, 0x01, 0xe3, - 0x92, 0x54, 0xdb, 0x28, 0xd1, 0x5f, 0xf6, 0x6d, - 0x79, 0xed, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01, - 0x21, 0x12, 0x64, 0x5f, 0xdd, 0x0e, 0x85, 0x4f, - 0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54, - // Entry 240 - 27F - 0xe8, 0x03, 0xb4, 0x27, 0x23, 0x0d, 0x00, 0x00, - 0x20, 0x7b, 0x38, 0x02, 0x05, 0x84, 0x00, 0xf0, - 0xbb, 0x7e, 0x5a, 0x00, 0x18, 0x04, 0x81, 0x00, - 0x00, 0x00, 0x80, 0x10, 0x90, 0x1c, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04, - 0x08, 0xa0, 0x70, 0xa5, 0x0c, 0x40, 0x00, 0x00, - 0x11, 0x04, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff, - 0x7b, 0x7f, 0x60, 0x00, 0x05, 0x9b, 0xdd, 0x66, - // Entry 280 - 2BF - 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05, - 0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51, - 0xe2, 0xef, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x60, - 0xe7, 0x48, 0x00, 0x81, 0x20, 0xc0, 0x05, 0x80, - 0x03, 0x00, 0x00, 0x00, 0x8c, 0x50, 0x40, 0x04, - 0x84, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20, - // Entry 2C0 - 2FF - 0x02, 0x50, 0x80, 0x11, 0x00, 0x91, 0x6c, 0xe2, - 0x50, 0x27, 0x1d, 0x11, 0x29, 0x06, 0x59, 0xe9, - 0x33, 0x08, 0x00, 0x20, 0x04, 0x40, 0x10, 0x00, - 0x00, 0x00, 0x50, 0x44, 0x92, 0x49, 0xd6, 0x5d, - 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01, - 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x00, 0x08, - 0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x89, 0x12, 0x00, - // Entry 300 - 33F - 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0, - 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x04, 0x10, 0xd0, 0x9d, 0x95, 0x13, 0x04, 0x80, - 0x00, 0x01, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0, - 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00, - 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0x80, - 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00, - // Entry 340 - 37F - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, - 0x00, 0x10, 0x00, 0x00, 0x00, 0xf0, 0x84, 0xe3, - 0xdd, 0xbf, 0xf9, 0xf9, 0x3b, 0x7f, 0x7f, 0xdb, - 0xfd, 0xfc, 0xfe, 0xdf, 0xff, 0xfd, 0xff, 0xf6, - 0xfb, 0xfc, 0xf7, 0x1f, 0xff, 0xb3, 0x6c, 0xff, - 0xd9, 0xad, 0xdf, 0xfe, 0xef, 0xba, 0xdf, 0xff, - 0xff, 0xff, 0xb7, 0xdd, 0x7d, 0xbf, 0xab, 0x7f, - 0xfd, 0xfd, 0xdf, 0x2f, 0x9c, 0xdf, 0xf3, 0x6f, - // Entry 380 - 3BF - 0xdf, 0xdd, 0xff, 0xfb, 0xee, 0xd2, 0xab, 0x5f, - 0xd5, 0xdf, 0x7f, 0xff, 0xeb, 0xff, 0xe4, 0x4d, - 0xf9, 0xff, 0xfe, 0xf7, 0xfd, 0xdf, 0xfb, 0xbf, - 0xee, 0xdb, 0x6f, 0xef, 0xff, 0x7f, 0xff, 0xff, - 0xf7, 0x5f, 0xd3, 0x3b, 0xfd, 0xd9, 0xdf, 0xeb, - 0xbc, 0x08, 0x05, 0x24, 0xff, 0x07, 0x70, 0xfe, - 0xe6, 0x5e, 0x00, 0x08, 0x00, 0x83, 0x3d, 0x1b, - 0x06, 0xe6, 0x72, 0x60, 0xd1, 0x3c, 0x7f, 0x44, - // Entry 3C0 - 3FF - 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57, - 0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7, - 0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00, - 0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xd9, 0x0e, 0x11, - 0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x00, 0x01, - 0x05, 0xd1, 0x50, 0x58, 0x00, 0x00, 0x00, 0x10, - 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2, - 0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe, - // Entry 400 - 43F - 0x53, 0x6f, 0xdf, 0xe7, 0xdb, 0x65, 0xbb, 0x7f, - 0xfa, 0xff, 0x77, 0xf3, 0xef, 0xbf, 0xfd, 0xf7, - 0xdf, 0xdf, 0x9b, 0x7f, 0xff, 0xff, 0x7f, 0x6f, - 0xf7, 0xfb, 0xeb, 0xdf, 0xbc, 0xff, 0xbf, 0x6b, - 0x7b, 0xfb, 0xff, 0xce, 0x76, 0xbd, 0xf7, 0xf7, - 0xdf, 0xdc, 0xf7, 0xf7, 0xff, 0xdf, 0xf3, 0xfe, - 0xef, 0xff, 0xff, 0xff, 0xb6, 0x7f, 0x7f, 0xde, - 0xf7, 0xb9, 0xeb, 0x77, 0xff, 0xfb, 0xbf, 0xdf, - // Entry 440 - 47F - 0xfd, 0xfe, 0xfb, 0xff, 0xfe, 0xeb, 0x1f, 0x7d, - 0x2f, 0xfd, 0xb6, 0xb5, 0xa5, 0xfc, 0xff, 0xfd, - 0x7f, 0x4e, 0xbf, 0x8f, 0xae, 0xff, 0xee, 0xdf, - 0x7f, 0xf7, 0x73, 0x02, 0x02, 0x04, 0xfc, 0xf7, - 0xff, 0xb7, 0xd7, 0xef, 0xfe, 0xcd, 0xf5, 0xce, - 0xe2, 0x8e, 0xe7, 0xbf, 0xb7, 0xff, 0x56, 0xbd, - 0xcd, 0xff, 0xfb, 0xff, 0xdf, 0xd7, 0xea, 0xff, - 0xe5, 0x5f, 0x6d, 0x0f, 0xa7, 0x51, 0x06, 0xc4, - // Entry 480 - 4BF - 0x13, 0x50, 0x5d, 0xaf, 0xa6, 0xfd, 0x99, 0xfb, - 0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20, - 0x14, 0x00, 0x55, 0x51, 0x82, 0x65, 0xf5, 0x41, - 0xe2, 0xff, 0xfc, 0xdf, 0x00, 0x05, 0xc5, 0x05, - 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04, - 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00, - 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1, - // Entry 4C0 - 4FF - 0xfd, 0x47, 0x49, 0x06, 0x95, 0x06, 0x57, 0xed, - 0xfb, 0x4c, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40, - 0x00, 0x11, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83, - 0xb8, 0x4f, 0x10, 0x8c, 0x89, 0x46, 0xde, 0xf7, - 0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00, - 0x01, 0x00, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x3d, - 0xba, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41, - // Entry 500 - 53F - 0x30, 0xff, 0x79, 0x72, 0x04, 0x00, 0x00, 0x49, - 0x2d, 0x14, 0x27, 0x57, 0xed, 0xf1, 0x3f, 0xe7, - 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xf8, - 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xe5, 0xf7, - 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7e, 0x10, - 0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9, - 0x5b, 0x05, 0x86, 0xed, 0xf5, 0x77, 0xbd, 0x3c, - 0x00, 0x00, 0x00, 0x42, 0x71, 0x42, 0x00, 0x40, - // Entry 540 - 57F - 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - // Entry 580 - 5BF - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d, - 0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0xce, 0xfb, 0xbf, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x30, 0x15, 0xa3, 0x10, 0x00, 0x00, 0x00, - 0x11, 0x04, 0x16, 0x00, 0x00, 0x02, 0x00, 0x81, - 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40, - // Entry 5C0 - 5FF - 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x3e, 0x02, - 0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02, - 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, - 0x31, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x20, - 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00, - 0x00, 0x1f, 0xdf, 0xd2, 0xb9, 0xff, 0xfd, 0x3f, - 0x1f, 0x98, 0xcf, 0x9c, 0xbf, 0xaf, 0x5f, 0xfe, - // Entry 600 - 63F - 0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xd9, - 0xb7, 0xf6, 0xfb, 0xb3, 0xc7, 0xff, 0x6f, 0xf1, - 0x73, 0xb1, 0x7f, 0x9f, 0x7f, 0xbd, 0xfc, 0xb7, - 0xee, 0x1c, 0xfa, 0xcb, 0xef, 0xdd, 0xf9, 0xbd, - 0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x1f, - 0xd4, 0x77, 0xf5, 0x7d, 0xfb, 0xff, 0xeb, 0xfe, - 0xbe, 0x5f, 0x46, 0x1b, 0xe9, 0x5f, 0x50, 0x18, - 0x02, 0xfa, 0xf7, 0x9d, 0x15, 0x97, 0x05, 0x0f, - // Entry 640 - 67F - 0x75, 0xc4, 0x7d, 0x81, 0x92, 0xf1, 0x57, 0x6c, - 0xff, 0xe4, 0xef, 0x6f, 0xff, 0xfc, 0xdd, 0xde, - 0xfc, 0xfd, 0x76, 0x5f, 0x7a, 0x1f, 0x00, 0x98, - 0x02, 0xfb, 0xa3, 0xef, 0xf3, 0xd6, 0xf2, 0xff, - 0xb9, 0xda, 0x7d, 0x50, 0x1e, 0x15, 0x7b, 0xb4, - 0xf5, 0x3e, 0xff, 0xff, 0xf1, 0xf7, 0xff, 0xe7, - 0x5f, 0xff, 0xff, 0x9e, 0xdb, 0xf6, 0xd7, 0xb9, - 0xef, 0x27, 0x80, 0xbb, 0xc5, 0xff, 0xff, 0xe3, - // Entry 680 - 6BF - 0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37, - 0xce, 0x7f, 0x04, 0x1d, 0x53, 0x7f, 0xf8, 0xda, - 0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x69, 0xa0, - 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08, - 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00, - 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06, - 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x04, 0x00, 0x10, 0xcc, 0x58, 0xd5, 0x0d, 0x0f, - // Entry 6C0 - 6FF - 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, - 0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x08, 0x41, - 0x04, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xab, - 0x6d, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00, - // Entry 700 - 73F - 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x80, 0x86, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01, - 0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79, - 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 740 - 77F - 0x00, 0x00, 0x00, 0xef, 0xd5, 0xfd, 0xcf, 0x7e, - 0xb0, 0x11, 0x00, 0x00, 0x00, 0x92, 0x01, 0x44, - 0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04, - 0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a, - 0x01, 0x00, 0x00, 0xb0, 0x80, 0x00, 0x55, 0x55, - 0x97, 0x7c, 0x9f, 0x31, 0xcc, 0x68, 0xd1, 0x03, - 0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60, - // Entry 780 - 7BF - 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0x8a, 0x01, - 0x00, 0x00, 0x20, 0x00, 0x24, 0x44, 0x00, 0x00, - 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0, - 0xf5, 0xff, 0xd5, 0x97, 0xbc, 0x70, 0xd6, 0x78, - 0x78, 0x15, 0x50, 0x01, 0xa4, 0x84, 0xa9, 0x41, - 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00, - 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02, - 0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed, - // Entry 7C0 - 7FF - 0xdd, 0xbf, 0x72, 0x19, 0xc7, 0x0c, 0xd5, 0x42, - 0x54, 0xdd, 0x77, 0x14, 0x00, 0x80, 0x40, 0x56, - 0xcc, 0x16, 0x9e, 0xea, 0x35, 0x7d, 0xef, 0xff, - 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d, - 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80, - 0x10, 0x20, 0x24, 0x00, 0xff, 0x2f, 0xd3, 0x60, - 0xfe, 0x01, 0x02, 0x88, 0x0a, 0x40, 0x16, 0x01, - 0x01, 0x15, 0x2b, 0x3c, 0x01, 0x00, 0x00, 0x10, - // Entry 800 - 83F - 0x90, 0x49, 0x41, 0x02, 0x02, 0x01, 0xe1, 0xbf, - 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa3, 0xd1, - 0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3, - 0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80, - 0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84, - 0x2e, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93, - 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10, - 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00, - // Entry 840 - 87F - 0xf0, 0xfb, 0xfd, 0x3f, 0x05, 0x00, 0x12, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28, - 0x84, 0x00, 0x21, 0xc0, 0x23, 0x24, 0x00, 0x00, - 0x00, 0xcb, 0xe4, 0x3a, 0x42, 0x88, 0x14, 0xf1, - 0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50, - 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40, - 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1, - // Entry 880 - 8BF - 0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, - 0x0a, 0x00, 0x80, 0x00, 0x00, -} - -// 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. -const altLangISO3 tag.Index = "---\x00cor\x00hbs\x01heb\x02kin\x03spa\x04yid\x05\xff\xff\xff\xff" - -// altLangIndex is used to convert indexes in altLangISO3 to langIDs. -// Size: 12 bytes, 6 elements -var altLangIndex = [6]uint16{ - 0x0281, 0x0407, 0x01fb, 0x03e5, 0x013e, 0x0208, -} - -// AliasMap maps langIDs to their suggested replacements. -// Size: 656 bytes, 164 elements -var AliasMap = [164]FromTo{ - 0: {From: 0x82, To: 0x88}, - 1: {From: 0x187, To: 0x1ae}, - 2: {From: 0x1f3, To: 0x1e1}, - 3: {From: 0x1fb, To: 0x1bc}, - 4: {From: 0x208, To: 0x512}, - 5: {From: 0x20f, To: 0x20e}, - 6: {From: 0x310, To: 0x3dc}, - 7: {From: 0x347, To: 0x36f}, - 8: {From: 0x407, To: 0x432}, - 9: {From: 0x47a, To: 0x153}, - 10: {From: 0x490, To: 0x451}, - 11: {From: 0x4a2, To: 0x21}, - 12: {From: 0x53e, To: 0x544}, - 13: {From: 0x58f, To: 0x12d}, - 14: {From: 0x630, To: 0x1eb1}, - 15: {From: 0x651, To: 0x431}, - 16: {From: 0x662, To: 0x431}, - 17: {From: 0x6ed, To: 0x3a}, - 18: {From: 0x6f8, To: 0x1d7}, - 19: {From: 0x73e, To: 0x21a1}, - 20: {From: 0x7b3, To: 0x56}, - 21: {From: 0x7b9, To: 0x299b}, - 22: {From: 0x7c5, To: 0x58}, - 23: {From: 0x7e6, To: 0x145}, - 24: {From: 0x80c, To: 0x5a}, - 25: {From: 0x815, To: 0x8d}, - 26: {From: 0x87e, To: 0x810}, - 27: {From: 0x8c3, To: 0xee3}, - 28: {From: 0x9ef, To: 0x331}, - 29: {From: 0xa36, To: 0x2c5}, - 30: {From: 0xa3d, To: 0xbf}, - 31: {From: 0xabe, To: 0x3322}, - 32: {From: 0xb38, To: 0x529}, - 33: {From: 0xb75, To: 0x265a}, - 34: {From: 0xb7e, To: 0xbc3}, - 35: {From: 0xb9b, To: 0x44e}, - 36: {From: 0xbbc, To: 0x4229}, - 37: {From: 0xbbf, To: 0x529}, - 38: {From: 0xbfe, To: 0x2da7}, - 39: {From: 0xc2e, To: 0x3181}, - 40: {From: 0xcb9, To: 0xf3}, - 41: {From: 0xd08, To: 0xfa}, - 42: {From: 0xdc8, To: 0x11a}, - 43: {From: 0xdd7, To: 0x32d}, - 44: {From: 0xdf8, To: 0xdfb}, - 45: {From: 0xdfe, To: 0x531}, - 46: {From: 0xedf, To: 0x205a}, - 47: {From: 0xeee, To: 0x2e9a}, - 48: {From: 0xf39, To: 0x367}, - 49: {From: 0x10d0, To: 0x140}, - 50: {From: 0x1104, To: 0x2d0}, - 51: {From: 0x11a0, To: 0x1ec}, - 52: {From: 0x1279, To: 0x21}, - 53: {From: 0x1424, To: 0x15e}, - 54: {From: 0x1470, To: 0x14e}, - 55: {From: 0x151f, To: 0xd9b}, - 56: {From: 0x1523, To: 0x390}, - 57: {From: 0x1532, To: 0x19f}, - 58: {From: 0x1580, To: 0x210}, - 59: {From: 0x1583, To: 0x10d}, - 60: {From: 0x15a3, To: 0x3caf}, - 61: {From: 0x166a, To: 0x19b}, - 62: {From: 0x16c8, To: 0x136}, - 63: {From: 0x1700, To: 0x29f8}, - 64: {From: 0x1718, To: 0x194}, - 65: {From: 0x1727, To: 0xf3f}, - 66: {From: 0x177a, To: 0x178}, - 67: {From: 0x1809, To: 0x17b6}, - 68: {From: 0x1816, To: 0x18f3}, - 69: {From: 0x188a, To: 0x436}, - 70: {From: 0x1979, To: 0x1d01}, - 71: {From: 0x1a74, To: 0x2bb0}, - 72: {From: 0x1a8a, To: 0x1f8}, - 73: {From: 0x1b5a, To: 0x1fa}, - 74: {From: 0x1b86, To: 0x1515}, - 75: {From: 0x1d64, To: 0x2c9b}, - 76: {From: 0x2038, To: 0x37b1}, - 77: {From: 0x203d, To: 0x20dd}, - 78: {From: 0x205a, To: 0x30b}, - 79: {From: 0x20e3, To: 0x274}, - 80: {From: 0x20ee, To: 0x263}, - 81: {From: 0x20f2, To: 0x22d}, - 82: {From: 0x20f9, To: 0x256}, - 83: {From: 0x210f, To: 0x21eb}, - 84: {From: 0x2135, To: 0x27d}, - 85: {From: 0x2160, To: 0x913}, - 86: {From: 0x2199, To: 0x121}, - 87: {From: 0x21ce, To: 0x1561}, - 88: {From: 0x21e6, To: 0x504}, - 89: {From: 0x21f4, To: 0x49f}, - 90: {From: 0x222d, To: 0x121}, - 91: {From: 0x2237, To: 0x121}, - 92: {From: 0x2262, To: 0x92a}, - 93: {From: 0x2316, To: 0x3226}, - 94: {From: 0x2382, To: 0x3365}, - 95: {From: 0x2472, To: 0x2c7}, - 96: {From: 0x24e4, To: 0x2ff}, - 97: {From: 0x24f0, To: 0x2fa}, - 98: {From: 0x24fa, To: 0x31f}, - 99: {From: 0x2550, To: 0xb5b}, - 100: {From: 0x25a9, To: 0xe2}, - 101: {From: 0x263e, To: 0x2d0}, - 102: {From: 0x26c9, To: 0x26b4}, - 103: {From: 0x26f9, To: 0x3c8}, - 104: {From: 0x2727, To: 0x3caf}, - 105: {From: 0x2765, To: 0x26b4}, - 106: {From: 0x2789, To: 0x4358}, - 107: {From: 0x28ef, To: 0x2837}, - 108: {From: 0x2914, To: 0x351}, - 109: {From: 0x2986, To: 0x2da7}, - 110: {From: 0x2b1a, To: 0x38d}, - 111: {From: 0x2bfc, To: 0x395}, - 112: {From: 0x2c3f, To: 0x3caf}, - 113: {From: 0x2cfc, To: 0x3be}, - 114: {From: 0x2d13, To: 0x597}, - 115: {From: 0x2d47, To: 0x148}, - 116: {From: 0x2d48, To: 0x148}, - 117: {From: 0x2dff, To: 0x2f1}, - 118: {From: 0x2e08, To: 0x19cc}, - 119: {From: 0x2e1a, To: 0x2d95}, - 120: {From: 0x2e21, To: 0x292}, - 121: {From: 0x2e54, To: 0x7d}, - 122: {From: 0x2e65, To: 0x2282}, - 123: {From: 0x2ea0, To: 0x2e9b}, - 124: {From: 0x2eef, To: 0x2ed7}, - 125: {From: 0x3193, To: 0x3c4}, - 126: {From: 0x3366, To: 0x338e}, - 127: {From: 0x342a, To: 0x3dc}, - 128: {From: 0x34ee, To: 0x18d0}, - 129: {From: 0x35c8, To: 0x2c9b}, - 130: {From: 0x35e6, To: 0x412}, - 131: {From: 0x3658, To: 0x246}, - 132: {From: 0x3676, To: 0x3f4}, - 133: {From: 0x36fd, To: 0x445}, - 134: {From: 0x37c0, To: 0x121}, - 135: {From: 0x3816, To: 0x38f2}, - 136: {From: 0x382b, To: 0x2c9b}, - 137: {From: 0x382f, To: 0xa9}, - 138: {From: 0x3832, To: 0x3228}, - 139: {From: 0x386c, To: 0x39a6}, - 140: {From: 0x3892, To: 0x3fc0}, - 141: {From: 0x38a5, To: 0x39d7}, - 142: {From: 0x38b4, To: 0x1fa4}, - 143: {From: 0x38b5, To: 0x2e9a}, - 144: {From: 0x395c, To: 0x47e}, - 145: {From: 0x3b4e, To: 0xd91}, - 146: {From: 0x3b78, To: 0x137}, - 147: {From: 0x3c99, To: 0x4bc}, - 148: {From: 0x3fbd, To: 0x100}, - 149: {From: 0x4208, To: 0xa91}, - 150: {From: 0x42be, To: 0x573}, - 151: {From: 0x42f9, To: 0x3f60}, - 152: {From: 0x4378, To: 0x25a}, - 153: {From: 0x43cb, To: 0x36cb}, - 154: {From: 0x43cd, To: 0x10f}, - 155: {From: 0x44af, To: 0x3322}, - 156: {From: 0x44e3, To: 0x512}, - 157: {From: 0x45ca, To: 0x2409}, - 158: {From: 0x45dd, To: 0x26dc}, - 159: {From: 0x4610, To: 0x48ae}, - 160: {From: 0x46ae, To: 0x46a0}, - 161: {From: 0x473e, To: 0x4745}, - 162: {From: 0x4916, To: 0x31f}, - 163: {From: 0x49a7, To: 0x523}, -} - -// Size: 164 bytes, 164 elements -var AliasTypes = [164]AliasType{ - // Entry 0 - 3F - 1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, - 1, 1, 2, 0, 1, 0, 1, 2, 1, 1, 0, 0, 2, 1, 1, 0, - 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, - 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0, 1, 2, 0, - // Entry 40 - 7F - 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, - 2, 2, 2, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, - 0, 1, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, - // Entry 80 - BF - 0, 0, 2, 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 1, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, - 0, 1, 1, 1, -} - -const ( - _Latn = 87 - _Hani = 54 - _Hans = 56 - _Hant = 57 - _Qaaa = 139 - _Qaai = 147 - _Qabx = 188 - _Zinh = 236 - _Zyyy = 241 - _Zzzz = 242 -) - -// 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. -const script tag.Index = "" + // Size: 976 bytes - "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" + - "BrahBraiBugiBuhdCakmCansCariChamCherCirtCoptCpmnCprtCyrlCyrsDevaDogrDsrt" + - "DuplEgydEgyhEgypElbaEthiGeokGeorGlagGongGonmGothGranGrekGujrGuruHanbHang" + - "HaniHanoHansHantHatrHebrHiraHluwHmngHmnpHrktHungIndsItalJamoJavaJpanJurc" + - "KaliKanaKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatfLatgLatnLekeLepc" + - "LimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedfMendMercMeroMlym" + - "ModiMongMoonMrooMteiMultMymrNarbNbatNewaNkdbNkgbNkooNshuOgamOlckOrkhOrya" + - "OsgeOsmaPalmPaucPermPhagPhliPhlpPhlvPhnxPiqdPlrdPrtiQaaaQaabQaacQaadQaae" + - "QaafQaagQaahQaaiQaajQaakQaalQaamQaanQaaoQaapQaaqQaarQaasQaatQaauQaavQaaw" + - "QaaxQaayQaazQabaQabbQabcQabdQabeQabfQabgQabhQabiQabjQabkQablQabmQabnQabo" + - "QabpQabqQabrQabsQabtQabuQabvQabwQabxRjngRoroRunrSamrSaraSarbSaurSgnwShaw" + - "ShrdShuiSiddSindSinhSoraSoyoSundSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTaml" + - "TangTavtTeluTengTfngTglgThaaThaiTibtTirhUgarVaiiVispWaraWchoWoleXpeoXsux" + - "YiiiZanbZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff\xff" - -// 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. -// Size: 1330 bytes, 1330 elements -var suppressScript = [1330]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 40 - 7F - 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, - // Entry 80 - BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry C0 - FF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 100 - 13F - 0x57, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x57, 0x00, - // Entry 140 - 17F - 0x57, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x00, 0x57, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x57, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 180 - 1BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x57, 0x32, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x21, 0x00, - // Entry 1C0 - 1FF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x57, 0x00, 0x57, 0x57, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x57, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, - // Entry 200 - 23F - 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 240 - 27F - 0x00, 0x00, 0x1f, 0x00, 0x00, 0x57, 0x00, 0x00, - 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4f, 0x00, 0x00, 0x50, 0x00, 0x21, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 280 - 2BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 2C0 - 2FF - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, - // Entry 300 - 33F - 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x57, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, - // Entry 340 - 37F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x57, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x57, 0x00, - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 380 - 3BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, - // Entry 3C0 - 3FF - 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1f, 0x00, 0x00, 0x57, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 400 - 43F - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, - // Entry 440 - 47F - 0x00, 0x00, 0x00, 0x00, 0x57, 0x57, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xda, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x29, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, - // Entry 480 - 4BF - 0x57, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 4C0 - 4FF - 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 500 - 53F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, - 0x00, 0x00, -} - -const ( - _001 = 1 - _419 = 31 - _BR = 65 - _CA = 73 - _ES = 110 - _GB = 123 - _MD = 188 - _PT = 238 - _UK = 306 - _US = 309 - _ZZ = 357 - _XA = 323 - _XC = 325 - _XK = 333 -) - -// 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.) -const isoRegionOffset = 32 - -// regionTypes defines the status of a region for various standards. -// Size: 358 bytes, 358 elements -var regionTypes = [358]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 40 - 7F - 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, - 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, - 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, - 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 80 - BF - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry C0 - FF - 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, - 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - // Entry 100 - 13F - 0x05, 0x05, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x02, 0x06, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 140 - 17F - 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x06, 0x06, - 0x04, 0x06, 0x06, 0x04, 0x06, 0x05, -} - -// 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. -const regionISO tag.Index = "" + // Size: 1308 bytes - "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" + - "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" + - "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" + - "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" + - "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03EZ FIINFJJIFKLKFMSMFORO" + - "FQ\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGR" + - "RCGS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSR" + - "IMMNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00" + - "\x09KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTU" + - "LUUXLVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQ" + - "MRRTMSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOOR" + - "NPPLNQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00" + - "\x12PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTT" + - "QU\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYC" + - "SDDNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYR" + - "SZWZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTV" + - "UVTWWNTZZAUAKRUGGAUK UMMIUN USSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVU" + - "UTWFLFWKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXO" + - "OOXPPPXQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAF" + - "ZMMBZRARZWWEZZZZ\xff\xff\xff\xff" - -// 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. -const altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN" - -// altRegionIDs holds a list of regionIDs the positions of which match those -// of the 3-letter ISO codes in altRegionISO3. -// Size: 22 bytes, 11 elements -var altRegionIDs = [11]uint16{ - 0x0057, 0x0070, 0x0088, 0x00a8, 0x00aa, 0x00ad, 0x00ea, 0x0105, - 0x0121, 0x015f, 0x00dc, -} - -// Size: 80 bytes, 20 elements -var regionOldMap = [20]FromTo{ - 0: {From: 0x44, To: 0xc4}, - 1: {From: 0x58, To: 0xa7}, - 2: {From: 0x5f, To: 0x60}, - 3: {From: 0x66, To: 0x3b}, - 4: {From: 0x79, To: 0x78}, - 5: {From: 0x93, To: 0x37}, - 6: {From: 0xa3, To: 0x133}, - 7: {From: 0xc1, To: 0x133}, - 8: {From: 0xd7, To: 0x13f}, - 9: {From: 0xdc, To: 0x2b}, - 10: {From: 0xef, To: 0x133}, - 11: {From: 0xf2, To: 0xe2}, - 12: {From: 0xfc, To: 0x70}, - 13: {From: 0x103, To: 0x164}, - 14: {From: 0x12a, To: 0x126}, - 15: {From: 0x132, To: 0x7b}, - 16: {From: 0x13a, To: 0x13e}, - 17: {From: 0x141, To: 0x133}, - 18: {From: 0x15d, To: 0x15e}, - 19: {From: 0x163, To: 0x4b}, -} - -// m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are -// codes indicating collections of regions. -// Size: 716 bytes, 358 elements -var m49 = [358]int16{ - // Entry 0 - 3F - 0, 1, 2, 3, 5, 9, 11, 13, - 14, 15, 17, 18, 19, 21, 29, 30, - 34, 35, 39, 53, 54, 57, 61, 142, - 143, 145, 150, 151, 154, 155, 202, 419, - 958, 0, 20, 784, 4, 28, 660, 8, - 51, 530, 24, 10, 32, 16, 40, 36, - 533, 248, 31, 70, 52, 50, 56, 854, - 100, 48, 108, 204, 652, 60, 96, 68, - // Entry 40 - 7F - 535, 76, 44, 64, 104, 74, 72, 112, - 84, 124, 166, 180, 140, 178, 756, 384, - 184, 152, 120, 156, 170, 0, 188, 891, - 296, 192, 132, 531, 162, 196, 203, 278, - 276, 0, 262, 208, 212, 214, 204, 12, - 0, 218, 233, 818, 732, 232, 724, 231, - 967, 0, 246, 242, 238, 583, 234, 0, - 250, 249, 266, 826, 308, 268, 254, 831, - // Entry 80 - BF - 288, 292, 304, 270, 324, 312, 226, 300, - 239, 320, 316, 624, 328, 344, 334, 340, - 191, 332, 348, 854, 0, 360, 372, 376, - 833, 356, 86, 368, 364, 352, 380, 832, - 388, 400, 392, 581, 404, 417, 116, 296, - 174, 659, 408, 410, 414, 136, 398, 418, - 422, 662, 438, 144, 430, 426, 440, 442, - 428, 434, 504, 492, 498, 499, 663, 450, - // Entry C0 - FF - 584, 581, 807, 466, 104, 496, 446, 580, - 474, 478, 500, 470, 480, 462, 454, 484, - 458, 508, 516, 540, 562, 574, 566, 548, - 558, 528, 578, 524, 10, 520, 536, 570, - 554, 512, 591, 0, 604, 258, 598, 608, - 586, 616, 666, 612, 630, 275, 620, 581, - 585, 600, 591, 634, 959, 960, 961, 962, - 963, 964, 965, 966, 967, 968, 969, 970, - // Entry 100 - 13F - 971, 972, 638, 716, 642, 688, 643, 646, - 682, 90, 690, 729, 752, 702, 654, 705, - 744, 703, 694, 674, 686, 706, 740, 728, - 678, 810, 222, 534, 760, 748, 0, 796, - 148, 260, 768, 764, 762, 772, 626, 795, - 788, 776, 626, 792, 780, 798, 158, 834, - 804, 800, 826, 581, 0, 840, 858, 860, - 336, 670, 704, 862, 92, 850, 704, 548, - // Entry 140 - 17F - 876, 581, 882, 973, 974, 975, 976, 977, - 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, - 994, 995, 996, 997, 998, 720, 887, 175, - 891, 710, 894, 180, 716, 999, -} - -// 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. -// Size: 18 bytes, 9 elements -var m49Index = [9]int16{ - 0, 59, 108, 143, 181, 220, 259, 291, - 333, -} - -// fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details. -// Size: 666 bytes, 333 elements -var fromM49 = [333]uint16{ - // Entry 0 - 3F - 0x0201, 0x0402, 0x0603, 0x0824, 0x0a04, 0x1027, 0x1205, 0x142b, - 0x1606, 0x1867, 0x1a07, 0x1c08, 0x1e09, 0x202d, 0x220a, 0x240b, - 0x260c, 0x2822, 0x2a0d, 0x302a, 0x3825, 0x3a0e, 0x3c0f, 0x3e32, - 0x402c, 0x4410, 0x4611, 0x482f, 0x4e12, 0x502e, 0x5842, 0x6039, - 0x6435, 0x6628, 0x6834, 0x6a13, 0x6c14, 0x7036, 0x7215, 0x783d, - 0x7a16, 0x8043, 0x883f, 0x8c33, 0x9046, 0x9445, 0x9841, 0xa848, - 0xac9a, 0xb509, 0xb93c, 0xc03e, 0xc838, 0xd0c4, 0xd83a, 0xe047, - 0xe8a6, 0xf052, 0xf849, 0x085a, 0x10ad, 0x184c, 0x1c17, 0x1e18, - // Entry 40 - 7F - 0x20b3, 0x2219, 0x2920, 0x2c1a, 0x2e1b, 0x3051, 0x341c, 0x361d, - 0x3853, 0x3d2e, 0x445c, 0x4c4a, 0x5454, 0x5ca8, 0x5f5f, 0x644d, - 0x684b, 0x7050, 0x7856, 0x7e90, 0x8059, 0x885d, 0x941e, 0x965e, - 0x983b, 0xa063, 0xa864, 0xac65, 0xb469, 0xbd1a, 0xc486, 0xcc6f, - 0xce6f, 0xd06d, 0xd26a, 0xd476, 0xdc74, 0xde88, 0xe473, 0xec72, - 0xf031, 0xf279, 0xf478, 0xfc7e, 0x04e5, 0x0921, 0x0c62, 0x147a, - 0x187d, 0x1c83, 0x26ed, 0x2860, 0x2c5f, 0x3060, 0x4080, 0x4881, - 0x50a7, 0x5887, 0x6082, 0x687c, 0x7085, 0x788a, 0x8089, 0x8884, - // Entry 80 - BF - 0x908c, 0x9891, 0x9c8e, 0xa138, 0xa88f, 0xb08d, 0xb892, 0xc09d, - 0xc899, 0xd095, 0xd89c, 0xe09b, 0xe896, 0xf097, 0xf89e, 0x004f, - 0x08a0, 0x10a2, 0x1cae, 0x20a1, 0x28a4, 0x30aa, 0x34ab, 0x3cac, - 0x42a5, 0x44af, 0x461f, 0x4cb0, 0x54b5, 0x58b8, 0x5cb4, 0x64b9, - 0x6cb2, 0x70b6, 0x74b7, 0x7cc6, 0x84bf, 0x8cce, 0x94d0, 0x9ccd, - 0xa4c3, 0xaccb, 0xb4c8, 0xbcc9, 0xc0cc, 0xc8cf, 0xd8bb, 0xe0c5, - 0xe4bc, 0xe6bd, 0xe8ca, 0xf0ba, 0xf8d1, 0x00e1, 0x08d2, 0x10dd, - 0x18db, 0x20d9, 0x2429, 0x265b, 0x2a30, 0x2d1b, 0x2e40, 0x30de, - // Entry C0 - FF - 0x38d3, 0x493f, 0x54e0, 0x5cd8, 0x64d4, 0x6cd6, 0x74df, 0x7cd5, - 0x84da, 0x88c7, 0x8b33, 0x8e75, 0x90c0, 0x92f0, 0x94e8, 0x9ee2, - 0xace6, 0xb0f1, 0xb8e4, 0xc0e7, 0xc8eb, 0xd0e9, 0xd8ee, 0xe08b, - 0xe526, 0xecec, 0xf4f3, 0xfd02, 0x0504, 0x0706, 0x0d07, 0x183c, - 0x1d0e, 0x26a9, 0x2826, 0x2cb1, 0x2ebe, 0x34ea, 0x3d39, 0x4513, - 0x4d18, 0x5508, 0x5d14, 0x6105, 0x650a, 0x6d12, 0x7d0d, 0x7f11, - 0x813e, 0x830f, 0x8515, 0x8d61, 0x9964, 0xa15d, 0xa86e, 0xb117, - 0xb30b, 0xb86c, 0xc10b, 0xc916, 0xd110, 0xd91d, 0xe10c, 0xe84e, - // Entry 100 - 13F - 0xf11c, 0xf524, 0xf923, 0x0122, 0x0925, 0x1129, 0x192c, 0x2023, - 0x2928, 0x312b, 0x3727, 0x391f, 0x3d2d, 0x4131, 0x4930, 0x4ec2, - 0x5519, 0x646b, 0x747b, 0x7e7f, 0x809f, 0x8298, 0x852f, 0x9135, - 0xa53d, 0xac37, 0xb536, 0xb937, 0xbd3b, 0xd940, 0xe542, 0xed5e, - 0xef5e, 0xf657, 0xfd62, 0x7c20, 0x7ef4, 0x80f5, 0x82f6, 0x84f7, - 0x86f8, 0x88f9, 0x8afa, 0x8cfb, 0x8e70, 0x90fd, 0x92fe, 0x94ff, - 0x9700, 0x9901, 0x9b43, 0x9d44, 0x9f45, 0xa146, 0xa347, 0xa548, - 0xa749, 0xa94a, 0xab4b, 0xad4c, 0xaf4d, 0xb14e, 0xb34f, 0xb550, - // Entry 140 - 17F - 0xb751, 0xb952, 0xbb53, 0xbd54, 0xbf55, 0xc156, 0xc357, 0xc558, - 0xc759, 0xc95a, 0xcb5b, 0xcd5c, 0xcf65, -} - -// Size: 1615 bytes -var variantIndex = map[string]uint8{ - "1606nict": 0x0, - "1694acad": 0x1, - "1901": 0x2, - "1959acad": 0x3, - "1994": 0x4d, - "1996": 0x4, - "abl1943": 0x5, - "akuapem": 0x6, - "alalc97": 0x4f, - "aluku": 0x7, - "ao1990": 0x8, - "arevela": 0x9, - "arevmda": 0xa, - "asante": 0xb, - "baku1926": 0xc, - "balanka": 0xd, - "barla": 0xe, - "basiceng": 0xf, - "bauddha": 0x10, - "biscayan": 0x11, - "biske": 0x48, - "bohoric": 0x12, - "boont": 0x13, - "colb1945": 0x14, - "cornu": 0x15, - "dajnko": 0x16, - "ekavsk": 0x17, - "emodeng": 0x18, - "fonipa": 0x50, - "fonnapa": 0x51, - "fonupa": 0x52, - "fonxsamp": 0x53, - "hepburn": 0x19, - "heploc": 0x4e, - "hognorsk": 0x1a, - "hsistemo": 0x1b, - "ijekavsk": 0x1c, - "itihasa": 0x1d, - "jauer": 0x1e, - "jyutping": 0x1f, - "kkcor": 0x20, - "kociewie": 0x21, - "kscor": 0x22, - "laukika": 0x23, - "lipaw": 0x49, - "luna1918": 0x24, - "metelko": 0x25, - "monoton": 0x26, - "ndyuka": 0x27, - "nedis": 0x28, - "newfound": 0x29, - "njiva": 0x4a, - "nulik": 0x2a, - "osojs": 0x4b, - "oxendict": 0x2b, - "pahawh2": 0x2c, - "pahawh3": 0x2d, - "pahawh4": 0x2e, - "pamaka": 0x2f, - "petr1708": 0x30, - "pinyin": 0x31, - "polyton": 0x32, - "puter": 0x33, - "rigik": 0x34, - "rozaj": 0x35, - "rumgr": 0x36, - "scotland": 0x37, - "scouse": 0x38, - "simple": 0x54, - "solba": 0x4c, - "sotav": 0x39, - "spanglis": 0x3a, - "surmiran": 0x3b, - "sursilv": 0x3c, - "sutsilv": 0x3d, - "tarask": 0x3e, - "uccor": 0x3f, - "ucrcor": 0x40, - "ulster": 0x41, - "unifon": 0x42, - "vaidika": 0x43, - "valencia": 0x44, - "vallader": 0x45, - "wadegile": 0x46, - "xsistemo": 0x47, -} - -// variantNumSpecialized is the number of specialized variants in variants. -const variantNumSpecialized = 79 - -// nRegionGroups is the number of region groups. -const nRegionGroups = 33 - -type likelyLangRegion struct { - lang uint16 - region uint16 -} - -// likelyScript is a lookup table, indexed by scriptID, for the most likely -// languages and regions given a script. -// Size: 976 bytes, 244 elements -var likelyScript = [244]likelyLangRegion{ - 1: {lang: 0x14e, region: 0x84}, - 3: {lang: 0x2a2, region: 0x106}, - 4: {lang: 0x1f, region: 0x99}, - 5: {lang: 0x3a, region: 0x6b}, - 7: {lang: 0x3b, region: 0x9c}, - 8: {lang: 0x1d7, region: 0x28}, - 9: {lang: 0x13, region: 0x9c}, - 10: {lang: 0x5b, region: 0x95}, - 11: {lang: 0x60, region: 0x52}, - 12: {lang: 0xb9, region: 0xb4}, - 13: {lang: 0x63, region: 0x95}, - 14: {lang: 0xa5, region: 0x35}, - 15: {lang: 0x3e9, region: 0x99}, - 17: {lang: 0x529, region: 0x12e}, - 18: {lang: 0x3b1, region: 0x99}, - 19: {lang: 0x15e, region: 0x78}, - 20: {lang: 0xc2, region: 0x95}, - 21: {lang: 0x9d, region: 0xe7}, - 22: {lang: 0xdb, region: 0x35}, - 23: {lang: 0xf3, region: 0x49}, - 24: {lang: 0x4f0, region: 0x12b}, - 25: {lang: 0xe7, region: 0x13e}, - 26: {lang: 0xe5, region: 0x135}, - 28: {lang: 0xf1, region: 0x6b}, - 30: {lang: 0x1a0, region: 0x5d}, - 31: {lang: 0x3e2, region: 0x106}, - 33: {lang: 0x1be, region: 0x99}, - 36: {lang: 0x15e, region: 0x78}, - 39: {lang: 0x133, region: 0x6b}, - 40: {lang: 0x431, region: 0x27}, - 41: {lang: 0x27, region: 0x6f}, - 43: {lang: 0x210, region: 0x7d}, - 44: {lang: 0xfe, region: 0x38}, - 46: {lang: 0x19b, region: 0x99}, - 47: {lang: 0x19e, region: 0x130}, - 48: {lang: 0x3e9, region: 0x99}, - 49: {lang: 0x136, region: 0x87}, - 50: {lang: 0x1a4, region: 0x99}, - 51: {lang: 0x39d, region: 0x99}, - 52: {lang: 0x529, region: 0x12e}, - 53: {lang: 0x254, region: 0xab}, - 54: {lang: 0x529, region: 0x53}, - 55: {lang: 0x1cb, region: 0xe7}, - 56: {lang: 0x529, region: 0x53}, - 57: {lang: 0x529, region: 0x12e}, - 58: {lang: 0x2fd, region: 0x9b}, - 59: {lang: 0x1bc, region: 0x97}, - 60: {lang: 0x200, region: 0xa2}, - 61: {lang: 0x1c5, region: 0x12b}, - 62: {lang: 0x1ca, region: 0xaf}, - 65: {lang: 0x1d5, region: 0x92}, - 67: {lang: 0x142, region: 0x9e}, - 68: {lang: 0x254, region: 0xab}, - 69: {lang: 0x20e, region: 0x95}, - 70: {lang: 0x200, region: 0xa2}, - 72: {lang: 0x135, region: 0xc4}, - 73: {lang: 0x200, region: 0xa2}, - 74: {lang: 0x3bb, region: 0xe8}, - 75: {lang: 0x24a, region: 0xa6}, - 76: {lang: 0x3fa, region: 0x99}, - 79: {lang: 0x251, region: 0x99}, - 80: {lang: 0x254, region: 0xab}, - 82: {lang: 0x88, region: 0x99}, - 83: {lang: 0x370, region: 0x123}, - 84: {lang: 0x2b8, region: 0xaf}, - 89: {lang: 0x29f, region: 0x99}, - 90: {lang: 0x2a8, region: 0x99}, - 91: {lang: 0x28f, region: 0x87}, - 92: {lang: 0x1a0, region: 0x87}, - 93: {lang: 0x2ac, region: 0x53}, - 95: {lang: 0x4f4, region: 0x12b}, - 96: {lang: 0x4f5, region: 0x12b}, - 97: {lang: 0x1be, region: 0x99}, - 99: {lang: 0x337, region: 0x9c}, - 100: {lang: 0x4f7, region: 0x53}, - 101: {lang: 0xa9, region: 0x53}, - 104: {lang: 0x2e8, region: 0x112}, - 105: {lang: 0x4f8, region: 0x10b}, - 106: {lang: 0x4f8, region: 0x10b}, - 107: {lang: 0x304, region: 0x99}, - 108: {lang: 0x31b, region: 0x99}, - 109: {lang: 0x30b, region: 0x53}, - 111: {lang: 0x31e, region: 0x35}, - 112: {lang: 0x30e, region: 0x99}, - 113: {lang: 0x414, region: 0xe8}, - 114: {lang: 0x331, region: 0xc4}, - 115: {lang: 0x4f9, region: 0x108}, - 116: {lang: 0x3b, region: 0xa1}, - 117: {lang: 0x353, region: 0xdb}, - 120: {lang: 0x2d0, region: 0x84}, - 121: {lang: 0x52a, region: 0x53}, - 122: {lang: 0x403, region: 0x96}, - 123: {lang: 0x3ee, region: 0x99}, - 124: {lang: 0x39b, region: 0xc5}, - 125: {lang: 0x395, region: 0x99}, - 126: {lang: 0x399, region: 0x135}, - 127: {lang: 0x429, region: 0x115}, - 128: {lang: 0x3b, region: 0x11c}, - 129: {lang: 0xfd, region: 0xc4}, - 130: {lang: 0x27d, region: 0x106}, - 131: {lang: 0x2c9, region: 0x53}, - 132: {lang: 0x39f, region: 0x9c}, - 133: {lang: 0x39f, region: 0x53}, - 135: {lang: 0x3ad, region: 0xb0}, - 137: {lang: 0x1c6, region: 0x53}, - 138: {lang: 0x4fd, region: 0x9c}, - 189: {lang: 0x3cb, region: 0x95}, - 191: {lang: 0x372, region: 0x10c}, - 192: {lang: 0x420, region: 0x97}, - 194: {lang: 0x4ff, region: 0x15e}, - 195: {lang: 0x3f0, region: 0x99}, - 196: {lang: 0x45, region: 0x135}, - 197: {lang: 0x139, region: 0x7b}, - 198: {lang: 0x3e9, region: 0x99}, - 200: {lang: 0x3e9, region: 0x99}, - 201: {lang: 0x3fa, region: 0x99}, - 202: {lang: 0x40c, region: 0xb3}, - 203: {lang: 0x433, region: 0x99}, - 204: {lang: 0xef, region: 0xc5}, - 205: {lang: 0x43e, region: 0x95}, - 206: {lang: 0x44d, region: 0x35}, - 207: {lang: 0x44e, region: 0x9b}, - 211: {lang: 0x45a, region: 0xe7}, - 212: {lang: 0x11a, region: 0x99}, - 213: {lang: 0x45e, region: 0x53}, - 214: {lang: 0x232, region: 0x53}, - 215: {lang: 0x450, region: 0x99}, - 216: {lang: 0x4a5, region: 0x53}, - 217: {lang: 0x9f, region: 0x13e}, - 218: {lang: 0x461, region: 0x99}, - 220: {lang: 0x528, region: 0xba}, - 221: {lang: 0x153, region: 0xe7}, - 222: {lang: 0x128, region: 0xcd}, - 223: {lang: 0x46b, region: 0x123}, - 224: {lang: 0xa9, region: 0x53}, - 225: {lang: 0x2ce, region: 0x99}, - 226: {lang: 0x4ad, region: 0x11c}, - 227: {lang: 0x4be, region: 0xb4}, - 229: {lang: 0x1ce, region: 0x99}, - 232: {lang: 0x3a9, region: 0x9c}, - 233: {lang: 0x22, region: 0x9b}, - 234: {lang: 0x1ea, region: 0x53}, - 235: {lang: 0xef, region: 0xc5}, -} - -type likelyScriptRegion struct { - region uint16 - script uint8 - flags uint8 -} - -// 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. -// Size: 5320 bytes, 1330 elements -var likelyLang = [1330]likelyScriptRegion{ - 0: {region: 0x135, script: 0x57, flags: 0x0}, - 1: {region: 0x6f, script: 0x57, flags: 0x0}, - 2: {region: 0x165, script: 0x57, flags: 0x0}, - 3: {region: 0x165, script: 0x57, flags: 0x0}, - 4: {region: 0x165, script: 0x57, flags: 0x0}, - 5: {region: 0x7d, script: 0x1f, flags: 0x0}, - 6: {region: 0x165, script: 0x57, flags: 0x0}, - 7: {region: 0x165, script: 0x1f, flags: 0x0}, - 8: {region: 0x80, script: 0x57, flags: 0x0}, - 9: {region: 0x165, script: 0x57, flags: 0x0}, - 10: {region: 0x165, script: 0x57, flags: 0x0}, - 11: {region: 0x165, script: 0x57, flags: 0x0}, - 12: {region: 0x95, script: 0x57, flags: 0x0}, - 13: {region: 0x131, script: 0x57, flags: 0x0}, - 14: {region: 0x80, script: 0x57, flags: 0x0}, - 15: {region: 0x165, script: 0x57, flags: 0x0}, - 16: {region: 0x165, script: 0x57, flags: 0x0}, - 17: {region: 0x106, script: 0x1f, flags: 0x0}, - 18: {region: 0x165, script: 0x57, flags: 0x0}, - 19: {region: 0x9c, script: 0x9, flags: 0x0}, - 20: {region: 0x128, script: 0x5, flags: 0x0}, - 21: {region: 0x165, script: 0x57, flags: 0x0}, - 22: {region: 0x161, script: 0x57, flags: 0x0}, - 23: {region: 0x165, script: 0x57, flags: 0x0}, - 24: {region: 0x165, script: 0x57, flags: 0x0}, - 25: {region: 0x165, script: 0x57, flags: 0x0}, - 26: {region: 0x165, script: 0x57, flags: 0x0}, - 27: {region: 0x165, script: 0x57, flags: 0x0}, - 28: {region: 0x52, script: 0x57, flags: 0x0}, - 29: {region: 0x165, script: 0x57, flags: 0x0}, - 30: {region: 0x165, script: 0x57, flags: 0x0}, - 31: {region: 0x99, script: 0x4, flags: 0x0}, - 32: {region: 0x165, script: 0x57, flags: 0x0}, - 33: {region: 0x80, script: 0x57, flags: 0x0}, - 34: {region: 0x9b, script: 0xe9, flags: 0x0}, - 35: {region: 0x165, script: 0x57, flags: 0x0}, - 36: {region: 0x165, script: 0x57, flags: 0x0}, - 37: {region: 0x14d, script: 0x57, flags: 0x0}, - 38: {region: 0x106, script: 0x1f, flags: 0x0}, - 39: {region: 0x6f, script: 0x29, flags: 0x0}, - 40: {region: 0x165, script: 0x57, flags: 0x0}, - 41: {region: 0x165, script: 0x57, flags: 0x0}, - 42: {region: 0xd6, script: 0x57, flags: 0x0}, - 43: {region: 0x165, script: 0x57, flags: 0x0}, - 45: {region: 0x165, script: 0x57, flags: 0x0}, - 46: {region: 0x165, script: 0x57, flags: 0x0}, - 47: {region: 0x165, script: 0x57, flags: 0x0}, - 48: {region: 0x165, script: 0x57, flags: 0x0}, - 49: {region: 0x165, script: 0x57, flags: 0x0}, - 50: {region: 0x165, script: 0x57, flags: 0x0}, - 51: {region: 0x95, script: 0x57, flags: 0x0}, - 52: {region: 0x165, script: 0x5, flags: 0x0}, - 53: {region: 0x122, script: 0x5, flags: 0x0}, - 54: {region: 0x165, script: 0x57, flags: 0x0}, - 55: {region: 0x165, script: 0x57, flags: 0x0}, - 56: {region: 0x165, script: 0x57, flags: 0x0}, - 57: {region: 0x165, script: 0x57, flags: 0x0}, - 58: {region: 0x6b, script: 0x5, flags: 0x0}, - 59: {region: 0x0, script: 0x3, flags: 0x1}, - 60: {region: 0x165, script: 0x57, flags: 0x0}, - 61: {region: 0x51, script: 0x57, flags: 0x0}, - 62: {region: 0x3f, script: 0x57, flags: 0x0}, - 63: {region: 0x67, script: 0x5, flags: 0x0}, - 65: {region: 0xba, script: 0x5, flags: 0x0}, - 66: {region: 0x6b, script: 0x5, flags: 0x0}, - 67: {region: 0x99, script: 0xe, flags: 0x0}, - 68: {region: 0x12f, script: 0x57, flags: 0x0}, - 69: {region: 0x135, script: 0xc4, flags: 0x0}, - 70: {region: 0x165, script: 0x57, flags: 0x0}, - 71: {region: 0x165, script: 0x57, flags: 0x0}, - 72: {region: 0x6e, script: 0x57, flags: 0x0}, - 73: {region: 0x165, script: 0x57, flags: 0x0}, - 74: {region: 0x165, script: 0x57, flags: 0x0}, - 75: {region: 0x49, script: 0x57, flags: 0x0}, - 76: {region: 0x165, script: 0x57, flags: 0x0}, - 77: {region: 0x106, script: 0x1f, flags: 0x0}, - 78: {region: 0x165, script: 0x5, flags: 0x0}, - 79: {region: 0x165, script: 0x57, flags: 0x0}, - 80: {region: 0x165, script: 0x57, flags: 0x0}, - 81: {region: 0x165, script: 0x57, flags: 0x0}, - 82: {region: 0x99, script: 0x21, flags: 0x0}, - 83: {region: 0x165, script: 0x57, flags: 0x0}, - 84: {region: 0x165, script: 0x57, flags: 0x0}, - 85: {region: 0x165, script: 0x57, flags: 0x0}, - 86: {region: 0x3f, script: 0x57, flags: 0x0}, - 87: {region: 0x165, script: 0x57, flags: 0x0}, - 88: {region: 0x3, script: 0x5, flags: 0x1}, - 89: {region: 0x106, script: 0x1f, flags: 0x0}, - 90: {region: 0xe8, script: 0x5, flags: 0x0}, - 91: {region: 0x95, script: 0x57, flags: 0x0}, - 92: {region: 0xdb, script: 0x21, flags: 0x0}, - 93: {region: 0x2e, script: 0x57, flags: 0x0}, - 94: {region: 0x52, script: 0x57, flags: 0x0}, - 95: {region: 0x165, script: 0x57, flags: 0x0}, - 96: {region: 0x52, script: 0xb, flags: 0x0}, - 97: {region: 0x165, script: 0x57, flags: 0x0}, - 98: {region: 0x165, script: 0x57, flags: 0x0}, - 99: {region: 0x95, script: 0x57, flags: 0x0}, - 100: {region: 0x165, script: 0x57, flags: 0x0}, - 101: {region: 0x52, script: 0x57, flags: 0x0}, - 102: {region: 0x165, script: 0x57, flags: 0x0}, - 103: {region: 0x165, script: 0x57, flags: 0x0}, - 104: {region: 0x165, script: 0x57, flags: 0x0}, - 105: {region: 0x165, script: 0x57, flags: 0x0}, - 106: {region: 0x4f, script: 0x57, flags: 0x0}, - 107: {region: 0x165, script: 0x57, flags: 0x0}, - 108: {region: 0x165, script: 0x57, flags: 0x0}, - 109: {region: 0x165, script: 0x57, flags: 0x0}, - 110: {region: 0x165, script: 0x29, flags: 0x0}, - 111: {region: 0x165, script: 0x57, flags: 0x0}, - 112: {region: 0x165, script: 0x57, flags: 0x0}, - 113: {region: 0x47, script: 0x1f, flags: 0x0}, - 114: {region: 0x165, script: 0x57, flags: 0x0}, - 115: {region: 0x165, script: 0x57, flags: 0x0}, - 116: {region: 0x10b, script: 0x5, flags: 0x0}, - 117: {region: 0x162, script: 0x57, flags: 0x0}, - 118: {region: 0x165, script: 0x57, flags: 0x0}, - 119: {region: 0x95, script: 0x57, flags: 0x0}, - 120: {region: 0x165, script: 0x57, flags: 0x0}, - 121: {region: 0x12f, script: 0x57, flags: 0x0}, - 122: {region: 0x52, script: 0x57, flags: 0x0}, - 123: {region: 0x99, script: 0xd7, flags: 0x0}, - 124: {region: 0xe8, script: 0x5, flags: 0x0}, - 125: {region: 0x99, script: 0x21, flags: 0x0}, - 126: {region: 0x38, script: 0x1f, flags: 0x0}, - 127: {region: 0x99, script: 0x21, flags: 0x0}, - 128: {region: 0xe8, script: 0x5, flags: 0x0}, - 129: {region: 0x12b, script: 0x31, flags: 0x0}, - 131: {region: 0x99, script: 0x21, flags: 0x0}, - 132: {region: 0x165, script: 0x57, flags: 0x0}, - 133: {region: 0x99, script: 0x21, flags: 0x0}, - 134: {region: 0xe7, script: 0x57, flags: 0x0}, - 135: {region: 0x165, script: 0x57, flags: 0x0}, - 136: {region: 0x99, script: 0x21, flags: 0x0}, - 137: {region: 0x165, script: 0x57, flags: 0x0}, - 138: {region: 0x13f, script: 0x57, flags: 0x0}, - 139: {region: 0x165, script: 0x57, flags: 0x0}, - 140: {region: 0x165, script: 0x57, flags: 0x0}, - 141: {region: 0xe7, script: 0x57, flags: 0x0}, - 142: {region: 0x165, script: 0x57, flags: 0x0}, - 143: {region: 0xd6, script: 0x57, flags: 0x0}, - 144: {region: 0x165, script: 0x57, flags: 0x0}, - 145: {region: 0x165, script: 0x57, flags: 0x0}, - 146: {region: 0x165, script: 0x57, flags: 0x0}, - 147: {region: 0x165, script: 0x29, flags: 0x0}, - 148: {region: 0x99, script: 0x21, flags: 0x0}, - 149: {region: 0x95, script: 0x57, flags: 0x0}, - 150: {region: 0x165, script: 0x57, flags: 0x0}, - 151: {region: 0x165, script: 0x57, flags: 0x0}, - 152: {region: 0x114, script: 0x57, flags: 0x0}, - 153: {region: 0x165, script: 0x57, flags: 0x0}, - 154: {region: 0x165, script: 0x57, flags: 0x0}, - 155: {region: 0x52, script: 0x57, flags: 0x0}, - 156: {region: 0x165, script: 0x57, flags: 0x0}, - 157: {region: 0xe7, script: 0x57, flags: 0x0}, - 158: {region: 0x165, script: 0x57, flags: 0x0}, - 159: {region: 0x13e, script: 0xd9, flags: 0x0}, - 160: {region: 0xc3, script: 0x57, flags: 0x0}, - 161: {region: 0x165, script: 0x57, flags: 0x0}, - 162: {region: 0x165, script: 0x57, flags: 0x0}, - 163: {region: 0xc3, script: 0x57, flags: 0x0}, - 164: {region: 0x165, script: 0x57, flags: 0x0}, - 165: {region: 0x35, script: 0xe, flags: 0x0}, - 166: {region: 0x165, script: 0x57, flags: 0x0}, - 167: {region: 0x165, script: 0x57, flags: 0x0}, - 168: {region: 0x165, script: 0x57, flags: 0x0}, - 169: {region: 0x53, script: 0xe0, flags: 0x0}, - 170: {region: 0x165, script: 0x57, flags: 0x0}, - 171: {region: 0x165, script: 0x57, flags: 0x0}, - 172: {region: 0x165, script: 0x57, flags: 0x0}, - 173: {region: 0x99, script: 0xe, flags: 0x0}, - 174: {region: 0x165, script: 0x57, flags: 0x0}, - 175: {region: 0x9c, script: 0x5, flags: 0x0}, - 176: {region: 0x165, script: 0x57, flags: 0x0}, - 177: {region: 0x4f, script: 0x57, flags: 0x0}, - 178: {region: 0x78, script: 0x57, flags: 0x0}, - 179: {region: 0x99, script: 0x21, flags: 0x0}, - 180: {region: 0xe8, script: 0x5, flags: 0x0}, - 181: {region: 0x99, script: 0x21, flags: 0x0}, - 182: {region: 0x165, script: 0x57, flags: 0x0}, - 183: {region: 0x33, script: 0x57, flags: 0x0}, - 184: {region: 0x165, script: 0x57, flags: 0x0}, - 185: {region: 0xb4, script: 0xc, flags: 0x0}, - 186: {region: 0x52, script: 0x57, flags: 0x0}, - 187: {region: 0x165, script: 0x29, flags: 0x0}, - 188: {region: 0xe7, script: 0x57, flags: 0x0}, - 189: {region: 0x165, script: 0x57, flags: 0x0}, - 190: {region: 0xe8, script: 0x21, flags: 0x0}, - 191: {region: 0x106, script: 0x1f, flags: 0x0}, - 192: {region: 0x15f, script: 0x57, flags: 0x0}, - 193: {region: 0x165, script: 0x57, flags: 0x0}, - 194: {region: 0x95, script: 0x57, flags: 0x0}, - 195: {region: 0x165, script: 0x57, flags: 0x0}, - 196: {region: 0x52, script: 0x57, flags: 0x0}, - 197: {region: 0x165, script: 0x57, flags: 0x0}, - 198: {region: 0x165, script: 0x57, flags: 0x0}, - 199: {region: 0x165, script: 0x57, flags: 0x0}, - 200: {region: 0x86, script: 0x57, flags: 0x0}, - 201: {region: 0x165, script: 0x57, flags: 0x0}, - 202: {region: 0x165, script: 0x57, flags: 0x0}, - 203: {region: 0x165, script: 0x57, flags: 0x0}, - 204: {region: 0x165, script: 0x57, flags: 0x0}, - 205: {region: 0x6d, script: 0x29, flags: 0x0}, - 206: {region: 0x165, script: 0x57, flags: 0x0}, - 207: {region: 0x165, script: 0x57, flags: 0x0}, - 208: {region: 0x52, script: 0x57, flags: 0x0}, - 209: {region: 0x165, script: 0x57, flags: 0x0}, - 210: {region: 0x165, script: 0x57, flags: 0x0}, - 211: {region: 0xc3, script: 0x57, flags: 0x0}, - 212: {region: 0x165, script: 0x57, flags: 0x0}, - 213: {region: 0x165, script: 0x57, flags: 0x0}, - 214: {region: 0x165, script: 0x57, flags: 0x0}, - 215: {region: 0x6e, script: 0x57, flags: 0x0}, - 216: {region: 0x165, script: 0x57, flags: 0x0}, - 217: {region: 0x165, script: 0x57, flags: 0x0}, - 218: {region: 0xd6, script: 0x57, flags: 0x0}, - 219: {region: 0x35, script: 0x16, flags: 0x0}, - 220: {region: 0x106, script: 0x1f, flags: 0x0}, - 221: {region: 0xe7, script: 0x57, flags: 0x0}, - 222: {region: 0x165, script: 0x57, flags: 0x0}, - 223: {region: 0x131, script: 0x57, flags: 0x0}, - 224: {region: 0x8a, script: 0x57, flags: 0x0}, - 225: {region: 0x75, script: 0x57, flags: 0x0}, - 226: {region: 0x106, script: 0x1f, flags: 0x0}, - 227: {region: 0x135, script: 0x57, flags: 0x0}, - 228: {region: 0x49, script: 0x57, flags: 0x0}, - 229: {region: 0x135, script: 0x1a, flags: 0x0}, - 230: {region: 0xa6, script: 0x5, flags: 0x0}, - 231: {region: 0x13e, script: 0x19, flags: 0x0}, - 232: {region: 0x165, script: 0x57, flags: 0x0}, - 233: {region: 0x9b, script: 0x5, flags: 0x0}, - 234: {region: 0x165, script: 0x57, flags: 0x0}, - 235: {region: 0x165, script: 0x57, flags: 0x0}, - 236: {region: 0x165, script: 0x57, flags: 0x0}, - 237: {region: 0x165, script: 0x57, flags: 0x0}, - 238: {region: 0x165, script: 0x57, flags: 0x0}, - 239: {region: 0xc5, script: 0xcc, flags: 0x0}, - 240: {region: 0x78, script: 0x57, flags: 0x0}, - 241: {region: 0x6b, script: 0x1c, flags: 0x0}, - 242: {region: 0xe7, script: 0x57, flags: 0x0}, - 243: {region: 0x49, script: 0x17, flags: 0x0}, - 244: {region: 0x130, script: 0x1f, flags: 0x0}, - 245: {region: 0x49, script: 0x17, flags: 0x0}, - 246: {region: 0x49, script: 0x17, flags: 0x0}, - 247: {region: 0x49, script: 0x17, flags: 0x0}, - 248: {region: 0x49, script: 0x17, flags: 0x0}, - 249: {region: 0x10a, script: 0x57, flags: 0x0}, - 250: {region: 0x5e, script: 0x57, flags: 0x0}, - 251: {region: 0xe9, script: 0x57, flags: 0x0}, - 252: {region: 0x49, script: 0x17, flags: 0x0}, - 253: {region: 0xc4, script: 0x81, flags: 0x0}, - 254: {region: 0x8, script: 0x2, flags: 0x1}, - 255: {region: 0x106, script: 0x1f, flags: 0x0}, - 256: {region: 0x7b, script: 0x57, flags: 0x0}, - 257: {region: 0x63, script: 0x57, flags: 0x0}, - 258: {region: 0x165, script: 0x57, flags: 0x0}, - 259: {region: 0x165, script: 0x57, flags: 0x0}, - 260: {region: 0x165, script: 0x57, flags: 0x0}, - 261: {region: 0x165, script: 0x57, flags: 0x0}, - 262: {region: 0x135, script: 0x57, flags: 0x0}, - 263: {region: 0x106, script: 0x1f, flags: 0x0}, - 264: {region: 0xa4, script: 0x57, flags: 0x0}, - 265: {region: 0x165, script: 0x57, flags: 0x0}, - 266: {region: 0x165, script: 0x57, flags: 0x0}, - 267: {region: 0x99, script: 0x5, flags: 0x0}, - 268: {region: 0x165, script: 0x57, flags: 0x0}, - 269: {region: 0x60, script: 0x57, flags: 0x0}, - 270: {region: 0x165, script: 0x57, flags: 0x0}, - 271: {region: 0x49, script: 0x57, flags: 0x0}, - 272: {region: 0x165, script: 0x57, flags: 0x0}, - 273: {region: 0x165, script: 0x57, flags: 0x0}, - 274: {region: 0x165, script: 0x57, flags: 0x0}, - 275: {region: 0x165, script: 0x5, flags: 0x0}, - 276: {region: 0x49, script: 0x57, flags: 0x0}, - 277: {region: 0x165, script: 0x57, flags: 0x0}, - 278: {region: 0x165, script: 0x57, flags: 0x0}, - 279: {region: 0xd4, script: 0x57, flags: 0x0}, - 280: {region: 0x4f, script: 0x57, flags: 0x0}, - 281: {region: 0x165, script: 0x57, flags: 0x0}, - 282: {region: 0x99, script: 0x5, flags: 0x0}, - 283: {region: 0x165, script: 0x57, flags: 0x0}, - 284: {region: 0x165, script: 0x57, flags: 0x0}, - 285: {region: 0x165, script: 0x57, flags: 0x0}, - 286: {region: 0x165, script: 0x29, flags: 0x0}, - 287: {region: 0x60, script: 0x57, flags: 0x0}, - 288: {region: 0xc3, script: 0x57, flags: 0x0}, - 289: {region: 0xd0, script: 0x57, flags: 0x0}, - 290: {region: 0x165, script: 0x57, flags: 0x0}, - 291: {region: 0xdb, script: 0x21, flags: 0x0}, - 292: {region: 0x52, script: 0x57, flags: 0x0}, - 293: {region: 0x165, script: 0x57, flags: 0x0}, - 294: {region: 0x165, script: 0x57, flags: 0x0}, - 295: {region: 0x165, script: 0x57, flags: 0x0}, - 296: {region: 0xcd, script: 0xde, flags: 0x0}, - 297: {region: 0x165, script: 0x57, flags: 0x0}, - 298: {region: 0x165, script: 0x57, flags: 0x0}, - 299: {region: 0x114, script: 0x57, flags: 0x0}, - 300: {region: 0x37, script: 0x57, flags: 0x0}, - 301: {region: 0x43, script: 0xe0, flags: 0x0}, - 302: {region: 0x165, script: 0x57, flags: 0x0}, - 303: {region: 0xa4, script: 0x57, flags: 0x0}, - 304: {region: 0x80, script: 0x57, flags: 0x0}, - 305: {region: 0xd6, script: 0x57, flags: 0x0}, - 306: {region: 0x9e, script: 0x57, flags: 0x0}, - 307: {region: 0x6b, script: 0x27, flags: 0x0}, - 308: {region: 0x165, script: 0x57, flags: 0x0}, - 309: {region: 0xc4, script: 0x48, flags: 0x0}, - 310: {region: 0x87, script: 0x31, flags: 0x0}, - 311: {region: 0x165, script: 0x57, flags: 0x0}, - 312: {region: 0x165, script: 0x57, flags: 0x0}, - 313: {region: 0xa, script: 0x2, flags: 0x1}, - 314: {region: 0x165, script: 0x57, flags: 0x0}, - 315: {region: 0x165, script: 0x57, flags: 0x0}, - 316: {region: 0x1, script: 0x57, flags: 0x0}, - 317: {region: 0x165, script: 0x57, flags: 0x0}, - 318: {region: 0x6e, script: 0x57, flags: 0x0}, - 319: {region: 0x135, script: 0x57, flags: 0x0}, - 320: {region: 0x6a, script: 0x57, flags: 0x0}, - 321: {region: 0x165, script: 0x57, flags: 0x0}, - 322: {region: 0x9e, script: 0x43, flags: 0x0}, - 323: {region: 0x165, script: 0x57, flags: 0x0}, - 324: {region: 0x165, script: 0x57, flags: 0x0}, - 325: {region: 0x6e, script: 0x57, flags: 0x0}, - 326: {region: 0x52, script: 0x57, flags: 0x0}, - 327: {region: 0x6e, script: 0x57, flags: 0x0}, - 328: {region: 0x9c, script: 0x5, flags: 0x0}, - 329: {region: 0x165, script: 0x57, flags: 0x0}, - 330: {region: 0x165, script: 0x57, flags: 0x0}, - 331: {region: 0x165, script: 0x57, flags: 0x0}, - 332: {region: 0x165, script: 0x57, flags: 0x0}, - 333: {region: 0x86, script: 0x57, flags: 0x0}, - 334: {region: 0xc, script: 0x2, flags: 0x1}, - 335: {region: 0x165, script: 0x57, flags: 0x0}, - 336: {region: 0xc3, script: 0x57, flags: 0x0}, - 337: {region: 0x72, script: 0x57, flags: 0x0}, - 338: {region: 0x10b, script: 0x5, flags: 0x0}, - 339: {region: 0xe7, script: 0x57, flags: 0x0}, - 340: {region: 0x10c, script: 0x57, flags: 0x0}, - 341: {region: 0x73, script: 0x57, flags: 0x0}, - 342: {region: 0x165, script: 0x57, flags: 0x0}, - 343: {region: 0x165, script: 0x57, flags: 0x0}, - 344: {region: 0x76, script: 0x57, flags: 0x0}, - 345: {region: 0x165, script: 0x57, flags: 0x0}, - 346: {region: 0x3b, script: 0x57, flags: 0x0}, - 347: {region: 0x165, script: 0x57, flags: 0x0}, - 348: {region: 0x165, script: 0x57, flags: 0x0}, - 349: {region: 0x165, script: 0x57, flags: 0x0}, - 350: {region: 0x78, script: 0x57, flags: 0x0}, - 351: {region: 0x135, script: 0x57, flags: 0x0}, - 352: {region: 0x78, script: 0x57, flags: 0x0}, - 353: {region: 0x60, script: 0x57, flags: 0x0}, - 354: {region: 0x60, script: 0x57, flags: 0x0}, - 355: {region: 0x52, script: 0x5, flags: 0x0}, - 356: {region: 0x140, script: 0x57, flags: 0x0}, - 357: {region: 0x165, script: 0x57, flags: 0x0}, - 358: {region: 0x84, script: 0x57, flags: 0x0}, - 359: {region: 0x165, script: 0x57, flags: 0x0}, - 360: {region: 0xd4, script: 0x57, flags: 0x0}, - 361: {region: 0x9e, script: 0x57, flags: 0x0}, - 362: {region: 0xd6, script: 0x57, flags: 0x0}, - 363: {region: 0x165, script: 0x57, flags: 0x0}, - 364: {region: 0x10b, script: 0x57, flags: 0x0}, - 365: {region: 0xd9, script: 0x57, flags: 0x0}, - 366: {region: 0x96, script: 0x57, flags: 0x0}, - 367: {region: 0x80, script: 0x57, flags: 0x0}, - 368: {region: 0x165, script: 0x57, flags: 0x0}, - 369: {region: 0xbc, script: 0x57, flags: 0x0}, - 370: {region: 0x165, script: 0x57, flags: 0x0}, - 371: {region: 0x165, script: 0x57, flags: 0x0}, - 372: {region: 0x165, script: 0x57, flags: 0x0}, - 373: {region: 0x53, script: 0x38, flags: 0x0}, - 374: {region: 0x165, script: 0x57, flags: 0x0}, - 375: {region: 0x95, script: 0x57, flags: 0x0}, - 376: {region: 0x165, script: 0x57, flags: 0x0}, - 377: {region: 0x165, script: 0x57, flags: 0x0}, - 378: {region: 0x99, script: 0x21, flags: 0x0}, - 379: {region: 0x165, script: 0x57, flags: 0x0}, - 380: {region: 0x9c, script: 0x5, flags: 0x0}, - 381: {region: 0x7e, script: 0x57, flags: 0x0}, - 382: {region: 0x7b, script: 0x57, flags: 0x0}, - 383: {region: 0x165, script: 0x57, flags: 0x0}, - 384: {region: 0x165, script: 0x57, flags: 0x0}, - 385: {region: 0x165, script: 0x57, flags: 0x0}, - 386: {region: 0x165, script: 0x57, flags: 0x0}, - 387: {region: 0x165, script: 0x57, flags: 0x0}, - 388: {region: 0x165, script: 0x57, flags: 0x0}, - 389: {region: 0x6f, script: 0x29, flags: 0x0}, - 390: {region: 0x165, script: 0x57, flags: 0x0}, - 391: {region: 0xdb, script: 0x21, flags: 0x0}, - 392: {region: 0x165, script: 0x57, flags: 0x0}, - 393: {region: 0xa7, script: 0x57, flags: 0x0}, - 394: {region: 0x165, script: 0x57, flags: 0x0}, - 395: {region: 0xe8, script: 0x5, flags: 0x0}, - 396: {region: 0x165, script: 0x57, flags: 0x0}, - 397: {region: 0xe8, script: 0x5, flags: 0x0}, - 398: {region: 0x165, script: 0x57, flags: 0x0}, - 399: {region: 0x165, script: 0x57, flags: 0x0}, - 400: {region: 0x6e, script: 0x57, flags: 0x0}, - 401: {region: 0x9c, script: 0x5, flags: 0x0}, - 402: {region: 0x165, script: 0x57, flags: 0x0}, - 403: {region: 0x165, script: 0x29, flags: 0x0}, - 404: {region: 0xf1, script: 0x57, flags: 0x0}, - 405: {region: 0x165, script: 0x57, flags: 0x0}, - 406: {region: 0x165, script: 0x57, flags: 0x0}, - 407: {region: 0x165, script: 0x57, flags: 0x0}, - 408: {region: 0x165, script: 0x29, flags: 0x0}, - 409: {region: 0x165, script: 0x57, flags: 0x0}, - 410: {region: 0x99, script: 0x21, flags: 0x0}, - 411: {region: 0x99, script: 0xda, flags: 0x0}, - 412: {region: 0x95, script: 0x57, flags: 0x0}, - 413: {region: 0xd9, script: 0x57, flags: 0x0}, - 414: {region: 0x130, script: 0x2f, flags: 0x0}, - 415: {region: 0x165, script: 0x57, flags: 0x0}, - 416: {region: 0xe, script: 0x2, flags: 0x1}, - 417: {region: 0x99, script: 0xe, flags: 0x0}, - 418: {region: 0x165, script: 0x57, flags: 0x0}, - 419: {region: 0x4e, script: 0x57, flags: 0x0}, - 420: {region: 0x99, script: 0x32, flags: 0x0}, - 421: {region: 0x41, script: 0x57, flags: 0x0}, - 422: {region: 0x54, script: 0x57, flags: 0x0}, - 423: {region: 0x165, script: 0x57, flags: 0x0}, - 424: {region: 0x80, script: 0x57, flags: 0x0}, - 425: {region: 0x165, script: 0x57, flags: 0x0}, - 426: {region: 0x165, script: 0x57, flags: 0x0}, - 427: {region: 0xa4, script: 0x57, flags: 0x0}, - 428: {region: 0x98, script: 0x57, flags: 0x0}, - 429: {region: 0x165, script: 0x57, flags: 0x0}, - 430: {region: 0xdb, script: 0x21, flags: 0x0}, - 431: {region: 0x165, script: 0x57, flags: 0x0}, - 432: {region: 0x165, script: 0x5, flags: 0x0}, - 433: {region: 0x49, script: 0x57, flags: 0x0}, - 434: {region: 0x165, script: 0x5, flags: 0x0}, - 435: {region: 0x165, script: 0x57, flags: 0x0}, - 436: {region: 0x10, script: 0x3, flags: 0x1}, - 437: {region: 0x165, script: 0x57, flags: 0x0}, - 438: {region: 0x53, script: 0x38, flags: 0x0}, - 439: {region: 0x165, script: 0x57, flags: 0x0}, - 440: {region: 0x135, script: 0x57, flags: 0x0}, - 441: {region: 0x24, script: 0x5, flags: 0x0}, - 442: {region: 0x165, script: 0x57, flags: 0x0}, - 443: {region: 0x165, script: 0x29, flags: 0x0}, - 444: {region: 0x97, script: 0x3b, flags: 0x0}, - 445: {region: 0x165, script: 0x57, flags: 0x0}, - 446: {region: 0x99, script: 0x21, flags: 0x0}, - 447: {region: 0x165, script: 0x57, flags: 0x0}, - 448: {region: 0x73, script: 0x57, flags: 0x0}, - 449: {region: 0x165, script: 0x57, flags: 0x0}, - 450: {region: 0x165, script: 0x57, flags: 0x0}, - 451: {region: 0xe7, script: 0x57, flags: 0x0}, - 452: {region: 0x165, script: 0x57, flags: 0x0}, - 453: {region: 0x12b, script: 0x3d, flags: 0x0}, - 454: {region: 0x53, script: 0x89, flags: 0x0}, - 455: {region: 0x165, script: 0x57, flags: 0x0}, - 456: {region: 0xe8, script: 0x5, flags: 0x0}, - 457: {region: 0x99, script: 0x21, flags: 0x0}, - 458: {region: 0xaf, script: 0x3e, flags: 0x0}, - 459: {region: 0xe7, script: 0x57, flags: 0x0}, - 460: {region: 0xe8, script: 0x5, flags: 0x0}, - 461: {region: 0xe6, script: 0x57, flags: 0x0}, - 462: {region: 0x99, script: 0x21, flags: 0x0}, - 463: {region: 0x99, script: 0x21, flags: 0x0}, - 464: {region: 0x165, script: 0x57, flags: 0x0}, - 465: {region: 0x90, script: 0x57, flags: 0x0}, - 466: {region: 0x60, script: 0x57, flags: 0x0}, - 467: {region: 0x53, script: 0x38, flags: 0x0}, - 468: {region: 0x91, script: 0x57, flags: 0x0}, - 469: {region: 0x92, script: 0x57, flags: 0x0}, - 470: {region: 0x165, script: 0x57, flags: 0x0}, - 471: {region: 0x28, script: 0x8, flags: 0x0}, - 472: {region: 0xd2, script: 0x57, flags: 0x0}, - 473: {region: 0x78, script: 0x57, flags: 0x0}, - 474: {region: 0x165, script: 0x57, flags: 0x0}, - 475: {region: 0x165, script: 0x57, flags: 0x0}, - 476: {region: 0xd0, script: 0x57, flags: 0x0}, - 477: {region: 0xd6, script: 0x57, flags: 0x0}, - 478: {region: 0x165, script: 0x57, flags: 0x0}, - 479: {region: 0x165, script: 0x57, flags: 0x0}, - 480: {region: 0x165, script: 0x57, flags: 0x0}, - 481: {region: 0x95, script: 0x57, flags: 0x0}, - 482: {region: 0x165, script: 0x57, flags: 0x0}, - 483: {region: 0x165, script: 0x57, flags: 0x0}, - 484: {region: 0x165, script: 0x57, flags: 0x0}, - 486: {region: 0x122, script: 0x57, flags: 0x0}, - 487: {region: 0xd6, script: 0x57, flags: 0x0}, - 488: {region: 0x165, script: 0x57, flags: 0x0}, - 489: {region: 0x165, script: 0x57, flags: 0x0}, - 490: {region: 0x53, script: 0xea, flags: 0x0}, - 491: {region: 0x165, script: 0x57, flags: 0x0}, - 492: {region: 0x135, script: 0x57, flags: 0x0}, - 493: {region: 0x165, script: 0x57, flags: 0x0}, - 494: {region: 0x49, script: 0x57, flags: 0x0}, - 495: {region: 0x165, script: 0x57, flags: 0x0}, - 496: {region: 0x165, script: 0x57, flags: 0x0}, - 497: {region: 0xe7, script: 0x57, flags: 0x0}, - 498: {region: 0x165, script: 0x57, flags: 0x0}, - 499: {region: 0x95, script: 0x57, flags: 0x0}, - 500: {region: 0x106, script: 0x1f, flags: 0x0}, - 501: {region: 0x1, script: 0x57, flags: 0x0}, - 502: {region: 0x165, script: 0x57, flags: 0x0}, - 503: {region: 0x165, script: 0x57, flags: 0x0}, - 504: {region: 0x9d, script: 0x57, flags: 0x0}, - 505: {region: 0x9e, script: 0x57, flags: 0x0}, - 506: {region: 0x49, script: 0x17, flags: 0x0}, - 507: {region: 0x97, script: 0x3b, flags: 0x0}, - 508: {region: 0x165, script: 0x57, flags: 0x0}, - 509: {region: 0x165, script: 0x57, flags: 0x0}, - 510: {region: 0x106, script: 0x57, flags: 0x0}, - 511: {region: 0x165, script: 0x57, flags: 0x0}, - 512: {region: 0xa2, script: 0x46, flags: 0x0}, - 513: {region: 0x165, script: 0x57, flags: 0x0}, - 514: {region: 0xa0, script: 0x57, flags: 0x0}, - 515: {region: 0x1, script: 0x57, flags: 0x0}, - 516: {region: 0x165, script: 0x57, flags: 0x0}, - 517: {region: 0x165, script: 0x57, flags: 0x0}, - 518: {region: 0x165, script: 0x57, flags: 0x0}, - 519: {region: 0x52, script: 0x57, flags: 0x0}, - 520: {region: 0x130, script: 0x3b, flags: 0x0}, - 521: {region: 0x165, script: 0x57, flags: 0x0}, - 522: {region: 0x12f, script: 0x57, flags: 0x0}, - 523: {region: 0xdb, script: 0x21, flags: 0x0}, - 524: {region: 0x165, script: 0x57, flags: 0x0}, - 525: {region: 0x63, script: 0x57, flags: 0x0}, - 526: {region: 0x95, script: 0x57, flags: 0x0}, - 527: {region: 0x95, script: 0x57, flags: 0x0}, - 528: {region: 0x7d, script: 0x2b, flags: 0x0}, - 529: {region: 0x137, script: 0x1f, flags: 0x0}, - 530: {region: 0x67, script: 0x57, flags: 0x0}, - 531: {region: 0xc4, script: 0x57, flags: 0x0}, - 532: {region: 0x165, script: 0x57, flags: 0x0}, - 533: {region: 0x165, script: 0x57, flags: 0x0}, - 534: {region: 0xd6, script: 0x57, flags: 0x0}, - 535: {region: 0xa4, script: 0x57, flags: 0x0}, - 536: {region: 0xc3, script: 0x57, flags: 0x0}, - 537: {region: 0x106, script: 0x1f, flags: 0x0}, - 538: {region: 0x165, script: 0x57, flags: 0x0}, - 539: {region: 0x165, script: 0x57, flags: 0x0}, - 540: {region: 0x165, script: 0x57, flags: 0x0}, - 541: {region: 0x165, script: 0x57, flags: 0x0}, - 542: {region: 0xd4, script: 0x5, flags: 0x0}, - 543: {region: 0xd6, script: 0x57, flags: 0x0}, - 544: {region: 0x164, script: 0x57, flags: 0x0}, - 545: {region: 0x165, script: 0x57, flags: 0x0}, - 546: {region: 0x165, script: 0x57, flags: 0x0}, - 547: {region: 0x12f, script: 0x57, flags: 0x0}, - 548: {region: 0x122, script: 0x5, flags: 0x0}, - 549: {region: 0x165, script: 0x57, flags: 0x0}, - 550: {region: 0x123, script: 0xdf, flags: 0x0}, - 551: {region: 0x5a, script: 0x57, flags: 0x0}, - 552: {region: 0x52, script: 0x57, flags: 0x0}, - 553: {region: 0x165, script: 0x57, flags: 0x0}, - 554: {region: 0x4f, script: 0x57, flags: 0x0}, - 555: {region: 0x99, script: 0x21, flags: 0x0}, - 556: {region: 0x99, script: 0x21, flags: 0x0}, - 557: {region: 0x4b, script: 0x57, flags: 0x0}, - 558: {region: 0x95, script: 0x57, flags: 0x0}, - 559: {region: 0x165, script: 0x57, flags: 0x0}, - 560: {region: 0x41, script: 0x57, flags: 0x0}, - 561: {region: 0x99, script: 0x57, flags: 0x0}, - 562: {region: 0x53, script: 0xd6, flags: 0x0}, - 563: {region: 0x99, script: 0x21, flags: 0x0}, - 564: {region: 0xc3, script: 0x57, flags: 0x0}, - 565: {region: 0x165, script: 0x57, flags: 0x0}, - 566: {region: 0x99, script: 0x72, flags: 0x0}, - 567: {region: 0xe8, script: 0x5, flags: 0x0}, - 568: {region: 0x165, script: 0x57, flags: 0x0}, - 569: {region: 0xa4, script: 0x57, flags: 0x0}, - 570: {region: 0x165, script: 0x57, flags: 0x0}, - 571: {region: 0x12b, script: 0x57, flags: 0x0}, - 572: {region: 0x165, script: 0x57, flags: 0x0}, - 573: {region: 0xd2, script: 0x57, flags: 0x0}, - 574: {region: 0x165, script: 0x57, flags: 0x0}, - 575: {region: 0xaf, script: 0x54, flags: 0x0}, - 576: {region: 0x165, script: 0x57, flags: 0x0}, - 577: {region: 0x165, script: 0x57, flags: 0x0}, - 578: {region: 0x13, script: 0x6, flags: 0x1}, - 579: {region: 0x165, script: 0x57, flags: 0x0}, - 580: {region: 0x52, script: 0x57, flags: 0x0}, - 581: {region: 0x82, script: 0x57, flags: 0x0}, - 582: {region: 0xa4, script: 0x57, flags: 0x0}, - 583: {region: 0x165, script: 0x57, flags: 0x0}, - 584: {region: 0x165, script: 0x57, flags: 0x0}, - 585: {region: 0x165, script: 0x57, flags: 0x0}, - 586: {region: 0xa6, script: 0x4b, flags: 0x0}, - 587: {region: 0x2a, script: 0x57, flags: 0x0}, - 588: {region: 0x165, script: 0x57, flags: 0x0}, - 589: {region: 0x165, script: 0x57, flags: 0x0}, - 590: {region: 0x165, script: 0x57, flags: 0x0}, - 591: {region: 0x165, script: 0x57, flags: 0x0}, - 592: {region: 0x165, script: 0x57, flags: 0x0}, - 593: {region: 0x99, script: 0x4f, flags: 0x0}, - 594: {region: 0x8b, script: 0x57, flags: 0x0}, - 595: {region: 0x165, script: 0x57, flags: 0x0}, - 596: {region: 0xab, script: 0x50, flags: 0x0}, - 597: {region: 0x106, script: 0x1f, flags: 0x0}, - 598: {region: 0x99, script: 0x21, flags: 0x0}, - 599: {region: 0x165, script: 0x57, flags: 0x0}, - 600: {region: 0x75, script: 0x57, flags: 0x0}, - 601: {region: 0x165, script: 0x57, flags: 0x0}, - 602: {region: 0xb4, script: 0x57, flags: 0x0}, - 603: {region: 0x165, script: 0x57, flags: 0x0}, - 604: {region: 0x165, script: 0x57, flags: 0x0}, - 605: {region: 0x165, script: 0x57, flags: 0x0}, - 606: {region: 0x165, script: 0x57, flags: 0x0}, - 607: {region: 0x165, script: 0x57, flags: 0x0}, - 608: {region: 0x165, script: 0x57, flags: 0x0}, - 609: {region: 0x165, script: 0x57, flags: 0x0}, - 610: {region: 0x165, script: 0x29, flags: 0x0}, - 611: {region: 0x165, script: 0x57, flags: 0x0}, - 612: {region: 0x106, script: 0x1f, flags: 0x0}, - 613: {region: 0x112, script: 0x57, flags: 0x0}, - 614: {region: 0xe7, script: 0x57, flags: 0x0}, - 615: {region: 0x106, script: 0x57, flags: 0x0}, - 616: {region: 0x165, script: 0x57, flags: 0x0}, - 617: {region: 0x99, script: 0x21, flags: 0x0}, - 618: {region: 0x99, script: 0x5, flags: 0x0}, - 619: {region: 0x12f, script: 0x57, flags: 0x0}, - 620: {region: 0x165, script: 0x57, flags: 0x0}, - 621: {region: 0x52, script: 0x57, flags: 0x0}, - 622: {region: 0x60, script: 0x57, flags: 0x0}, - 623: {region: 0x165, script: 0x57, flags: 0x0}, - 624: {region: 0x165, script: 0x57, flags: 0x0}, - 625: {region: 0x165, script: 0x29, flags: 0x0}, - 626: {region: 0x165, script: 0x57, flags: 0x0}, - 627: {region: 0x165, script: 0x57, flags: 0x0}, - 628: {region: 0x19, script: 0x3, flags: 0x1}, - 629: {region: 0x165, script: 0x57, flags: 0x0}, - 630: {region: 0x165, script: 0x57, flags: 0x0}, - 631: {region: 0x165, script: 0x57, flags: 0x0}, - 632: {region: 0x165, script: 0x57, flags: 0x0}, - 633: {region: 0x106, script: 0x1f, flags: 0x0}, - 634: {region: 0x165, script: 0x57, flags: 0x0}, - 635: {region: 0x165, script: 0x57, flags: 0x0}, - 636: {region: 0x165, script: 0x57, flags: 0x0}, - 637: {region: 0x106, script: 0x1f, flags: 0x0}, - 638: {region: 0x165, script: 0x57, flags: 0x0}, - 639: {region: 0x95, script: 0x57, flags: 0x0}, - 640: {region: 0xe8, script: 0x5, flags: 0x0}, - 641: {region: 0x7b, script: 0x57, flags: 0x0}, - 642: {region: 0x165, script: 0x57, flags: 0x0}, - 643: {region: 0x165, script: 0x57, flags: 0x0}, - 644: {region: 0x165, script: 0x57, flags: 0x0}, - 645: {region: 0x165, script: 0x29, flags: 0x0}, - 646: {region: 0x123, script: 0xdf, flags: 0x0}, - 647: {region: 0xe8, script: 0x5, flags: 0x0}, - 648: {region: 0x165, script: 0x57, flags: 0x0}, - 649: {region: 0x165, script: 0x57, flags: 0x0}, - 650: {region: 0x1c, script: 0x5, flags: 0x1}, - 651: {region: 0x165, script: 0x57, flags: 0x0}, - 652: {region: 0x165, script: 0x57, flags: 0x0}, - 653: {region: 0x165, script: 0x57, flags: 0x0}, - 654: {region: 0x138, script: 0x57, flags: 0x0}, - 655: {region: 0x87, script: 0x5b, flags: 0x0}, - 656: {region: 0x97, script: 0x3b, flags: 0x0}, - 657: {region: 0x12f, script: 0x57, flags: 0x0}, - 658: {region: 0xe8, script: 0x5, flags: 0x0}, - 659: {region: 0x131, script: 0x57, flags: 0x0}, - 660: {region: 0x165, script: 0x57, flags: 0x0}, - 661: {region: 0xb7, script: 0x57, flags: 0x0}, - 662: {region: 0x106, script: 0x1f, flags: 0x0}, - 663: {region: 0x165, script: 0x57, flags: 0x0}, - 664: {region: 0x95, script: 0x57, flags: 0x0}, - 665: {region: 0x165, script: 0x57, flags: 0x0}, - 666: {region: 0x53, script: 0xdf, flags: 0x0}, - 667: {region: 0x165, script: 0x57, flags: 0x0}, - 668: {region: 0x165, script: 0x57, flags: 0x0}, - 669: {region: 0x165, script: 0x57, flags: 0x0}, - 670: {region: 0x165, script: 0x57, flags: 0x0}, - 671: {region: 0x99, script: 0x59, flags: 0x0}, - 672: {region: 0x165, script: 0x57, flags: 0x0}, - 673: {region: 0x165, script: 0x57, flags: 0x0}, - 674: {region: 0x106, script: 0x1f, flags: 0x0}, - 675: {region: 0x131, script: 0x57, flags: 0x0}, - 676: {region: 0x165, script: 0x57, flags: 0x0}, - 677: {region: 0xd9, script: 0x57, flags: 0x0}, - 678: {region: 0x165, script: 0x57, flags: 0x0}, - 679: {region: 0x165, script: 0x57, flags: 0x0}, - 680: {region: 0x21, script: 0x2, flags: 0x1}, - 681: {region: 0x165, script: 0x57, flags: 0x0}, - 682: {region: 0x165, script: 0x57, flags: 0x0}, - 683: {region: 0x9e, script: 0x57, flags: 0x0}, - 684: {region: 0x53, script: 0x5d, flags: 0x0}, - 685: {region: 0x95, script: 0x57, flags: 0x0}, - 686: {region: 0x9c, script: 0x5, flags: 0x0}, - 687: {region: 0x135, script: 0x57, flags: 0x0}, - 688: {region: 0x165, script: 0x57, flags: 0x0}, - 689: {region: 0x165, script: 0x57, flags: 0x0}, - 690: {region: 0x99, script: 0xda, flags: 0x0}, - 691: {region: 0x9e, script: 0x57, flags: 0x0}, - 692: {region: 0x165, script: 0x57, flags: 0x0}, - 693: {region: 0x4b, script: 0x57, flags: 0x0}, - 694: {region: 0x165, script: 0x57, flags: 0x0}, - 695: {region: 0x165, script: 0x57, flags: 0x0}, - 696: {region: 0xaf, script: 0x54, flags: 0x0}, - 697: {region: 0x165, script: 0x57, flags: 0x0}, - 698: {region: 0x165, script: 0x57, flags: 0x0}, - 699: {region: 0x4b, script: 0x57, flags: 0x0}, - 700: {region: 0x165, script: 0x57, flags: 0x0}, - 701: {region: 0x165, script: 0x57, flags: 0x0}, - 702: {region: 0x162, script: 0x57, flags: 0x0}, - 703: {region: 0x9c, script: 0x5, flags: 0x0}, - 704: {region: 0xb6, script: 0x57, flags: 0x0}, - 705: {region: 0xb8, script: 0x57, flags: 0x0}, - 706: {region: 0x4b, script: 0x57, flags: 0x0}, - 707: {region: 0x4b, script: 0x57, flags: 0x0}, - 708: {region: 0xa4, script: 0x57, flags: 0x0}, - 709: {region: 0xa4, script: 0x57, flags: 0x0}, - 710: {region: 0x9c, script: 0x5, flags: 0x0}, - 711: {region: 0xb8, script: 0x57, flags: 0x0}, - 712: {region: 0x123, script: 0xdf, flags: 0x0}, - 713: {region: 0x53, script: 0x38, flags: 0x0}, - 714: {region: 0x12b, script: 0x57, flags: 0x0}, - 715: {region: 0x95, script: 0x57, flags: 0x0}, - 716: {region: 0x52, script: 0x57, flags: 0x0}, - 717: {region: 0x99, script: 0x21, flags: 0x0}, - 718: {region: 0x99, script: 0x21, flags: 0x0}, - 719: {region: 0x95, script: 0x57, flags: 0x0}, - 720: {region: 0x23, script: 0x3, flags: 0x1}, - 721: {region: 0xa4, script: 0x57, flags: 0x0}, - 722: {region: 0x165, script: 0x57, flags: 0x0}, - 723: {region: 0xcf, script: 0x57, flags: 0x0}, - 724: {region: 0x165, script: 0x57, flags: 0x0}, - 725: {region: 0x165, script: 0x57, flags: 0x0}, - 726: {region: 0x165, script: 0x57, flags: 0x0}, - 727: {region: 0x165, script: 0x57, flags: 0x0}, - 728: {region: 0x165, script: 0x57, flags: 0x0}, - 729: {region: 0x165, script: 0x57, flags: 0x0}, - 730: {region: 0x165, script: 0x57, flags: 0x0}, - 731: {region: 0x165, script: 0x57, flags: 0x0}, - 732: {region: 0x165, script: 0x57, flags: 0x0}, - 733: {region: 0x165, script: 0x57, flags: 0x0}, - 734: {region: 0x165, script: 0x57, flags: 0x0}, - 735: {region: 0x165, script: 0x5, flags: 0x0}, - 736: {region: 0x106, script: 0x1f, flags: 0x0}, - 737: {region: 0xe7, script: 0x57, flags: 0x0}, - 738: {region: 0x165, script: 0x57, flags: 0x0}, - 739: {region: 0x95, script: 0x57, flags: 0x0}, - 740: {region: 0x165, script: 0x29, flags: 0x0}, - 741: {region: 0x165, script: 0x57, flags: 0x0}, - 742: {region: 0x165, script: 0x57, flags: 0x0}, - 743: {region: 0x165, script: 0x57, flags: 0x0}, - 744: {region: 0x112, script: 0x57, flags: 0x0}, - 745: {region: 0xa4, script: 0x57, flags: 0x0}, - 746: {region: 0x165, script: 0x57, flags: 0x0}, - 747: {region: 0x165, script: 0x57, flags: 0x0}, - 748: {region: 0x123, script: 0x5, flags: 0x0}, - 749: {region: 0xcc, script: 0x57, flags: 0x0}, - 750: {region: 0x165, script: 0x57, flags: 0x0}, - 751: {region: 0x165, script: 0x57, flags: 0x0}, - 752: {region: 0x165, script: 0x57, flags: 0x0}, - 753: {region: 0xbf, script: 0x57, flags: 0x0}, - 754: {region: 0xd1, script: 0x57, flags: 0x0}, - 755: {region: 0x165, script: 0x57, flags: 0x0}, - 756: {region: 0x52, script: 0x57, flags: 0x0}, - 757: {region: 0xdb, script: 0x21, flags: 0x0}, - 758: {region: 0x12f, script: 0x57, flags: 0x0}, - 759: {region: 0xc0, script: 0x57, flags: 0x0}, - 760: {region: 0x165, script: 0x57, flags: 0x0}, - 761: {region: 0x165, script: 0x57, flags: 0x0}, - 762: {region: 0xe0, script: 0x57, flags: 0x0}, - 763: {region: 0x165, script: 0x57, flags: 0x0}, - 764: {region: 0x95, script: 0x57, flags: 0x0}, - 765: {region: 0x9b, script: 0x3a, flags: 0x0}, - 766: {region: 0x165, script: 0x57, flags: 0x0}, - 767: {region: 0xc2, script: 0x1f, flags: 0x0}, - 768: {region: 0x165, script: 0x5, flags: 0x0}, - 769: {region: 0x165, script: 0x57, flags: 0x0}, - 770: {region: 0x165, script: 0x57, flags: 0x0}, - 771: {region: 0x165, script: 0x57, flags: 0x0}, - 772: {region: 0x99, script: 0x6b, flags: 0x0}, - 773: {region: 0x165, script: 0x57, flags: 0x0}, - 774: {region: 0x165, script: 0x57, flags: 0x0}, - 775: {region: 0x10b, script: 0x57, flags: 0x0}, - 776: {region: 0x165, script: 0x57, flags: 0x0}, - 777: {region: 0x165, script: 0x57, flags: 0x0}, - 778: {region: 0x165, script: 0x57, flags: 0x0}, - 779: {region: 0x26, script: 0x3, flags: 0x1}, - 780: {region: 0x165, script: 0x57, flags: 0x0}, - 781: {region: 0x165, script: 0x57, flags: 0x0}, - 782: {region: 0x99, script: 0xe, flags: 0x0}, - 783: {region: 0xc4, script: 0x72, flags: 0x0}, - 785: {region: 0x165, script: 0x57, flags: 0x0}, - 786: {region: 0x49, script: 0x57, flags: 0x0}, - 787: {region: 0x49, script: 0x57, flags: 0x0}, - 788: {region: 0x37, script: 0x57, flags: 0x0}, - 789: {region: 0x165, script: 0x57, flags: 0x0}, - 790: {region: 0x165, script: 0x57, flags: 0x0}, - 791: {region: 0x165, script: 0x57, flags: 0x0}, - 792: {region: 0x165, script: 0x57, flags: 0x0}, - 793: {region: 0x165, script: 0x57, flags: 0x0}, - 794: {region: 0x165, script: 0x57, flags: 0x0}, - 795: {region: 0x99, script: 0x21, flags: 0x0}, - 796: {region: 0xdb, script: 0x21, flags: 0x0}, - 797: {region: 0x106, script: 0x1f, flags: 0x0}, - 798: {region: 0x35, script: 0x6f, flags: 0x0}, - 799: {region: 0x29, script: 0x3, flags: 0x1}, - 800: {region: 0xcb, script: 0x57, flags: 0x0}, - 801: {region: 0x165, script: 0x57, flags: 0x0}, - 802: {region: 0x165, script: 0x57, flags: 0x0}, - 803: {region: 0x165, script: 0x57, flags: 0x0}, - 804: {region: 0x99, script: 0x21, flags: 0x0}, - 805: {region: 0x52, script: 0x57, flags: 0x0}, - 807: {region: 0x165, script: 0x57, flags: 0x0}, - 808: {region: 0x135, script: 0x57, flags: 0x0}, - 809: {region: 0x165, script: 0x57, flags: 0x0}, - 810: {region: 0x165, script: 0x57, flags: 0x0}, - 811: {region: 0xe8, script: 0x5, flags: 0x0}, - 812: {region: 0xc3, script: 0x57, flags: 0x0}, - 813: {region: 0x99, script: 0x21, flags: 0x0}, - 814: {region: 0x95, script: 0x57, flags: 0x0}, - 815: {region: 0x164, script: 0x57, flags: 0x0}, - 816: {region: 0x165, script: 0x57, flags: 0x0}, - 817: {region: 0xc4, script: 0x72, flags: 0x0}, - 818: {region: 0x165, script: 0x57, flags: 0x0}, - 819: {region: 0x165, script: 0x29, flags: 0x0}, - 820: {region: 0x106, script: 0x1f, flags: 0x0}, - 821: {region: 0x165, script: 0x57, flags: 0x0}, - 822: {region: 0x131, script: 0x57, flags: 0x0}, - 823: {region: 0x9c, script: 0x63, flags: 0x0}, - 824: {region: 0x165, script: 0x57, flags: 0x0}, - 825: {region: 0x165, script: 0x57, flags: 0x0}, - 826: {region: 0x9c, script: 0x5, flags: 0x0}, - 827: {region: 0x165, script: 0x57, flags: 0x0}, - 828: {region: 0x165, script: 0x57, flags: 0x0}, - 829: {region: 0x165, script: 0x57, flags: 0x0}, - 830: {region: 0xdd, script: 0x57, flags: 0x0}, - 831: {region: 0x165, script: 0x57, flags: 0x0}, - 832: {region: 0x165, script: 0x57, flags: 0x0}, - 834: {region: 0x165, script: 0x57, flags: 0x0}, - 835: {region: 0x53, script: 0x38, flags: 0x0}, - 836: {region: 0x9e, script: 0x57, flags: 0x0}, - 837: {region: 0xd2, script: 0x57, flags: 0x0}, - 838: {region: 0x165, script: 0x57, flags: 0x0}, - 839: {region: 0xda, script: 0x57, flags: 0x0}, - 840: {region: 0x165, script: 0x57, flags: 0x0}, - 841: {region: 0x165, script: 0x57, flags: 0x0}, - 842: {region: 0x165, script: 0x57, flags: 0x0}, - 843: {region: 0xcf, script: 0x57, flags: 0x0}, - 844: {region: 0x165, script: 0x57, flags: 0x0}, - 845: {region: 0x165, script: 0x57, flags: 0x0}, - 846: {region: 0x164, script: 0x57, flags: 0x0}, - 847: {region: 0xd1, script: 0x57, flags: 0x0}, - 848: {region: 0x60, script: 0x57, flags: 0x0}, - 849: {region: 0xdb, script: 0x21, flags: 0x0}, - 850: {region: 0x165, script: 0x57, flags: 0x0}, - 851: {region: 0xdb, script: 0x21, flags: 0x0}, - 852: {region: 0x165, script: 0x57, flags: 0x0}, - 853: {region: 0x165, script: 0x57, flags: 0x0}, - 854: {region: 0xd2, script: 0x57, flags: 0x0}, - 855: {region: 0x165, script: 0x57, flags: 0x0}, - 856: {region: 0x165, script: 0x57, flags: 0x0}, - 857: {region: 0xd1, script: 0x57, flags: 0x0}, - 858: {region: 0x165, script: 0x57, flags: 0x0}, - 859: {region: 0xcf, script: 0x57, flags: 0x0}, - 860: {region: 0xcf, script: 0x57, flags: 0x0}, - 861: {region: 0x165, script: 0x57, flags: 0x0}, - 862: {region: 0x165, script: 0x57, flags: 0x0}, - 863: {region: 0x95, script: 0x57, flags: 0x0}, - 864: {region: 0x165, script: 0x57, flags: 0x0}, - 865: {region: 0xdf, script: 0x57, flags: 0x0}, - 866: {region: 0x165, script: 0x57, flags: 0x0}, - 867: {region: 0x165, script: 0x57, flags: 0x0}, - 868: {region: 0x99, script: 0x57, flags: 0x0}, - 869: {region: 0x165, script: 0x57, flags: 0x0}, - 870: {region: 0x165, script: 0x57, flags: 0x0}, - 871: {region: 0xd9, script: 0x57, flags: 0x0}, - 872: {region: 0x52, script: 0x57, flags: 0x0}, - 873: {region: 0x165, script: 0x57, flags: 0x0}, - 874: {region: 0xda, script: 0x57, flags: 0x0}, - 875: {region: 0x165, script: 0x57, flags: 0x0}, - 876: {region: 0x52, script: 0x57, flags: 0x0}, - 877: {region: 0x165, script: 0x57, flags: 0x0}, - 878: {region: 0x165, script: 0x57, flags: 0x0}, - 879: {region: 0xda, script: 0x57, flags: 0x0}, - 880: {region: 0x123, script: 0x53, flags: 0x0}, - 881: {region: 0x99, script: 0x21, flags: 0x0}, - 882: {region: 0x10c, script: 0xbf, flags: 0x0}, - 883: {region: 0x165, script: 0x57, flags: 0x0}, - 884: {region: 0x165, script: 0x57, flags: 0x0}, - 885: {region: 0x84, script: 0x78, flags: 0x0}, - 886: {region: 0x161, script: 0x57, flags: 0x0}, - 887: {region: 0x165, script: 0x57, flags: 0x0}, - 888: {region: 0x49, script: 0x17, flags: 0x0}, - 889: {region: 0x165, script: 0x57, flags: 0x0}, - 890: {region: 0x161, script: 0x57, flags: 0x0}, - 891: {region: 0x165, script: 0x57, flags: 0x0}, - 892: {region: 0x165, script: 0x57, flags: 0x0}, - 893: {region: 0x165, script: 0x57, flags: 0x0}, - 894: {region: 0x165, script: 0x57, flags: 0x0}, - 895: {region: 0x165, script: 0x57, flags: 0x0}, - 896: {region: 0x117, script: 0x57, flags: 0x0}, - 897: {region: 0x165, script: 0x57, flags: 0x0}, - 898: {region: 0x165, script: 0x57, flags: 0x0}, - 899: {region: 0x135, script: 0x57, flags: 0x0}, - 900: {region: 0x165, script: 0x57, flags: 0x0}, - 901: {region: 0x53, script: 0x57, flags: 0x0}, - 902: {region: 0x165, script: 0x57, flags: 0x0}, - 903: {region: 0xce, script: 0x57, flags: 0x0}, - 904: {region: 0x12f, script: 0x57, flags: 0x0}, - 905: {region: 0x131, script: 0x57, flags: 0x0}, - 906: {region: 0x80, script: 0x57, flags: 0x0}, - 907: {region: 0x78, script: 0x57, flags: 0x0}, - 908: {region: 0x165, script: 0x57, flags: 0x0}, - 910: {region: 0x165, script: 0x57, flags: 0x0}, - 911: {region: 0x165, script: 0x57, flags: 0x0}, - 912: {region: 0x6f, script: 0x57, flags: 0x0}, - 913: {region: 0x165, script: 0x57, flags: 0x0}, - 914: {region: 0x165, script: 0x57, flags: 0x0}, - 915: {region: 0x165, script: 0x57, flags: 0x0}, - 916: {region: 0x165, script: 0x57, flags: 0x0}, - 917: {region: 0x99, script: 0x7d, flags: 0x0}, - 918: {region: 0x165, script: 0x57, flags: 0x0}, - 919: {region: 0x165, script: 0x5, flags: 0x0}, - 920: {region: 0x7d, script: 0x1f, flags: 0x0}, - 921: {region: 0x135, script: 0x7e, flags: 0x0}, - 922: {region: 0x165, script: 0x5, flags: 0x0}, - 923: {region: 0xc5, script: 0x7c, flags: 0x0}, - 924: {region: 0x165, script: 0x57, flags: 0x0}, - 925: {region: 0x2c, script: 0x3, flags: 0x1}, - 926: {region: 0xe7, script: 0x57, flags: 0x0}, - 927: {region: 0x2f, script: 0x2, flags: 0x1}, - 928: {region: 0xe7, script: 0x57, flags: 0x0}, - 929: {region: 0x30, script: 0x57, flags: 0x0}, - 930: {region: 0xf0, script: 0x57, flags: 0x0}, - 931: {region: 0x165, script: 0x57, flags: 0x0}, - 932: {region: 0x78, script: 0x57, flags: 0x0}, - 933: {region: 0xd6, script: 0x57, flags: 0x0}, - 934: {region: 0x135, script: 0x57, flags: 0x0}, - 935: {region: 0x49, script: 0x57, flags: 0x0}, - 936: {region: 0x165, script: 0x57, flags: 0x0}, - 937: {region: 0x9c, script: 0xe8, flags: 0x0}, - 938: {region: 0x165, script: 0x57, flags: 0x0}, - 939: {region: 0x60, script: 0x57, flags: 0x0}, - 940: {region: 0x165, script: 0x5, flags: 0x0}, - 941: {region: 0xb0, script: 0x87, flags: 0x0}, - 943: {region: 0x165, script: 0x57, flags: 0x0}, - 944: {region: 0x165, script: 0x57, flags: 0x0}, - 945: {region: 0x99, script: 0x12, flags: 0x0}, - 946: {region: 0xa4, script: 0x57, flags: 0x0}, - 947: {region: 0xe9, script: 0x57, flags: 0x0}, - 948: {region: 0x165, script: 0x57, flags: 0x0}, - 949: {region: 0x9e, script: 0x57, flags: 0x0}, - 950: {region: 0x165, script: 0x57, flags: 0x0}, - 951: {region: 0x165, script: 0x57, flags: 0x0}, - 952: {region: 0x87, script: 0x31, flags: 0x0}, - 953: {region: 0x75, script: 0x57, flags: 0x0}, - 954: {region: 0x165, script: 0x57, flags: 0x0}, - 955: {region: 0xe8, script: 0x4a, flags: 0x0}, - 956: {region: 0x9c, script: 0x5, flags: 0x0}, - 957: {region: 0x1, script: 0x57, flags: 0x0}, - 958: {region: 0x24, script: 0x5, flags: 0x0}, - 959: {region: 0x165, script: 0x57, flags: 0x0}, - 960: {region: 0x41, script: 0x57, flags: 0x0}, - 961: {region: 0x165, script: 0x57, flags: 0x0}, - 962: {region: 0x7a, script: 0x57, flags: 0x0}, - 963: {region: 0x165, script: 0x57, flags: 0x0}, - 964: {region: 0xe4, script: 0x57, flags: 0x0}, - 965: {region: 0x89, script: 0x57, flags: 0x0}, - 966: {region: 0x69, script: 0x57, flags: 0x0}, - 967: {region: 0x165, script: 0x57, flags: 0x0}, - 968: {region: 0x99, script: 0x21, flags: 0x0}, - 969: {region: 0x165, script: 0x57, flags: 0x0}, - 970: {region: 0x102, script: 0x57, flags: 0x0}, - 971: {region: 0x95, script: 0x57, flags: 0x0}, - 972: {region: 0x165, script: 0x57, flags: 0x0}, - 973: {region: 0x165, script: 0x57, flags: 0x0}, - 974: {region: 0x9e, script: 0x57, flags: 0x0}, - 975: {region: 0x165, script: 0x5, flags: 0x0}, - 976: {region: 0x99, script: 0x57, flags: 0x0}, - 977: {region: 0x31, script: 0x2, flags: 0x1}, - 978: {region: 0xdb, script: 0x21, flags: 0x0}, - 979: {region: 0x35, script: 0xe, flags: 0x0}, - 980: {region: 0x4e, script: 0x57, flags: 0x0}, - 981: {region: 0x72, script: 0x57, flags: 0x0}, - 982: {region: 0x4e, script: 0x57, flags: 0x0}, - 983: {region: 0x9c, script: 0x5, flags: 0x0}, - 984: {region: 0x10c, script: 0x57, flags: 0x0}, - 985: {region: 0x3a, script: 0x57, flags: 0x0}, - 986: {region: 0x165, script: 0x57, flags: 0x0}, - 987: {region: 0xd1, script: 0x57, flags: 0x0}, - 988: {region: 0x104, script: 0x57, flags: 0x0}, - 989: {region: 0x95, script: 0x57, flags: 0x0}, - 990: {region: 0x12f, script: 0x57, flags: 0x0}, - 991: {region: 0x165, script: 0x57, flags: 0x0}, - 992: {region: 0x165, script: 0x57, flags: 0x0}, - 993: {region: 0x73, script: 0x57, flags: 0x0}, - 994: {region: 0x106, script: 0x1f, flags: 0x0}, - 995: {region: 0x130, script: 0x1f, flags: 0x0}, - 996: {region: 0x109, script: 0x57, flags: 0x0}, - 997: {region: 0x107, script: 0x57, flags: 0x0}, - 998: {region: 0x12f, script: 0x57, flags: 0x0}, - 999: {region: 0x165, script: 0x57, flags: 0x0}, - 1000: {region: 0xa2, script: 0x49, flags: 0x0}, - 1001: {region: 0x99, script: 0x21, flags: 0x0}, - 1002: {region: 0x80, script: 0x57, flags: 0x0}, - 1003: {region: 0x106, script: 0x1f, flags: 0x0}, - 1004: {region: 0xa4, script: 0x57, flags: 0x0}, - 1005: {region: 0x95, script: 0x57, flags: 0x0}, - 1006: {region: 0x99, script: 0x57, flags: 0x0}, - 1007: {region: 0x114, script: 0x57, flags: 0x0}, - 1008: {region: 0x99, script: 0xc3, flags: 0x0}, - 1009: {region: 0x165, script: 0x57, flags: 0x0}, - 1010: {region: 0x165, script: 0x57, flags: 0x0}, - 1011: {region: 0x12f, script: 0x57, flags: 0x0}, - 1012: {region: 0x9e, script: 0x57, flags: 0x0}, - 1013: {region: 0x99, script: 0x21, flags: 0x0}, - 1014: {region: 0x165, script: 0x5, flags: 0x0}, - 1015: {region: 0x9e, script: 0x57, flags: 0x0}, - 1016: {region: 0x7b, script: 0x57, flags: 0x0}, - 1017: {region: 0x49, script: 0x57, flags: 0x0}, - 1018: {region: 0x33, script: 0x4, flags: 0x1}, - 1019: {region: 0x9e, script: 0x57, flags: 0x0}, - 1020: {region: 0x9c, script: 0x5, flags: 0x0}, - 1021: {region: 0xda, script: 0x57, flags: 0x0}, - 1022: {region: 0x4f, script: 0x57, flags: 0x0}, - 1023: {region: 0xd1, script: 0x57, flags: 0x0}, - 1024: {region: 0xcf, script: 0x57, flags: 0x0}, - 1025: {region: 0xc3, script: 0x57, flags: 0x0}, - 1026: {region: 0x4c, script: 0x57, flags: 0x0}, - 1027: {region: 0x96, script: 0x7a, flags: 0x0}, - 1028: {region: 0xb6, script: 0x57, flags: 0x0}, - 1029: {region: 0x165, script: 0x29, flags: 0x0}, - 1030: {region: 0x165, script: 0x57, flags: 0x0}, - 1032: {region: 0xba, script: 0xdc, flags: 0x0}, - 1033: {region: 0x165, script: 0x57, flags: 0x0}, - 1034: {region: 0xc4, script: 0x72, flags: 0x0}, - 1035: {region: 0x165, script: 0x5, flags: 0x0}, - 1036: {region: 0xb3, script: 0xca, flags: 0x0}, - 1037: {region: 0x6f, script: 0x57, flags: 0x0}, - 1038: {region: 0x165, script: 0x57, flags: 0x0}, - 1039: {region: 0x165, script: 0x57, flags: 0x0}, - 1040: {region: 0x165, script: 0x57, flags: 0x0}, - 1041: {region: 0x165, script: 0x57, flags: 0x0}, - 1042: {region: 0x111, script: 0x57, flags: 0x0}, - 1043: {region: 0x165, script: 0x57, flags: 0x0}, - 1044: {region: 0xe8, script: 0x5, flags: 0x0}, - 1045: {region: 0x165, script: 0x57, flags: 0x0}, - 1046: {region: 0x10f, script: 0x57, flags: 0x0}, - 1047: {region: 0x165, script: 0x57, flags: 0x0}, - 1048: {region: 0xe9, script: 0x57, flags: 0x0}, - 1049: {region: 0x165, script: 0x57, flags: 0x0}, - 1050: {region: 0x95, script: 0x57, flags: 0x0}, - 1051: {region: 0x142, script: 0x57, flags: 0x0}, - 1052: {region: 0x10c, script: 0x57, flags: 0x0}, - 1054: {region: 0x10c, script: 0x57, flags: 0x0}, - 1055: {region: 0x72, script: 0x57, flags: 0x0}, - 1056: {region: 0x97, script: 0xc0, flags: 0x0}, - 1057: {region: 0x165, script: 0x57, flags: 0x0}, - 1058: {region: 0x72, script: 0x57, flags: 0x0}, - 1059: {region: 0x164, script: 0x57, flags: 0x0}, - 1060: {region: 0x165, script: 0x57, flags: 0x0}, - 1061: {region: 0xc3, script: 0x57, flags: 0x0}, - 1062: {region: 0x165, script: 0x57, flags: 0x0}, - 1063: {region: 0x165, script: 0x57, flags: 0x0}, - 1064: {region: 0x165, script: 0x57, flags: 0x0}, - 1065: {region: 0x115, script: 0x57, flags: 0x0}, - 1066: {region: 0x165, script: 0x57, flags: 0x0}, - 1067: {region: 0x165, script: 0x57, flags: 0x0}, - 1068: {region: 0x123, script: 0xdf, flags: 0x0}, - 1069: {region: 0x165, script: 0x57, flags: 0x0}, - 1070: {region: 0x165, script: 0x57, flags: 0x0}, - 1071: {region: 0x165, script: 0x57, flags: 0x0}, - 1072: {region: 0x165, script: 0x57, flags: 0x0}, - 1073: {region: 0x27, script: 0x57, flags: 0x0}, - 1074: {region: 0x37, script: 0x5, flags: 0x1}, - 1075: {region: 0x99, script: 0xcb, flags: 0x0}, - 1076: {region: 0x116, script: 0x57, flags: 0x0}, - 1077: {region: 0x114, script: 0x57, flags: 0x0}, - 1078: {region: 0x99, script: 0x21, flags: 0x0}, - 1079: {region: 0x161, script: 0x57, flags: 0x0}, - 1080: {region: 0x165, script: 0x57, flags: 0x0}, - 1081: {region: 0x165, script: 0x57, flags: 0x0}, - 1082: {region: 0x6d, script: 0x57, flags: 0x0}, - 1083: {region: 0x161, script: 0x57, flags: 0x0}, - 1084: {region: 0x165, script: 0x57, flags: 0x0}, - 1085: {region: 0x60, script: 0x57, flags: 0x0}, - 1086: {region: 0x95, script: 0x57, flags: 0x0}, - 1087: {region: 0x165, script: 0x57, flags: 0x0}, - 1088: {region: 0x165, script: 0x57, flags: 0x0}, - 1089: {region: 0x12f, script: 0x57, flags: 0x0}, - 1090: {region: 0x165, script: 0x57, flags: 0x0}, - 1091: {region: 0x84, script: 0x57, flags: 0x0}, - 1092: {region: 0x10c, script: 0x57, flags: 0x0}, - 1093: {region: 0x12f, script: 0x57, flags: 0x0}, - 1094: {region: 0x15f, script: 0x5, flags: 0x0}, - 1095: {region: 0x4b, script: 0x57, flags: 0x0}, - 1096: {region: 0x60, script: 0x57, flags: 0x0}, - 1097: {region: 0x165, script: 0x57, flags: 0x0}, - 1098: {region: 0x99, script: 0x21, flags: 0x0}, - 1099: {region: 0x95, script: 0x57, flags: 0x0}, - 1100: {region: 0x165, script: 0x57, flags: 0x0}, - 1101: {region: 0x35, script: 0xe, flags: 0x0}, - 1102: {region: 0x9b, script: 0xcf, flags: 0x0}, - 1103: {region: 0xe9, script: 0x57, flags: 0x0}, - 1104: {region: 0x99, script: 0xd7, flags: 0x0}, - 1105: {region: 0xdb, script: 0x21, flags: 0x0}, - 1106: {region: 0x165, script: 0x57, flags: 0x0}, - 1107: {region: 0x165, script: 0x57, flags: 0x0}, - 1108: {region: 0x165, script: 0x57, flags: 0x0}, - 1109: {region: 0x165, script: 0x57, flags: 0x0}, - 1110: {region: 0x165, script: 0x57, flags: 0x0}, - 1111: {region: 0x165, script: 0x57, flags: 0x0}, - 1112: {region: 0x165, script: 0x57, flags: 0x0}, - 1113: {region: 0x165, script: 0x57, flags: 0x0}, - 1114: {region: 0xe7, script: 0x57, flags: 0x0}, - 1115: {region: 0x165, script: 0x57, flags: 0x0}, - 1116: {region: 0x165, script: 0x57, flags: 0x0}, - 1117: {region: 0x99, script: 0x4f, flags: 0x0}, - 1118: {region: 0x53, script: 0xd5, flags: 0x0}, - 1119: {region: 0xdb, script: 0x21, flags: 0x0}, - 1120: {region: 0xdb, script: 0x21, flags: 0x0}, - 1121: {region: 0x99, script: 0xda, flags: 0x0}, - 1122: {region: 0x165, script: 0x57, flags: 0x0}, - 1123: {region: 0x112, script: 0x57, flags: 0x0}, - 1124: {region: 0x131, script: 0x57, flags: 0x0}, - 1125: {region: 0x126, script: 0x57, flags: 0x0}, - 1126: {region: 0x165, script: 0x57, flags: 0x0}, - 1127: {region: 0x3c, script: 0x3, flags: 0x1}, - 1128: {region: 0x165, script: 0x57, flags: 0x0}, - 1129: {region: 0x165, script: 0x57, flags: 0x0}, - 1130: {region: 0x165, script: 0x57, flags: 0x0}, - 1131: {region: 0x123, script: 0xdf, flags: 0x0}, - 1132: {region: 0xdb, script: 0x21, flags: 0x0}, - 1133: {region: 0xdb, script: 0x21, flags: 0x0}, - 1134: {region: 0xdb, script: 0x21, flags: 0x0}, - 1135: {region: 0x6f, script: 0x29, flags: 0x0}, - 1136: {region: 0x165, script: 0x57, flags: 0x0}, - 1137: {region: 0x6d, script: 0x29, flags: 0x0}, - 1138: {region: 0x165, script: 0x57, flags: 0x0}, - 1139: {region: 0x165, script: 0x57, flags: 0x0}, - 1140: {region: 0x165, script: 0x57, flags: 0x0}, - 1141: {region: 0xd6, script: 0x57, flags: 0x0}, - 1142: {region: 0x127, script: 0x57, flags: 0x0}, - 1143: {region: 0x125, script: 0x57, flags: 0x0}, - 1144: {region: 0x32, script: 0x57, flags: 0x0}, - 1145: {region: 0xdb, script: 0x21, flags: 0x0}, - 1146: {region: 0xe7, script: 0x57, flags: 0x0}, - 1147: {region: 0x165, script: 0x57, flags: 0x0}, - 1148: {region: 0x165, script: 0x57, flags: 0x0}, - 1149: {region: 0x32, script: 0x57, flags: 0x0}, - 1150: {region: 0xd4, script: 0x57, flags: 0x0}, - 1151: {region: 0x165, script: 0x57, flags: 0x0}, - 1152: {region: 0x161, script: 0x57, flags: 0x0}, - 1153: {region: 0x165, script: 0x57, flags: 0x0}, - 1154: {region: 0x129, script: 0x57, flags: 0x0}, - 1155: {region: 0x165, script: 0x57, flags: 0x0}, - 1156: {region: 0xce, script: 0x57, flags: 0x0}, - 1157: {region: 0x165, script: 0x57, flags: 0x0}, - 1158: {region: 0xe6, script: 0x57, flags: 0x0}, - 1159: {region: 0x165, script: 0x57, flags: 0x0}, - 1160: {region: 0x165, script: 0x57, flags: 0x0}, - 1161: {region: 0x165, script: 0x57, flags: 0x0}, - 1162: {region: 0x12b, script: 0x57, flags: 0x0}, - 1163: {region: 0x12b, script: 0x57, flags: 0x0}, - 1164: {region: 0x12e, script: 0x57, flags: 0x0}, - 1165: {region: 0x165, script: 0x5, flags: 0x0}, - 1166: {region: 0x161, script: 0x57, flags: 0x0}, - 1167: {region: 0x87, script: 0x31, flags: 0x0}, - 1168: {region: 0xdb, script: 0x21, flags: 0x0}, - 1169: {region: 0xe7, script: 0x57, flags: 0x0}, - 1170: {region: 0x43, script: 0xe0, flags: 0x0}, - 1171: {region: 0x165, script: 0x57, flags: 0x0}, - 1172: {region: 0x106, script: 0x1f, flags: 0x0}, - 1173: {region: 0x165, script: 0x57, flags: 0x0}, - 1174: {region: 0x165, script: 0x57, flags: 0x0}, - 1175: {region: 0x131, script: 0x57, flags: 0x0}, - 1176: {region: 0x165, script: 0x57, flags: 0x0}, - 1177: {region: 0x123, script: 0xdf, flags: 0x0}, - 1178: {region: 0x32, script: 0x57, flags: 0x0}, - 1179: {region: 0x165, script: 0x57, flags: 0x0}, - 1180: {region: 0x165, script: 0x57, flags: 0x0}, - 1181: {region: 0xce, script: 0x57, flags: 0x0}, - 1182: {region: 0x165, script: 0x57, flags: 0x0}, - 1183: {region: 0x165, script: 0x57, flags: 0x0}, - 1184: {region: 0x12d, script: 0x57, flags: 0x0}, - 1185: {region: 0x165, script: 0x57, flags: 0x0}, - 1187: {region: 0x165, script: 0x57, flags: 0x0}, - 1188: {region: 0xd4, script: 0x57, flags: 0x0}, - 1189: {region: 0x53, script: 0xd8, flags: 0x0}, - 1190: {region: 0xe5, script: 0x57, flags: 0x0}, - 1191: {region: 0x165, script: 0x57, flags: 0x0}, - 1192: {region: 0x106, script: 0x1f, flags: 0x0}, - 1193: {region: 0xba, script: 0x57, flags: 0x0}, - 1194: {region: 0x165, script: 0x57, flags: 0x0}, - 1195: {region: 0x106, script: 0x1f, flags: 0x0}, - 1196: {region: 0x3f, script: 0x4, flags: 0x1}, - 1197: {region: 0x11c, script: 0xe2, flags: 0x0}, - 1198: {region: 0x130, script: 0x1f, flags: 0x0}, - 1199: {region: 0x75, script: 0x57, flags: 0x0}, - 1200: {region: 0x2a, script: 0x57, flags: 0x0}, - 1202: {region: 0x43, script: 0x3, flags: 0x1}, - 1203: {region: 0x99, script: 0xe, flags: 0x0}, - 1204: {region: 0xe8, script: 0x5, flags: 0x0}, - 1205: {region: 0x165, script: 0x57, flags: 0x0}, - 1206: {region: 0x165, script: 0x57, flags: 0x0}, - 1207: {region: 0x165, script: 0x57, flags: 0x0}, - 1208: {region: 0x165, script: 0x57, flags: 0x0}, - 1209: {region: 0x165, script: 0x57, flags: 0x0}, - 1210: {region: 0x165, script: 0x57, flags: 0x0}, - 1211: {region: 0x165, script: 0x57, flags: 0x0}, - 1212: {region: 0x46, script: 0x4, flags: 0x1}, - 1213: {region: 0x165, script: 0x57, flags: 0x0}, - 1214: {region: 0xb4, script: 0xe3, flags: 0x0}, - 1215: {region: 0x165, script: 0x57, flags: 0x0}, - 1216: {region: 0x161, script: 0x57, flags: 0x0}, - 1217: {region: 0x9e, script: 0x57, flags: 0x0}, - 1218: {region: 0x106, script: 0x57, flags: 0x0}, - 1219: {region: 0x13e, script: 0x57, flags: 0x0}, - 1220: {region: 0x11b, script: 0x57, flags: 0x0}, - 1221: {region: 0x165, script: 0x57, flags: 0x0}, - 1222: {region: 0x36, script: 0x57, flags: 0x0}, - 1223: {region: 0x60, script: 0x57, flags: 0x0}, - 1224: {region: 0xd1, script: 0x57, flags: 0x0}, - 1225: {region: 0x1, script: 0x57, flags: 0x0}, - 1226: {region: 0x106, script: 0x57, flags: 0x0}, - 1227: {region: 0x6a, script: 0x57, flags: 0x0}, - 1228: {region: 0x12f, script: 0x57, flags: 0x0}, - 1229: {region: 0x165, script: 0x57, flags: 0x0}, - 1230: {region: 0x36, script: 0x57, flags: 0x0}, - 1231: {region: 0x4e, script: 0x57, flags: 0x0}, - 1232: {region: 0x165, script: 0x57, flags: 0x0}, - 1233: {region: 0x6f, script: 0x29, flags: 0x0}, - 1234: {region: 0x165, script: 0x57, flags: 0x0}, - 1235: {region: 0xe7, script: 0x57, flags: 0x0}, - 1236: {region: 0x2f, script: 0x57, flags: 0x0}, - 1237: {region: 0x99, script: 0xda, flags: 0x0}, - 1238: {region: 0x99, script: 0x21, flags: 0x0}, - 1239: {region: 0x165, script: 0x57, flags: 0x0}, - 1240: {region: 0x165, script: 0x57, flags: 0x0}, - 1241: {region: 0x165, script: 0x57, flags: 0x0}, - 1242: {region: 0x165, script: 0x57, flags: 0x0}, - 1243: {region: 0x165, script: 0x57, flags: 0x0}, - 1244: {region: 0x165, script: 0x57, flags: 0x0}, - 1245: {region: 0x165, script: 0x57, flags: 0x0}, - 1246: {region: 0x165, script: 0x57, flags: 0x0}, - 1247: {region: 0x165, script: 0x57, flags: 0x0}, - 1248: {region: 0x140, script: 0x57, flags: 0x0}, - 1249: {region: 0x165, script: 0x57, flags: 0x0}, - 1250: {region: 0x165, script: 0x57, flags: 0x0}, - 1251: {region: 0xa8, script: 0x5, flags: 0x0}, - 1252: {region: 0x165, script: 0x57, flags: 0x0}, - 1253: {region: 0x114, script: 0x57, flags: 0x0}, - 1254: {region: 0x165, script: 0x57, flags: 0x0}, - 1255: {region: 0x165, script: 0x57, flags: 0x0}, - 1256: {region: 0x165, script: 0x57, flags: 0x0}, - 1257: {region: 0x165, script: 0x57, flags: 0x0}, - 1258: {region: 0x99, script: 0x21, flags: 0x0}, - 1259: {region: 0x53, script: 0x38, flags: 0x0}, - 1260: {region: 0x165, script: 0x57, flags: 0x0}, - 1261: {region: 0x165, script: 0x57, flags: 0x0}, - 1262: {region: 0x41, script: 0x57, flags: 0x0}, - 1263: {region: 0x165, script: 0x57, flags: 0x0}, - 1264: {region: 0x12b, script: 0x18, flags: 0x0}, - 1265: {region: 0x165, script: 0x57, flags: 0x0}, - 1266: {region: 0x161, script: 0x57, flags: 0x0}, - 1267: {region: 0x165, script: 0x57, flags: 0x0}, - 1268: {region: 0x12b, script: 0x5f, flags: 0x0}, - 1269: {region: 0x12b, script: 0x60, flags: 0x0}, - 1270: {region: 0x7d, script: 0x2b, flags: 0x0}, - 1271: {region: 0x53, script: 0x64, flags: 0x0}, - 1272: {region: 0x10b, script: 0x69, flags: 0x0}, - 1273: {region: 0x108, script: 0x73, flags: 0x0}, - 1274: {region: 0x99, script: 0x21, flags: 0x0}, - 1275: {region: 0x131, script: 0x57, flags: 0x0}, - 1276: {region: 0x165, script: 0x57, flags: 0x0}, - 1277: {region: 0x9c, script: 0x8a, flags: 0x0}, - 1278: {region: 0x165, script: 0x57, flags: 0x0}, - 1279: {region: 0x15e, script: 0xc2, flags: 0x0}, - 1280: {region: 0x165, script: 0x57, flags: 0x0}, - 1281: {region: 0x165, script: 0x57, flags: 0x0}, - 1282: {region: 0xdb, script: 0x21, flags: 0x0}, - 1283: {region: 0x165, script: 0x57, flags: 0x0}, - 1284: {region: 0x165, script: 0x57, flags: 0x0}, - 1285: {region: 0xd1, script: 0x57, flags: 0x0}, - 1286: {region: 0x75, script: 0x57, flags: 0x0}, - 1287: {region: 0x165, script: 0x57, flags: 0x0}, - 1288: {region: 0x165, script: 0x57, flags: 0x0}, - 1289: {region: 0x52, script: 0x57, flags: 0x0}, - 1290: {region: 0x165, script: 0x57, flags: 0x0}, - 1291: {region: 0x165, script: 0x57, flags: 0x0}, - 1292: {region: 0x165, script: 0x57, flags: 0x0}, - 1293: {region: 0x52, script: 0x57, flags: 0x0}, - 1294: {region: 0x165, script: 0x57, flags: 0x0}, - 1295: {region: 0x165, script: 0x57, flags: 0x0}, - 1296: {region: 0x165, script: 0x57, flags: 0x0}, - 1297: {region: 0x165, script: 0x57, flags: 0x0}, - 1298: {region: 0x1, script: 0x3b, flags: 0x0}, - 1299: {region: 0x165, script: 0x57, flags: 0x0}, - 1300: {region: 0x165, script: 0x57, flags: 0x0}, - 1301: {region: 0x165, script: 0x57, flags: 0x0}, - 1302: {region: 0x165, script: 0x57, flags: 0x0}, - 1303: {region: 0x165, script: 0x57, flags: 0x0}, - 1304: {region: 0xd6, script: 0x57, flags: 0x0}, - 1305: {region: 0x165, script: 0x57, flags: 0x0}, - 1306: {region: 0x165, script: 0x57, flags: 0x0}, - 1307: {region: 0x165, script: 0x57, flags: 0x0}, - 1308: {region: 0x41, script: 0x57, flags: 0x0}, - 1309: {region: 0x165, script: 0x57, flags: 0x0}, - 1310: {region: 0xcf, script: 0x57, flags: 0x0}, - 1311: {region: 0x4a, script: 0x3, flags: 0x1}, - 1312: {region: 0x165, script: 0x57, flags: 0x0}, - 1313: {region: 0x165, script: 0x57, flags: 0x0}, - 1314: {region: 0x165, script: 0x57, flags: 0x0}, - 1315: {region: 0x53, script: 0x57, flags: 0x0}, - 1316: {region: 0x10b, script: 0x57, flags: 0x0}, - 1318: {region: 0xa8, script: 0x5, flags: 0x0}, - 1319: {region: 0xd9, script: 0x57, flags: 0x0}, - 1320: {region: 0xba, script: 0xdc, flags: 0x0}, - 1321: {region: 0x4d, script: 0x14, flags: 0x1}, - 1322: {region: 0x53, script: 0x79, flags: 0x0}, - 1323: {region: 0x165, script: 0x57, flags: 0x0}, - 1324: {region: 0x122, script: 0x57, flags: 0x0}, - 1325: {region: 0xd0, script: 0x57, flags: 0x0}, - 1326: {region: 0x165, script: 0x57, flags: 0x0}, - 1327: {region: 0x161, script: 0x57, flags: 0x0}, - 1329: {region: 0x12b, script: 0x57, flags: 0x0}, -} - -// likelyLangList holds lists info associated with likelyLang. -// Size: 388 bytes, 97 elements -var likelyLangList = [97]likelyScriptRegion{ - 0: {region: 0x9c, script: 0x7, flags: 0x0}, - 1: {region: 0xa1, script: 0x74, flags: 0x2}, - 2: {region: 0x11c, script: 0x80, flags: 0x2}, - 3: {region: 0x32, script: 0x57, flags: 0x0}, - 4: {region: 0x9b, script: 0x5, flags: 0x4}, - 5: {region: 0x9c, script: 0x5, flags: 0x4}, - 6: {region: 0x106, script: 0x1f, flags: 0x4}, - 7: {region: 0x9c, script: 0x5, flags: 0x2}, - 8: {region: 0x106, script: 0x1f, flags: 0x0}, - 9: {region: 0x38, script: 0x2c, flags: 0x2}, - 10: {region: 0x135, script: 0x57, flags: 0x0}, - 11: {region: 0x7b, script: 0xc5, flags: 0x2}, - 12: {region: 0x114, script: 0x57, flags: 0x0}, - 13: {region: 0x84, script: 0x1, flags: 0x2}, - 14: {region: 0x5d, script: 0x1e, flags: 0x0}, - 15: {region: 0x87, script: 0x5c, flags: 0x2}, - 16: {region: 0xd6, script: 0x57, flags: 0x0}, - 17: {region: 0x52, script: 0x5, flags: 0x4}, - 18: {region: 0x10b, script: 0x5, flags: 0x4}, - 19: {region: 0xae, script: 0x1f, flags: 0x0}, - 20: {region: 0x24, script: 0x5, flags: 0x4}, - 21: {region: 0x53, script: 0x5, flags: 0x4}, - 22: {region: 0x9c, script: 0x5, flags: 0x4}, - 23: {region: 0xc5, script: 0x5, flags: 0x4}, - 24: {region: 0x53, script: 0x5, flags: 0x2}, - 25: {region: 0x12b, script: 0x57, flags: 0x0}, - 26: {region: 0xb0, script: 0x5, flags: 0x4}, - 27: {region: 0x9b, script: 0x5, flags: 0x2}, - 28: {region: 0xa5, script: 0x1f, flags: 0x0}, - 29: {region: 0x53, script: 0x5, flags: 0x4}, - 30: {region: 0x12b, script: 0x57, flags: 0x4}, - 31: {region: 0x53, script: 0x5, flags: 0x2}, - 32: {region: 0x12b, script: 0x57, flags: 0x2}, - 33: {region: 0xdb, script: 0x21, flags: 0x0}, - 34: {region: 0x99, script: 0x5a, flags: 0x2}, - 35: {region: 0x83, script: 0x57, flags: 0x0}, - 36: {region: 0x84, script: 0x78, flags: 0x4}, - 37: {region: 0x84, script: 0x78, flags: 0x2}, - 38: {region: 0xc5, script: 0x1f, flags: 0x0}, - 39: {region: 0x53, script: 0x6d, flags: 0x4}, - 40: {region: 0x53, script: 0x6d, flags: 0x2}, - 41: {region: 0xd0, script: 0x57, flags: 0x0}, - 42: {region: 0x4a, script: 0x5, flags: 0x4}, - 43: {region: 0x95, script: 0x5, flags: 0x4}, - 44: {region: 0x99, script: 0x33, flags: 0x0}, - 45: {region: 0xe8, script: 0x5, flags: 0x4}, - 46: {region: 0xe8, script: 0x5, flags: 0x2}, - 47: {region: 0x9c, script: 0x84, flags: 0x0}, - 48: {region: 0x53, script: 0x85, flags: 0x2}, - 49: {region: 0xba, script: 0xdc, flags: 0x0}, - 50: {region: 0xd9, script: 0x57, flags: 0x4}, - 51: {region: 0xe8, script: 0x5, flags: 0x0}, - 52: {region: 0x99, script: 0x21, flags: 0x2}, - 53: {region: 0x99, script: 0x4c, flags: 0x2}, - 54: {region: 0x99, script: 0xc9, flags: 0x2}, - 55: {region: 0x105, script: 0x1f, flags: 0x0}, - 56: {region: 0xbd, script: 0x57, flags: 0x4}, - 57: {region: 0x104, script: 0x57, flags: 0x4}, - 58: {region: 0x106, script: 0x57, flags: 0x4}, - 59: {region: 0x12b, script: 0x57, flags: 0x4}, - 60: {region: 0x124, script: 0x1f, flags: 0x0}, - 61: {region: 0xe8, script: 0x5, flags: 0x4}, - 62: {region: 0xe8, script: 0x5, flags: 0x2}, - 63: {region: 0x53, script: 0x5, flags: 0x0}, - 64: {region: 0xae, script: 0x1f, flags: 0x4}, - 65: {region: 0xc5, script: 0x1f, flags: 0x4}, - 66: {region: 0xae, script: 0x1f, flags: 0x2}, - 67: {region: 0x99, script: 0xe, flags: 0x0}, - 68: {region: 0xdb, script: 0x21, flags: 0x4}, - 69: {region: 0xdb, script: 0x21, flags: 0x2}, - 70: {region: 0x137, script: 0x57, flags: 0x0}, - 71: {region: 0x24, script: 0x5, flags: 0x4}, - 72: {region: 0x53, script: 0x1f, flags: 0x4}, - 73: {region: 0x24, script: 0x5, flags: 0x2}, - 74: {region: 0x8d, script: 0x39, flags: 0x0}, - 75: {region: 0x53, script: 0x38, flags: 0x4}, - 76: {region: 0x53, script: 0x38, flags: 0x2}, - 77: {region: 0x53, script: 0x38, flags: 0x0}, - 78: {region: 0x2f, script: 0x39, flags: 0x4}, - 79: {region: 0x3e, script: 0x39, flags: 0x4}, - 80: {region: 0x7b, script: 0x39, flags: 0x4}, - 81: {region: 0x7e, script: 0x39, flags: 0x4}, - 82: {region: 0x8d, script: 0x39, flags: 0x4}, - 83: {region: 0x95, script: 0x39, flags: 0x4}, - 84: {region: 0xc6, script: 0x39, flags: 0x4}, - 85: {region: 0xd0, script: 0x39, flags: 0x4}, - 86: {region: 0xe2, script: 0x39, flags: 0x4}, - 87: {region: 0xe5, script: 0x39, flags: 0x4}, - 88: {region: 0xe7, script: 0x39, flags: 0x4}, - 89: {region: 0x116, script: 0x39, flags: 0x4}, - 90: {region: 0x123, script: 0x39, flags: 0x4}, - 91: {region: 0x12e, script: 0x39, flags: 0x4}, - 92: {region: 0x135, script: 0x39, flags: 0x4}, - 93: {region: 0x13e, script: 0x39, flags: 0x4}, - 94: {region: 0x12e, script: 0x11, flags: 0x2}, - 95: {region: 0x12e, script: 0x34, flags: 0x2}, - 96: {region: 0x12e, script: 0x39, flags: 0x2}, -} - -type likelyLangScript struct { - lang uint16 - script uint8 - flags uint8 -} - -// 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. -// Size: 1432 bytes, 358 elements -var likelyRegion = [358]likelyLangScript{ - 34: {lang: 0xd7, script: 0x57, flags: 0x0}, - 35: {lang: 0x3a, script: 0x5, flags: 0x0}, - 36: {lang: 0x0, script: 0x2, flags: 0x1}, - 39: {lang: 0x2, script: 0x2, flags: 0x1}, - 40: {lang: 0x4, script: 0x2, flags: 0x1}, - 42: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 43: {lang: 0x0, script: 0x57, flags: 0x0}, - 44: {lang: 0x13e, script: 0x57, flags: 0x0}, - 45: {lang: 0x41b, script: 0x57, flags: 0x0}, - 46: {lang: 0x10d, script: 0x57, flags: 0x0}, - 48: {lang: 0x367, script: 0x57, flags: 0x0}, - 49: {lang: 0x444, script: 0x57, flags: 0x0}, - 50: {lang: 0x58, script: 0x57, flags: 0x0}, - 51: {lang: 0x6, script: 0x2, flags: 0x1}, - 53: {lang: 0xa5, script: 0xe, flags: 0x0}, - 54: {lang: 0x367, script: 0x57, flags: 0x0}, - 55: {lang: 0x15e, script: 0x57, flags: 0x0}, - 56: {lang: 0x7e, script: 0x1f, flags: 0x0}, - 57: {lang: 0x3a, script: 0x5, flags: 0x0}, - 58: {lang: 0x3d9, script: 0x57, flags: 0x0}, - 59: {lang: 0x15e, script: 0x57, flags: 0x0}, - 60: {lang: 0x15e, script: 0x57, flags: 0x0}, - 62: {lang: 0x31f, script: 0x57, flags: 0x0}, - 63: {lang: 0x13e, script: 0x57, flags: 0x0}, - 64: {lang: 0x3a1, script: 0x57, flags: 0x0}, - 65: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 67: {lang: 0x8, script: 0x2, flags: 0x1}, - 69: {lang: 0x0, script: 0x57, flags: 0x0}, - 71: {lang: 0x71, script: 0x1f, flags: 0x0}, - 73: {lang: 0x512, script: 0x3b, flags: 0x2}, - 74: {lang: 0x31f, script: 0x5, flags: 0x2}, - 75: {lang: 0x445, script: 0x57, flags: 0x0}, - 76: {lang: 0x15e, script: 0x57, flags: 0x0}, - 77: {lang: 0x15e, script: 0x57, flags: 0x0}, - 78: {lang: 0x10d, script: 0x57, flags: 0x0}, - 79: {lang: 0x15e, script: 0x57, flags: 0x0}, - 81: {lang: 0x13e, script: 0x57, flags: 0x0}, - 82: {lang: 0x15e, script: 0x57, flags: 0x0}, - 83: {lang: 0xa, script: 0x4, flags: 0x1}, - 84: {lang: 0x13e, script: 0x57, flags: 0x0}, - 85: {lang: 0x0, script: 0x57, flags: 0x0}, - 86: {lang: 0x13e, script: 0x57, flags: 0x0}, - 89: {lang: 0x13e, script: 0x57, flags: 0x0}, - 90: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 91: {lang: 0x3a1, script: 0x57, flags: 0x0}, - 93: {lang: 0xe, script: 0x2, flags: 0x1}, - 94: {lang: 0xfa, script: 0x57, flags: 0x0}, - 96: {lang: 0x10d, script: 0x57, flags: 0x0}, - 98: {lang: 0x1, script: 0x57, flags: 0x0}, - 99: {lang: 0x101, script: 0x57, flags: 0x0}, - 101: {lang: 0x13e, script: 0x57, flags: 0x0}, - 103: {lang: 0x10, script: 0x2, flags: 0x1}, - 104: {lang: 0x13e, script: 0x57, flags: 0x0}, - 105: {lang: 0x13e, script: 0x57, flags: 0x0}, - 106: {lang: 0x140, script: 0x57, flags: 0x0}, - 107: {lang: 0x3a, script: 0x5, flags: 0x0}, - 108: {lang: 0x3a, script: 0x5, flags: 0x0}, - 109: {lang: 0x46f, script: 0x29, flags: 0x0}, - 110: {lang: 0x13e, script: 0x57, flags: 0x0}, - 111: {lang: 0x12, script: 0x2, flags: 0x1}, - 113: {lang: 0x10d, script: 0x57, flags: 0x0}, - 114: {lang: 0x151, script: 0x57, flags: 0x0}, - 115: {lang: 0x1c0, script: 0x21, flags: 0x2}, - 118: {lang: 0x158, script: 0x57, flags: 0x0}, - 120: {lang: 0x15e, script: 0x57, flags: 0x0}, - 122: {lang: 0x15e, script: 0x57, flags: 0x0}, - 123: {lang: 0x14, script: 0x2, flags: 0x1}, - 125: {lang: 0x16, script: 0x3, flags: 0x1}, - 126: {lang: 0x15e, script: 0x57, flags: 0x0}, - 128: {lang: 0x21, script: 0x57, flags: 0x0}, - 130: {lang: 0x245, script: 0x57, flags: 0x0}, - 132: {lang: 0x15e, script: 0x57, flags: 0x0}, - 133: {lang: 0x15e, script: 0x57, flags: 0x0}, - 134: {lang: 0x13e, script: 0x57, flags: 0x0}, - 135: {lang: 0x19, script: 0x2, flags: 0x1}, - 136: {lang: 0x0, script: 0x57, flags: 0x0}, - 137: {lang: 0x13e, script: 0x57, flags: 0x0}, - 139: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 141: {lang: 0x529, script: 0x39, flags: 0x0}, - 142: {lang: 0x0, script: 0x57, flags: 0x0}, - 143: {lang: 0x13e, script: 0x57, flags: 0x0}, - 144: {lang: 0x1d1, script: 0x57, flags: 0x0}, - 145: {lang: 0x1d4, script: 0x57, flags: 0x0}, - 146: {lang: 0x1d5, script: 0x57, flags: 0x0}, - 148: {lang: 0x13e, script: 0x57, flags: 0x0}, - 149: {lang: 0x1b, script: 0x2, flags: 0x1}, - 151: {lang: 0x1bc, script: 0x3b, flags: 0x0}, - 153: {lang: 0x1d, script: 0x3, flags: 0x1}, - 155: {lang: 0x3a, script: 0x5, flags: 0x0}, - 156: {lang: 0x20, script: 0x2, flags: 0x1}, - 157: {lang: 0x1f8, script: 0x57, flags: 0x0}, - 158: {lang: 0x1f9, script: 0x57, flags: 0x0}, - 161: {lang: 0x3a, script: 0x5, flags: 0x0}, - 162: {lang: 0x200, script: 0x46, flags: 0x0}, - 164: {lang: 0x445, script: 0x57, flags: 0x0}, - 165: {lang: 0x28a, script: 0x1f, flags: 0x0}, - 166: {lang: 0x22, script: 0x3, flags: 0x1}, - 168: {lang: 0x25, script: 0x2, flags: 0x1}, - 170: {lang: 0x254, script: 0x50, flags: 0x0}, - 171: {lang: 0x254, script: 0x50, flags: 0x0}, - 172: {lang: 0x3a, script: 0x5, flags: 0x0}, - 174: {lang: 0x3e2, script: 0x1f, flags: 0x0}, - 175: {lang: 0x27, script: 0x2, flags: 0x1}, - 176: {lang: 0x3a, script: 0x5, flags: 0x0}, - 178: {lang: 0x10d, script: 0x57, flags: 0x0}, - 179: {lang: 0x40c, script: 0xca, flags: 0x0}, - 181: {lang: 0x43b, script: 0x57, flags: 0x0}, - 182: {lang: 0x2c0, script: 0x57, flags: 0x0}, - 183: {lang: 0x15e, script: 0x57, flags: 0x0}, - 184: {lang: 0x2c7, script: 0x57, flags: 0x0}, - 185: {lang: 0x3a, script: 0x5, flags: 0x0}, - 186: {lang: 0x29, script: 0x2, flags: 0x1}, - 187: {lang: 0x15e, script: 0x57, flags: 0x0}, - 188: {lang: 0x2b, script: 0x2, flags: 0x1}, - 189: {lang: 0x432, script: 0x57, flags: 0x0}, - 190: {lang: 0x15e, script: 0x57, flags: 0x0}, - 191: {lang: 0x2f1, script: 0x57, flags: 0x0}, - 194: {lang: 0x2d, script: 0x2, flags: 0x1}, - 195: {lang: 0xa0, script: 0x57, flags: 0x0}, - 196: {lang: 0x2f, script: 0x2, flags: 0x1}, - 197: {lang: 0x31, script: 0x2, flags: 0x1}, - 198: {lang: 0x33, script: 0x2, flags: 0x1}, - 200: {lang: 0x15e, script: 0x57, flags: 0x0}, - 201: {lang: 0x35, script: 0x2, flags: 0x1}, - 203: {lang: 0x320, script: 0x57, flags: 0x0}, - 204: {lang: 0x37, script: 0x3, flags: 0x1}, - 205: {lang: 0x128, script: 0xde, flags: 0x0}, - 207: {lang: 0x13e, script: 0x57, flags: 0x0}, - 208: {lang: 0x31f, script: 0x57, flags: 0x0}, - 209: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 210: {lang: 0x16, script: 0x57, flags: 0x0}, - 211: {lang: 0x15e, script: 0x57, flags: 0x0}, - 212: {lang: 0x1b4, script: 0x57, flags: 0x0}, - 214: {lang: 0x1b4, script: 0x5, flags: 0x2}, - 216: {lang: 0x13e, script: 0x57, flags: 0x0}, - 217: {lang: 0x367, script: 0x57, flags: 0x0}, - 218: {lang: 0x347, script: 0x57, flags: 0x0}, - 219: {lang: 0x351, script: 0x21, flags: 0x0}, - 225: {lang: 0x3a, script: 0x5, flags: 0x0}, - 226: {lang: 0x13e, script: 0x57, flags: 0x0}, - 228: {lang: 0x13e, script: 0x57, flags: 0x0}, - 229: {lang: 0x15e, script: 0x57, flags: 0x0}, - 230: {lang: 0x486, script: 0x57, flags: 0x0}, - 231: {lang: 0x153, script: 0x57, flags: 0x0}, - 232: {lang: 0x3a, script: 0x3, flags: 0x1}, - 233: {lang: 0x3b3, script: 0x57, flags: 0x0}, - 234: {lang: 0x15e, script: 0x57, flags: 0x0}, - 236: {lang: 0x13e, script: 0x57, flags: 0x0}, - 237: {lang: 0x3a, script: 0x5, flags: 0x0}, - 238: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 240: {lang: 0x3a2, script: 0x57, flags: 0x0}, - 241: {lang: 0x194, script: 0x57, flags: 0x0}, - 243: {lang: 0x3a, script: 0x5, flags: 0x0}, - 258: {lang: 0x15e, script: 0x57, flags: 0x0}, - 260: {lang: 0x3d, script: 0x2, flags: 0x1}, - 261: {lang: 0x432, script: 0x1f, flags: 0x0}, - 262: {lang: 0x3f, script: 0x2, flags: 0x1}, - 263: {lang: 0x3e5, script: 0x57, flags: 0x0}, - 264: {lang: 0x3a, script: 0x5, flags: 0x0}, - 266: {lang: 0x15e, script: 0x57, flags: 0x0}, - 267: {lang: 0x3a, script: 0x5, flags: 0x0}, - 268: {lang: 0x41, script: 0x2, flags: 0x1}, - 271: {lang: 0x416, script: 0x57, flags: 0x0}, - 272: {lang: 0x347, script: 0x57, flags: 0x0}, - 273: {lang: 0x43, script: 0x2, flags: 0x1}, - 275: {lang: 0x1f9, script: 0x57, flags: 0x0}, - 276: {lang: 0x15e, script: 0x57, flags: 0x0}, - 277: {lang: 0x429, script: 0x57, flags: 0x0}, - 278: {lang: 0x367, script: 0x57, flags: 0x0}, - 280: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 282: {lang: 0x13e, script: 0x57, flags: 0x0}, - 284: {lang: 0x45, script: 0x2, flags: 0x1}, - 288: {lang: 0x15e, script: 0x57, flags: 0x0}, - 289: {lang: 0x15e, script: 0x57, flags: 0x0}, - 290: {lang: 0x47, script: 0x2, flags: 0x1}, - 291: {lang: 0x49, script: 0x3, flags: 0x1}, - 292: {lang: 0x4c, script: 0x2, flags: 0x1}, - 293: {lang: 0x477, script: 0x57, flags: 0x0}, - 294: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 295: {lang: 0x476, script: 0x57, flags: 0x0}, - 296: {lang: 0x4e, script: 0x2, flags: 0x1}, - 297: {lang: 0x482, script: 0x57, flags: 0x0}, - 299: {lang: 0x50, script: 0x4, flags: 0x1}, - 301: {lang: 0x4a0, script: 0x57, flags: 0x0}, - 302: {lang: 0x54, script: 0x2, flags: 0x1}, - 303: {lang: 0x445, script: 0x57, flags: 0x0}, - 304: {lang: 0x56, script: 0x3, flags: 0x1}, - 305: {lang: 0x445, script: 0x57, flags: 0x0}, - 309: {lang: 0x512, script: 0x3b, flags: 0x2}, - 310: {lang: 0x13e, script: 0x57, flags: 0x0}, - 311: {lang: 0x4bc, script: 0x57, flags: 0x0}, - 312: {lang: 0x1f9, script: 0x57, flags: 0x0}, - 315: {lang: 0x13e, script: 0x57, flags: 0x0}, - 318: {lang: 0x4c3, script: 0x57, flags: 0x0}, - 319: {lang: 0x8a, script: 0x57, flags: 0x0}, - 320: {lang: 0x15e, script: 0x57, flags: 0x0}, - 322: {lang: 0x41b, script: 0x57, flags: 0x0}, - 333: {lang: 0x59, script: 0x2, flags: 0x1}, - 350: {lang: 0x3a, script: 0x5, flags: 0x0}, - 351: {lang: 0x5b, script: 0x2, flags: 0x1}, - 356: {lang: 0x423, script: 0x57, flags: 0x0}, -} - -// likelyRegionList holds lists info associated with likelyRegion. -// Size: 372 bytes, 93 elements -var likelyRegionList = [93]likelyLangScript{ - 0: {lang: 0x148, script: 0x5, flags: 0x0}, - 1: {lang: 0x476, script: 0x57, flags: 0x0}, - 2: {lang: 0x431, script: 0x57, flags: 0x0}, - 3: {lang: 0x2ff, script: 0x1f, flags: 0x0}, - 4: {lang: 0x1d7, script: 0x8, flags: 0x0}, - 5: {lang: 0x274, script: 0x57, flags: 0x0}, - 6: {lang: 0xb7, script: 0x57, flags: 0x0}, - 7: {lang: 0x432, script: 0x1f, flags: 0x0}, - 8: {lang: 0x12d, script: 0xe0, flags: 0x0}, - 9: {lang: 0x351, script: 0x21, flags: 0x0}, - 10: {lang: 0x529, script: 0x38, flags: 0x0}, - 11: {lang: 0x4ac, script: 0x5, flags: 0x0}, - 12: {lang: 0x523, script: 0x57, flags: 0x0}, - 13: {lang: 0x29a, script: 0xdf, flags: 0x0}, - 14: {lang: 0x136, script: 0x31, flags: 0x0}, - 15: {lang: 0x48a, script: 0x57, flags: 0x0}, - 16: {lang: 0x3a, script: 0x5, flags: 0x0}, - 17: {lang: 0x15e, script: 0x57, flags: 0x0}, - 18: {lang: 0x27, script: 0x29, flags: 0x0}, - 19: {lang: 0x139, script: 0x57, flags: 0x0}, - 20: {lang: 0x26a, script: 0x5, flags: 0x2}, - 21: {lang: 0x512, script: 0x3b, flags: 0x2}, - 22: {lang: 0x210, script: 0x2b, flags: 0x0}, - 23: {lang: 0x5, script: 0x1f, flags: 0x0}, - 24: {lang: 0x274, script: 0x57, flags: 0x0}, - 25: {lang: 0x136, script: 0x31, flags: 0x0}, - 26: {lang: 0x2ff, script: 0x1f, flags: 0x0}, - 27: {lang: 0x1e1, script: 0x57, flags: 0x0}, - 28: {lang: 0x31f, script: 0x5, flags: 0x0}, - 29: {lang: 0x1be, script: 0x21, flags: 0x0}, - 30: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 31: {lang: 0x236, script: 0x72, flags: 0x0}, - 32: {lang: 0x148, script: 0x5, flags: 0x0}, - 33: {lang: 0x476, script: 0x57, flags: 0x0}, - 34: {lang: 0x24a, script: 0x4b, flags: 0x0}, - 35: {lang: 0xe6, script: 0x5, flags: 0x0}, - 36: {lang: 0x226, script: 0xdf, flags: 0x0}, - 37: {lang: 0x3a, script: 0x5, flags: 0x0}, - 38: {lang: 0x15e, script: 0x57, flags: 0x0}, - 39: {lang: 0x2b8, script: 0x54, flags: 0x0}, - 40: {lang: 0x226, script: 0xdf, flags: 0x0}, - 41: {lang: 0x3a, script: 0x5, flags: 0x0}, - 42: {lang: 0x15e, script: 0x57, flags: 0x0}, - 43: {lang: 0x3dc, script: 0x57, flags: 0x0}, - 44: {lang: 0x4ae, script: 0x1f, flags: 0x0}, - 45: {lang: 0x2ff, script: 0x1f, flags: 0x0}, - 46: {lang: 0x431, script: 0x57, flags: 0x0}, - 47: {lang: 0x331, script: 0x72, flags: 0x0}, - 48: {lang: 0x213, script: 0x57, flags: 0x0}, - 49: {lang: 0x30b, script: 0x1f, flags: 0x0}, - 50: {lang: 0x242, script: 0x5, flags: 0x0}, - 51: {lang: 0x529, script: 0x39, flags: 0x0}, - 52: {lang: 0x3c0, script: 0x57, flags: 0x0}, - 53: {lang: 0x3a, script: 0x5, flags: 0x0}, - 54: {lang: 0x15e, script: 0x57, flags: 0x0}, - 55: {lang: 0x2ed, script: 0x57, flags: 0x0}, - 56: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 57: {lang: 0x88, script: 0x21, flags: 0x0}, - 58: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 59: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 60: {lang: 0xbe, script: 0x21, flags: 0x0}, - 61: {lang: 0x3dc, script: 0x57, flags: 0x0}, - 62: {lang: 0x7e, script: 0x1f, flags: 0x0}, - 63: {lang: 0x3e2, script: 0x1f, flags: 0x0}, - 64: {lang: 0x267, script: 0x57, flags: 0x0}, - 65: {lang: 0x444, script: 0x57, flags: 0x0}, - 66: {lang: 0x512, script: 0x3b, flags: 0x0}, - 67: {lang: 0x412, script: 0x57, flags: 0x0}, - 68: {lang: 0x4ae, script: 0x1f, flags: 0x0}, - 69: {lang: 0x3a, script: 0x5, flags: 0x0}, - 70: {lang: 0x15e, script: 0x57, flags: 0x0}, - 71: {lang: 0x15e, script: 0x57, flags: 0x0}, - 72: {lang: 0x35, script: 0x5, flags: 0x0}, - 73: {lang: 0x46b, script: 0xdf, flags: 0x0}, - 74: {lang: 0x2ec, script: 0x5, flags: 0x0}, - 75: {lang: 0x30f, script: 0x72, flags: 0x0}, - 76: {lang: 0x467, script: 0x1f, flags: 0x0}, - 77: {lang: 0x148, script: 0x5, flags: 0x0}, - 78: {lang: 0x3a, script: 0x5, flags: 0x0}, - 79: {lang: 0x15e, script: 0x57, flags: 0x0}, - 80: {lang: 0x48a, script: 0x57, flags: 0x0}, - 81: {lang: 0x58, script: 0x5, flags: 0x0}, - 82: {lang: 0x219, script: 0x1f, flags: 0x0}, - 83: {lang: 0x81, script: 0x31, flags: 0x0}, - 84: {lang: 0x529, script: 0x39, flags: 0x0}, - 85: {lang: 0x48c, script: 0x57, flags: 0x0}, - 86: {lang: 0x4ae, script: 0x1f, flags: 0x0}, - 87: {lang: 0x512, script: 0x3b, flags: 0x0}, - 88: {lang: 0x3b3, script: 0x57, flags: 0x0}, - 89: {lang: 0x431, script: 0x57, flags: 0x0}, - 90: {lang: 0x432, script: 0x1f, flags: 0x0}, - 91: {lang: 0x15e, script: 0x57, flags: 0x0}, - 92: {lang: 0x446, script: 0x5, flags: 0x0}, -} - -type likelyTag struct { - lang uint16 - region uint16 - script uint8 -} - -// Size: 198 bytes, 33 elements -var likelyRegionGroup = [33]likelyTag{ - 1: {lang: 0x139, region: 0xd6, script: 0x57}, - 2: {lang: 0x139, region: 0x135, script: 0x57}, - 3: {lang: 0x3c0, region: 0x41, script: 0x57}, - 4: {lang: 0x139, region: 0x2f, script: 0x57}, - 5: {lang: 0x139, region: 0xd6, script: 0x57}, - 6: {lang: 0x13e, region: 0xcf, script: 0x57}, - 7: {lang: 0x445, region: 0x12f, script: 0x57}, - 8: {lang: 0x3a, region: 0x6b, script: 0x5}, - 9: {lang: 0x445, region: 0x4b, script: 0x57}, - 10: {lang: 0x139, region: 0x161, script: 0x57}, - 11: {lang: 0x139, region: 0x135, script: 0x57}, - 12: {lang: 0x139, region: 0x135, script: 0x57}, - 13: {lang: 0x13e, region: 0x59, script: 0x57}, - 14: {lang: 0x529, region: 0x53, script: 0x38}, - 15: {lang: 0x1be, region: 0x99, script: 0x21}, - 16: {lang: 0x1e1, region: 0x95, script: 0x57}, - 17: {lang: 0x1f9, region: 0x9e, script: 0x57}, - 18: {lang: 0x139, region: 0x2f, script: 0x57}, - 19: {lang: 0x139, region: 0xe6, script: 0x57}, - 20: {lang: 0x139, region: 0x8a, script: 0x57}, - 21: {lang: 0x41b, region: 0x142, script: 0x57}, - 22: {lang: 0x529, region: 0x53, script: 0x38}, - 23: {lang: 0x4bc, region: 0x137, script: 0x57}, - 24: {lang: 0x3a, region: 0x108, script: 0x5}, - 25: {lang: 0x3e2, region: 0x106, script: 0x1f}, - 26: {lang: 0x3e2, region: 0x106, script: 0x1f}, - 27: {lang: 0x139, region: 0x7b, script: 0x57}, - 28: {lang: 0x10d, region: 0x60, script: 0x57}, - 29: {lang: 0x139, region: 0xd6, script: 0x57}, - 30: {lang: 0x13e, region: 0x1f, script: 0x57}, - 31: {lang: 0x139, region: 0x9a, script: 0x57}, - 32: {lang: 0x139, region: 0x7b, script: 0x57}, -} - -// Size: 264 bytes, 33 elements -var regionContainment = [33]uint64{ - // Entry 0 - 1F - 0x00000001ffffffff, 0x00000000200007a2, 0x0000000000003044, 0x0000000000000008, - 0x00000000803c0010, 0x0000000000000020, 0x0000000000000040, 0x0000000000000080, - 0x0000000000000100, 0x0000000000000200, 0x0000000000000400, 0x000000004000384c, - 0x0000000000001000, 0x0000000000002000, 0x0000000000004000, 0x0000000000008000, - 0x0000000000010000, 0x0000000000020000, 0x0000000000040000, 0x0000000000080000, - 0x0000000000100000, 0x0000000000200000, 0x0000000001c1c000, 0x0000000000800000, - 0x0000000001000000, 0x000000001e020000, 0x0000000004000000, 0x0000000008000000, - 0x0000000010000000, 0x00000000200006a0, 0x0000000040002048, 0x0000000080000000, - // Entry 20 - 3F - 0x0000000100000000, -} - -// 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. -// Size: 358 bytes, 358 elements -var regionInclusion = [358]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x26, 0x23, - 0x24, 0x26, 0x27, 0x22, 0x28, 0x29, 0x2a, 0x2b, - 0x26, 0x2c, 0x24, 0x23, 0x26, 0x25, 0x2a, 0x2d, - 0x2e, 0x24, 0x2f, 0x2d, 0x26, 0x30, 0x31, 0x28, - // Entry 40 - 7F - 0x26, 0x28, 0x26, 0x25, 0x31, 0x22, 0x32, 0x33, - 0x34, 0x30, 0x22, 0x27, 0x27, 0x27, 0x35, 0x2d, - 0x29, 0x28, 0x27, 0x36, 0x28, 0x22, 0x34, 0x23, - 0x21, 0x26, 0x2d, 0x26, 0x22, 0x37, 0x2e, 0x35, - 0x2a, 0x22, 0x2f, 0x38, 0x26, 0x26, 0x21, 0x39, - 0x39, 0x28, 0x38, 0x39, 0x39, 0x2f, 0x3a, 0x2f, - 0x20, 0x21, 0x38, 0x3b, 0x28, 0x3c, 0x2c, 0x21, - 0x2a, 0x35, 0x27, 0x38, 0x26, 0x24, 0x28, 0x2c, - // Entry 80 - BF - 0x2d, 0x23, 0x30, 0x2d, 0x2d, 0x26, 0x27, 0x3a, - 0x22, 0x34, 0x3c, 0x2d, 0x28, 0x36, 0x22, 0x34, - 0x3a, 0x26, 0x2e, 0x21, 0x39, 0x31, 0x38, 0x24, - 0x2c, 0x25, 0x22, 0x24, 0x25, 0x2c, 0x3a, 0x2c, - 0x26, 0x24, 0x36, 0x21, 0x2f, 0x3d, 0x31, 0x3c, - 0x2f, 0x26, 0x36, 0x36, 0x24, 0x26, 0x3d, 0x31, - 0x24, 0x26, 0x35, 0x25, 0x2d, 0x32, 0x38, 0x2a, - 0x38, 0x39, 0x39, 0x35, 0x33, 0x23, 0x26, 0x2f, - // Entry C0 - FF - 0x3c, 0x21, 0x23, 0x2d, 0x31, 0x36, 0x36, 0x3c, - 0x26, 0x2d, 0x26, 0x3a, 0x2f, 0x25, 0x2f, 0x34, - 0x31, 0x2f, 0x32, 0x3b, 0x2d, 0x2b, 0x2d, 0x21, - 0x34, 0x2a, 0x2c, 0x25, 0x21, 0x3c, 0x24, 0x29, - 0x2b, 0x24, 0x34, 0x21, 0x28, 0x29, 0x3b, 0x31, - 0x25, 0x2e, 0x30, 0x29, 0x26, 0x24, 0x3a, 0x21, - 0x3c, 0x28, 0x21, 0x24, 0x21, 0x21, 0x1f, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, - // Entry 100 - 13F - 0x21, 0x21, 0x2f, 0x21, 0x2e, 0x23, 0x33, 0x2f, - 0x24, 0x3b, 0x2f, 0x39, 0x38, 0x31, 0x2d, 0x3a, - 0x2c, 0x2e, 0x2d, 0x23, 0x2d, 0x2f, 0x28, 0x2f, - 0x27, 0x33, 0x34, 0x26, 0x24, 0x32, 0x22, 0x26, - 0x27, 0x22, 0x2d, 0x31, 0x3d, 0x29, 0x31, 0x3d, - 0x39, 0x29, 0x31, 0x24, 0x26, 0x29, 0x36, 0x2f, - 0x33, 0x2f, 0x21, 0x22, 0x21, 0x30, 0x28, 0x3d, - 0x23, 0x26, 0x21, 0x28, 0x26, 0x26, 0x31, 0x3b, - // Entry 140 - 17F - 0x29, 0x21, 0x29, 0x21, 0x21, 0x21, 0x21, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x21, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x24, 0x24, 0x2f, - 0x23, 0x32, 0x2f, 0x27, 0x2f, 0x21, -} - -// 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. -// Size: 584 bytes, 73 elements -var regionInclusionBits = [73]uint64{ - // Entry 0 - 1F - 0x0000000102400813, 0x00000000200007a3, 0x0000000000003844, 0x0000000040000808, - 0x00000000803c0011, 0x0000000020000022, 0x0000000040000844, 0x0000000020000082, - 0x0000000000000102, 0x0000000020000202, 0x0000000020000402, 0x000000004000384d, - 0x0000000000001804, 0x0000000040002804, 0x0000000000404000, 0x0000000000408000, - 0x0000000000410000, 0x0000000002020000, 0x0000000000040010, 0x0000000000080010, - 0x0000000000100010, 0x0000000000200010, 0x0000000001c1c001, 0x0000000000c00000, - 0x0000000001400000, 0x000000001e020001, 0x0000000006000000, 0x000000000a000000, - 0x0000000012000000, 0x00000000200006a2, 0x0000000040002848, 0x0000000080000010, - // Entry 20 - 3F - 0x0000000100000001, 0x0000000000000001, 0x0000000080000000, 0x0000000000020000, - 0x0000000001000000, 0x0000000000008000, 0x0000000000002000, 0x0000000000000200, - 0x0000000000000008, 0x0000000000200000, 0x0000000110000000, 0x0000000000040000, - 0x0000000008000000, 0x0000000000000020, 0x0000000104000000, 0x0000000000000080, - 0x0000000000001000, 0x0000000000010000, 0x0000000000000400, 0x0000000004000000, - 0x0000000000000040, 0x0000000010000000, 0x0000000000004000, 0x0000000101000000, - 0x0000000108000000, 0x0000000000000100, 0x0000000100020000, 0x0000000000080000, - 0x0000000000100000, 0x0000000000800000, 0x00000001ffffffff, 0x0000000122400fb3, - // Entry 40 - 5F - 0x00000001827c0813, 0x000000014240385f, 0x0000000103c1c813, 0x000000011e420813, - 0x0000000112000001, 0x0000000106000001, 0x0000000101400001, 0x000000010a000001, - 0x0000000102020001, -} - -// regionInclusionNext marks, for each entry in regionInclusionBits, the set of -// all groups that are reachable from the groups set in the respective entry. -// Size: 73 bytes, 73 elements -var regionInclusionNext = [73]uint8{ - // Entry 0 - 3F - 0x3e, 0x3f, 0x0b, 0x0b, 0x40, 0x01, 0x0b, 0x01, - 0x01, 0x01, 0x01, 0x41, 0x0b, 0x0b, 0x16, 0x16, - 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x42, 0x16, - 0x16, 0x43, 0x19, 0x19, 0x19, 0x01, 0x0b, 0x04, - 0x00, 0x00, 0x1f, 0x11, 0x18, 0x0f, 0x0d, 0x09, - 0x03, 0x15, 0x44, 0x12, 0x1b, 0x05, 0x45, 0x07, - 0x0c, 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x46, - 0x47, 0x08, 0x48, 0x13, 0x14, 0x17, 0x3e, 0x3e, - // Entry 40 - 7F - 0x3e, 0x3e, 0x3e, 0x3e, 0x43, 0x43, 0x42, 0x43, - 0x43, -} - -type parentRel struct { - lang uint16 - script uint8 - maxScript uint8 - toRegion uint16 - fromRegion []uint16 -} - -// Size: 414 bytes, 5 elements -var parents = [5]parentRel{ - 0: {lang: 0x139, script: 0x0, maxScript: 0x57, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x25, 0x26, 0x2f, 0x34, 0x36, 0x3d, 0x42, 0x46, 0x48, 0x49, 0x4a, 0x50, 0x52, 0x5c, 0x5d, 0x61, 0x64, 0x6d, 0x73, 0x74, 0x75, 0x7b, 0x7c, 0x7f, 0x80, 0x81, 0x83, 0x8c, 0x8d, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9f, 0xa0, 0xa4, 0xa7, 0xa9, 0xad, 0xb1, 0xb4, 0xb5, 0xbf, 0xc6, 0xca, 0xcb, 0xcc, 0xce, 0xd0, 0xd2, 0xd5, 0xd6, 0xdd, 0xdf, 0xe0, 0xe6, 0xe7, 0xe8, 0xeb, 0xf0, 0x107, 0x109, 0x10a, 0x10b, 0x10d, 0x10e, 0x112, 0x117, 0x11b, 0x11d, 0x11f, 0x125, 0x129, 0x12c, 0x12d, 0x12f, 0x131, 0x139, 0x13c, 0x13f, 0x142, 0x161, 0x162, 0x164}}, - 1: {lang: 0x139, script: 0x0, maxScript: 0x57, toRegion: 0x1a, fromRegion: []uint16{0x2e, 0x4e, 0x60, 0x63, 0x72, 0xd9, 0x10c, 0x10f}}, - 2: {lang: 0x13e, script: 0x0, maxScript: 0x57, toRegion: 0x1f, fromRegion: []uint16{0x2c, 0x3f, 0x41, 0x48, 0x51, 0x54, 0x56, 0x59, 0x65, 0x69, 0x89, 0x8f, 0xcf, 0xd8, 0xe2, 0xe4, 0xec, 0xf1, 0x11a, 0x135, 0x136, 0x13b}}, - 3: {lang: 0x3c0, script: 0x0, maxScript: 0x57, toRegion: 0xee, fromRegion: []uint16{0x2a, 0x4e, 0x5a, 0x86, 0x8b, 0xb7, 0xc6, 0xd1, 0x118, 0x126}}, - 4: {lang: 0x529, script: 0x39, maxScript: 0x39, toRegion: 0x8d, fromRegion: []uint16{0xc6}}, -} - -// Total table size 25886 bytes (25KiB); checksum: 50D3D57D diff --git a/vendor/golang.org/x/text/internal/language/tags.go b/vendor/golang.org/x/text/internal/language/tags.go deleted file mode 100644 index e7afd3188..000000000 --- a/vendor/golang.org/x/text/internal/language/tags.go +++ /dev/null @@ -1,48 +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. - -package language - -// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. -// It simplifies safe initialization of Tag values. -func MustParse(s string) Tag { - t, err := Parse(s) - if err != nil { - panic(err) - } - return t -} - -// MustParseBase is like ParseBase, but panics if the given base cannot be parsed. -// It simplifies safe initialization of Base values. -func MustParseBase(s string) Language { - b, err := ParseBase(s) - if err != nil { - panic(err) - } - return b -} - -// MustParseScript is like ParseScript, but panics if the given script cannot be -// parsed. It simplifies safe initialization of Script values. -func MustParseScript(s string) Script { - scr, err := ParseScript(s) - if err != nil { - panic(err) - } - return scr -} - -// MustParseRegion is like ParseRegion, but panics if the given region cannot be -// parsed. It simplifies safe initialization of Region values. -func MustParseRegion(s string) Region { - r, err := ParseRegion(s) - if err != nil { - panic(err) - } - return r -} - -// Und is the root language. -var Und Tag diff --git a/vendor/golang.org/x/text/language/Makefile b/vendor/golang.org/x/text/language/Makefile new file mode 100644 index 000000000..79f005784 --- /dev/null +++ b/vendor/golang.org/x/text/language/Makefile @@ -0,0 +1,16 @@ +# 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. + +CLEANFILES+=maketables + +maketables: maketables.go + go build $^ + +tables: maketables + ./maketables > tables.go + gofmt -w -s tables.go + +# Build (but do not run) maketables during testing, +# just to make sure it still compiles. +testshort: maketables diff --git a/vendor/golang.org/x/text/internal/language/common.go b/vendor/golang.org/x/text/language/common.go similarity index 50% rename from vendor/golang.org/x/text/internal/language/common.go rename to vendor/golang.org/x/text/language/common.go index cdfdb7497..9d86e1855 100644 --- a/vendor/golang.org/x/text/internal/language/common.go +++ b/vendor/golang.org/x/text/language/common.go @@ -4,13 +4,13 @@ package language // This file contains code common to the maketables.go and the package code. -// AliasType is the type of an alias in AliasMap. -type AliasType int8 +// langAliasType is the type of an alias in langAliasMap. +type langAliasType int8 const ( - Deprecated AliasType = iota - Macro - Legacy + langDeprecated langAliasType = iota + langMacro + langLegacy - AliasTypeUnknown AliasType = -1 + langAliasTypeUnknown langAliasType = -1 ) diff --git a/vendor/golang.org/x/text/language/coverage.go b/vendor/golang.org/x/text/language/coverage.go index a24fd1a4d..101fd23c1 100644 --- a/vendor/golang.org/x/text/language/coverage.go +++ b/vendor/golang.org/x/text/language/coverage.go @@ -7,8 +7,6 @@ package language import ( "fmt" "sort" - - "golang.org/x/text/internal/language" ) // The Coverage interface is used to define the level of coverage of an @@ -46,9 +44,9 @@ type allSubtags struct{} // consecutive range, it simply returns a slice of numbers in increasing order. // The "undefined" region is not returned. func (s allSubtags) Regions() []Region { - reg := make([]Region, language.NumRegions) + reg := make([]Region, numRegions) for i := range reg { - reg[i] = Region{language.Region(i + 1)} + reg[i] = Region{regionID(i + 1)} } return reg } @@ -57,9 +55,9 @@ func (s allSubtags) Regions() []Region { // consecutive range, it simply returns a slice of numbers in increasing order. // The "undefined" script is not returned. func (s allSubtags) Scripts() []Script { - scr := make([]Script, language.NumScripts) + scr := make([]Script, numScripts) for i := range scr { - scr[i] = Script{language.Script(i + 1)} + scr[i] = Script{scriptID(i + 1)} } return scr } @@ -67,10 +65,22 @@ func (s allSubtags) Scripts() []Script { // BaseLanguages returns the list of all supported base languages. It generates // the list by traversing the internal structures. func (s allSubtags) BaseLanguages() []Base { - bs := language.BaseLanguages() - base := make([]Base, len(bs)) - for i, b := range bs { - base[i] = Base{b} + base := make([]Base, 0, numLanguages) + for i := 0; i < langNoIndexOffset; i++ { + // We included "und" already for the value 0. + if i != nonCanonicalUnd { + base = append(base, Base{langID(i)}) + } + } + i := langNoIndexOffset + for _, v := range langNoIndex { + for k := 0; k < 8; k++ { + if v&1 == 1 { + base = append(base, Base{langID(i)}) + } + v >>= 1 + i++ + } } return base } @@ -80,7 +90,7 @@ func (s allSubtags) Tags() []Tag { return nil } -// coverage is used by NewCoverage which is used as a convenient way for +// coverage is used used by NewCoverage which is used as a convenient way for // creating Coverage implementations for partially defined data. Very often a // package will only need to define a subset of slices. coverage provides a // convenient way to do this. Moreover, packages using NewCoverage, instead of @@ -124,7 +134,7 @@ func (s *coverage) BaseLanguages() []Base { } a := make([]Base, len(tags)) for i, t := range tags { - a[i] = Base{language.Language(t.lang())} + a[i] = Base{langID(t.lang)} } sort.Sort(bases(a)) k := 0 diff --git a/vendor/golang.org/x/text/language/gen.go b/vendor/golang.org/x/text/language/gen.go index 3004eb42c..302f1940a 100644 --- a/vendor/golang.org/x/text/language/gen.go +++ b/vendor/golang.org/x/text/language/gen.go @@ -10,16 +10,21 @@ 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/language" + "golang.org/x/text/internal/tag" "golang.org/x/text/unicode/cldr" ) @@ -32,17 +37,272 @@ var ( "output file for generated tables") ) -func main() { - gen.Init() +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.`, +} - w := gen.NewCodeWriter() - defer w.WriteGoFile("tables.go", "language") +// 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. - b := newBuilder(w) - gen.WriteCLDRVersion(w) +func failOnError(e error) { + if e != nil { + log.Panic(e) + } +} - b.writeConstants() - b.writeMatchData() +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 { @@ -50,51 +310,546 @@ type builder struct { 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 } -func (b *builder) langIndex(s string) uint16 { - return uint16(language.MustParseBase(s)) -} - -func (b *builder) regionIndex(s string) int { - return int(language.MustParseRegion(s)) -} - -func (b *builder) scriptIndex(s string) int { - return int(language.MustParseScript(s)) -} +type index uint func newBuilder(w *gen.CodeWriter) *builder { r := gen.OpenCLDRCoreZip() defer r.Close() d := &cldr.Decoder{} data, err := d.DecodeZip(r) - if err != nil { - log.Fatal(err) - } + 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) { - fmt.Fprintln(b.w, "const (") + b.pf("const (") for _, v := range values { - fmt.Fprintf(b.w, "\t_%s = %v\n", v, f(v)) + b.pf("\t_%s = %v", v, f(v)) } - fmt.Fprintln(b.w, ")") + 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{ - "de", "en", "fr", "it", "mo", "no", "nb", "pt", "sh", "mul", "und", + "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{ @@ -102,15 +857,508 @@ var scriptConsts = []string{ "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) writeConstants() { - b.writeConsts(func(s string) int { return int(b.langIndex(s)) }, langConsts...) - b.writeConsts(b.regionIndex, regionConsts...) - b.writeConsts(b.scriptIndex, scriptConsts...) +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 { @@ -149,7 +1397,7 @@ func (b *builder) writeMatchData() { regions := strings.Split(g.Contains, " ") regionHierarchy[g.Type] = append(regionHierarchy[g.Type], regions...) } - regionToGroups := make([]uint8, language.NumRegions) + regionToGroups := make([]uint8, len(b.region.s)) idToIndex := map[string]uint8{} for i, mv := range lm[0].MatchVariable { @@ -162,12 +1410,12 @@ func (b *builder) writeMatchData() { todo := []string{r} for k := 0; k < len(todo); k++ { r := todo[k] - regionToGroups[b.regionIndex(r)] |= 1 << uint8(i) + regionToGroups[b.region.index(r)] |= 1 << uint8(i) todo = append(todo, regionHierarchy[r]...) } } } - b.w.WriteVar("regionToGroups", regionToGroups) + b.writeSlice("regionToGroups", regionToGroups) // maps language id to in- and out-of-group region. paradigmLocales := [][3]uint16{} @@ -178,16 +1426,16 @@ func (b *builder) writeMatchData() { pc := strings.SplitN(locales[i+j], "-", 2) x[0] = b.langIndex(pc[0]) if len(pc) == 2 { - x[1+j] = uint16(b.regionIndex(pc[1])) + x[1+j] = uint16(b.region.index(pc[1])) } } paradigmLocales = append(paradigmLocales, x) } - b.w.WriteVar("paradigmLocales", paradigmLocales) + b.writeSlice("paradigmLocales", paradigmLocales) - b.w.WriteType(mutualIntelligibility{}) - b.w.WriteType(scriptIntelligibility{}) - b.w.WriteType(regionIntelligibility{}) + b.writeType(mutualIntelligibility{}) + b.writeType(scriptIntelligibility{}) + b.writeType(regionIntelligibility{}) matchLang := []mutualIntelligibility{} matchScript := []scriptIntelligibility{} @@ -213,16 +1461,16 @@ func (b *builder) writeMatchData() { matchScript = append(matchScript, scriptIntelligibility{ wantLang: uint16(b.langIndex(d[0])), haveLang: uint16(b.langIndex(s[0])), - wantScript: uint8(b.scriptIndex(d[1])), - haveScript: uint8(b.scriptIndex(s[1])), + 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.scriptIndex(s[1])), - haveScript: uint8(b.scriptIndex(d[1])), + wantScript: uint8(b.script.index(s[1])), + haveScript: uint8(b.script.index(d[1])), distance: uint8(distance), }) } @@ -264,7 +1512,7 @@ func (b *builder) writeMatchData() { distance: uint8(distance), } if d[1] != "*" { - ri.script = uint8(b.scriptIndex(d[1])) + ri.script = uint8(b.script.index(d[1])) } switch { case d[2] == "*": @@ -284,22 +1532,181 @@ func (b *builder) writeMatchData() { sort.SliceStable(matchLang, func(i, j int) bool { return matchLang[i].distance < matchLang[j].distance }) - b.w.WriteComment(` - 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.`) - b.w.WriteVar("matchLang", matchLang) + b.writeSlice("matchLang", matchLang) - b.w.WriteComment(` - matchScript holds pairs of scriptIDs where readers of one script - can typically also read the other. Each is associated with a confidence.`) sort.SliceStable(matchScript, func(i, j int) bool { return matchScript[i].distance < matchScript[j].distance }) - b.w.WriteVar("matchScript", matchScript) + b.writeSlice("matchScript", matchScript) sort.SliceStable(matchRegion, func(i, j int) bool { return matchRegion[i].distance < matchRegion[j].distance }) - b.w.WriteVar("matchRegion", matchRegion) + 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/language/index.go b/vendor/golang.org/x/text/language/index.go new file mode 100644 index 000000000..5311e5cbe --- /dev/null +++ b/vendor/golang.org/x/text/language/index.go @@ -0,0 +1,783 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +package language + +// NumCompactTags is the number of common tags. The maximum tag is +// NumCompactTags-1. +const NumCompactTags = 768 + +var specialTags = []Tag{ // 2 elements + 0: {lang: 0xd7, region: 0x6e, script: 0x0, pVariant: 0x5, pExt: 0xe, str: "ca-ES-valencia"}, + 1: {lang: 0x139, region: 0x135, script: 0x0, pVariant: 0x5, pExt: 0x5, str: "en-US-u-va-posix"}, +} // Size: 72 bytes + +var coreTags = map[uint32]uint16{ + 0x0: 0, // und + 0x01600000: 3, // af + 0x016000d2: 4, // af-NA + 0x01600161: 5, // af-ZA + 0x01c00000: 6, // agq + 0x01c00052: 7, // agq-CM + 0x02100000: 8, // ak + 0x02100080: 9, // ak-GH + 0x02700000: 10, // am + 0x0270006f: 11, // am-ET + 0x03a00000: 12, // ar + 0x03a00001: 13, // ar-001 + 0x03a00023: 14, // ar-AE + 0x03a00039: 15, // ar-BH + 0x03a00062: 16, // ar-DJ + 0x03a00067: 17, // ar-DZ + 0x03a0006b: 18, // ar-EG + 0x03a0006c: 19, // ar-EH + 0x03a0006d: 20, // ar-ER + 0x03a00097: 21, // ar-IL + 0x03a0009b: 22, // ar-IQ + 0x03a000a1: 23, // ar-JO + 0x03a000a8: 24, // ar-KM + 0x03a000ac: 25, // ar-KW + 0x03a000b0: 26, // ar-LB + 0x03a000b9: 27, // ar-LY + 0x03a000ba: 28, // ar-MA + 0x03a000c9: 29, // ar-MR + 0x03a000e1: 30, // ar-OM + 0x03a000ed: 31, // ar-PS + 0x03a000f3: 32, // ar-QA + 0x03a00108: 33, // ar-SA + 0x03a0010b: 34, // ar-SD + 0x03a00115: 35, // ar-SO + 0x03a00117: 36, // ar-SS + 0x03a0011c: 37, // ar-SY + 0x03a00120: 38, // ar-TD + 0x03a00128: 39, // ar-TN + 0x03a0015e: 40, // ar-YE + 0x04000000: 41, // ars + 0x04300000: 42, // as + 0x04300099: 43, // as-IN + 0x04400000: 44, // asa + 0x0440012f: 45, // asa-TZ + 0x04800000: 46, // ast + 0x0480006e: 47, // ast-ES + 0x05800000: 48, // az + 0x0581f000: 49, // az-Cyrl + 0x0581f032: 50, // az-Cyrl-AZ + 0x05857000: 51, // az-Latn + 0x05857032: 52, // az-Latn-AZ + 0x05e00000: 53, // bas + 0x05e00052: 54, // bas-CM + 0x07100000: 55, // be + 0x07100047: 56, // be-BY + 0x07500000: 57, // bem + 0x07500162: 58, // bem-ZM + 0x07900000: 59, // bez + 0x0790012f: 60, // bez-TZ + 0x07e00000: 61, // bg + 0x07e00038: 62, // bg-BG + 0x08200000: 63, // bh + 0x0a000000: 64, // bm + 0x0a0000c3: 65, // bm-ML + 0x0a500000: 66, // bn + 0x0a500035: 67, // bn-BD + 0x0a500099: 68, // bn-IN + 0x0a900000: 69, // bo + 0x0a900053: 70, // bo-CN + 0x0a900099: 71, // bo-IN + 0x0b200000: 72, // br + 0x0b200078: 73, // br-FR + 0x0b500000: 74, // brx + 0x0b500099: 75, // brx-IN + 0x0b700000: 76, // bs + 0x0b71f000: 77, // bs-Cyrl + 0x0b71f033: 78, // bs-Cyrl-BA + 0x0b757000: 79, // bs-Latn + 0x0b757033: 80, // bs-Latn-BA + 0x0d700000: 81, // ca + 0x0d700022: 82, // ca-AD + 0x0d70006e: 83, // ca-ES + 0x0d700078: 84, // ca-FR + 0x0d70009e: 85, // ca-IT + 0x0db00000: 86, // ccp + 0x0db00035: 87, // ccp-BD + 0x0db00099: 88, // ccp-IN + 0x0dc00000: 89, // ce + 0x0dc00106: 90, // ce-RU + 0x0df00000: 91, // cgg + 0x0df00131: 92, // cgg-UG + 0x0e500000: 93, // chr + 0x0e500135: 94, // chr-US + 0x0e900000: 95, // ckb + 0x0e90009b: 96, // ckb-IQ + 0x0e90009c: 97, // ckb-IR + 0x0fa00000: 98, // cs + 0x0fa0005e: 99, // cs-CZ + 0x0fe00000: 100, // cu + 0x0fe00106: 101, // cu-RU + 0x10000000: 102, // cy + 0x1000007b: 103, // cy-GB + 0x10100000: 104, // da + 0x10100063: 105, // da-DK + 0x10100082: 106, // da-GL + 0x10800000: 107, // dav + 0x108000a4: 108, // dav-KE + 0x10d00000: 109, // de + 0x10d0002e: 110, // de-AT + 0x10d00036: 111, // de-BE + 0x10d0004e: 112, // de-CH + 0x10d00060: 113, // de-DE + 0x10d0009e: 114, // de-IT + 0x10d000b2: 115, // de-LI + 0x10d000b7: 116, // de-LU + 0x11700000: 117, // dje + 0x117000d4: 118, // dje-NE + 0x11f00000: 119, // dsb + 0x11f00060: 120, // dsb-DE + 0x12400000: 121, // dua + 0x12400052: 122, // dua-CM + 0x12800000: 123, // dv + 0x12b00000: 124, // dyo + 0x12b00114: 125, // dyo-SN + 0x12d00000: 126, // dz + 0x12d00043: 127, // dz-BT + 0x12f00000: 128, // ebu + 0x12f000a4: 129, // ebu-KE + 0x13000000: 130, // ee + 0x13000080: 131, // ee-GH + 0x13000122: 132, // ee-TG + 0x13600000: 133, // el + 0x1360005d: 134, // el-CY + 0x13600087: 135, // el-GR + 0x13900000: 136, // en + 0x13900001: 137, // en-001 + 0x1390001a: 138, // en-150 + 0x13900025: 139, // en-AG + 0x13900026: 140, // en-AI + 0x1390002d: 141, // en-AS + 0x1390002e: 142, // en-AT + 0x1390002f: 143, // en-AU + 0x13900034: 144, // en-BB + 0x13900036: 145, // en-BE + 0x1390003a: 146, // en-BI + 0x1390003d: 147, // en-BM + 0x13900042: 148, // en-BS + 0x13900046: 149, // en-BW + 0x13900048: 150, // en-BZ + 0x13900049: 151, // en-CA + 0x1390004a: 152, // en-CC + 0x1390004e: 153, // en-CH + 0x13900050: 154, // en-CK + 0x13900052: 155, // en-CM + 0x1390005c: 156, // en-CX + 0x1390005d: 157, // en-CY + 0x13900060: 158, // en-DE + 0x13900061: 159, // en-DG + 0x13900063: 160, // en-DK + 0x13900064: 161, // en-DM + 0x1390006d: 162, // en-ER + 0x13900072: 163, // en-FI + 0x13900073: 164, // en-FJ + 0x13900074: 165, // en-FK + 0x13900075: 166, // en-FM + 0x1390007b: 167, // en-GB + 0x1390007c: 168, // en-GD + 0x1390007f: 169, // en-GG + 0x13900080: 170, // en-GH + 0x13900081: 171, // en-GI + 0x13900083: 172, // en-GM + 0x1390008a: 173, // en-GU + 0x1390008c: 174, // en-GY + 0x1390008d: 175, // en-HK + 0x13900096: 176, // en-IE + 0x13900097: 177, // en-IL + 0x13900098: 178, // en-IM + 0x13900099: 179, // en-IN + 0x1390009a: 180, // en-IO + 0x1390009f: 181, // en-JE + 0x139000a0: 182, // en-JM + 0x139000a4: 183, // en-KE + 0x139000a7: 184, // en-KI + 0x139000a9: 185, // en-KN + 0x139000ad: 186, // en-KY + 0x139000b1: 187, // en-LC + 0x139000b4: 188, // en-LR + 0x139000b5: 189, // en-LS + 0x139000bf: 190, // en-MG + 0x139000c0: 191, // en-MH + 0x139000c6: 192, // en-MO + 0x139000c7: 193, // en-MP + 0x139000ca: 194, // en-MS + 0x139000cb: 195, // en-MT + 0x139000cc: 196, // en-MU + 0x139000ce: 197, // en-MW + 0x139000d0: 198, // en-MY + 0x139000d2: 199, // en-NA + 0x139000d5: 200, // en-NF + 0x139000d6: 201, // en-NG + 0x139000d9: 202, // en-NL + 0x139000dd: 203, // en-NR + 0x139000df: 204, // en-NU + 0x139000e0: 205, // en-NZ + 0x139000e6: 206, // en-PG + 0x139000e7: 207, // en-PH + 0x139000e8: 208, // en-PK + 0x139000eb: 209, // en-PN + 0x139000ec: 210, // en-PR + 0x139000f0: 211, // en-PW + 0x13900107: 212, // en-RW + 0x13900109: 213, // en-SB + 0x1390010a: 214, // en-SC + 0x1390010b: 215, // en-SD + 0x1390010c: 216, // en-SE + 0x1390010d: 217, // en-SG + 0x1390010e: 218, // en-SH + 0x1390010f: 219, // en-SI + 0x13900112: 220, // en-SL + 0x13900117: 221, // en-SS + 0x1390011b: 222, // en-SX + 0x1390011d: 223, // en-SZ + 0x1390011f: 224, // en-TC + 0x13900125: 225, // en-TK + 0x13900129: 226, // en-TO + 0x1390012c: 227, // en-TT + 0x1390012d: 228, // en-TV + 0x1390012f: 229, // en-TZ + 0x13900131: 230, // en-UG + 0x13900133: 231, // en-UM + 0x13900135: 232, // en-US + 0x13900139: 233, // en-VC + 0x1390013c: 234, // en-VG + 0x1390013d: 235, // en-VI + 0x1390013f: 236, // en-VU + 0x13900142: 237, // en-WS + 0x13900161: 238, // en-ZA + 0x13900162: 239, // en-ZM + 0x13900164: 240, // en-ZW + 0x13c00000: 241, // eo + 0x13c00001: 242, // eo-001 + 0x13e00000: 243, // es + 0x13e0001f: 244, // es-419 + 0x13e0002c: 245, // es-AR + 0x13e0003f: 246, // es-BO + 0x13e00041: 247, // es-BR + 0x13e00048: 248, // es-BZ + 0x13e00051: 249, // es-CL + 0x13e00054: 250, // es-CO + 0x13e00056: 251, // es-CR + 0x13e00059: 252, // es-CU + 0x13e00065: 253, // es-DO + 0x13e00068: 254, // es-EA + 0x13e00069: 255, // es-EC + 0x13e0006e: 256, // es-ES + 0x13e00086: 257, // es-GQ + 0x13e00089: 258, // es-GT + 0x13e0008f: 259, // es-HN + 0x13e00094: 260, // es-IC + 0x13e000cf: 261, // es-MX + 0x13e000d8: 262, // es-NI + 0x13e000e2: 263, // es-PA + 0x13e000e4: 264, // es-PE + 0x13e000e7: 265, // es-PH + 0x13e000ec: 266, // es-PR + 0x13e000f1: 267, // es-PY + 0x13e0011a: 268, // es-SV + 0x13e00135: 269, // es-US + 0x13e00136: 270, // es-UY + 0x13e0013b: 271, // es-VE + 0x14000000: 272, // et + 0x1400006a: 273, // et-EE + 0x14500000: 274, // eu + 0x1450006e: 275, // eu-ES + 0x14600000: 276, // ewo + 0x14600052: 277, // ewo-CM + 0x14800000: 278, // fa + 0x14800024: 279, // fa-AF + 0x1480009c: 280, // fa-IR + 0x14e00000: 281, // ff + 0x14e00052: 282, // ff-CM + 0x14e00084: 283, // ff-GN + 0x14e000c9: 284, // ff-MR + 0x14e00114: 285, // ff-SN + 0x15100000: 286, // fi + 0x15100072: 287, // fi-FI + 0x15300000: 288, // fil + 0x153000e7: 289, // fil-PH + 0x15800000: 290, // fo + 0x15800063: 291, // fo-DK + 0x15800076: 292, // fo-FO + 0x15e00000: 293, // fr + 0x15e00036: 294, // fr-BE + 0x15e00037: 295, // fr-BF + 0x15e0003a: 296, // fr-BI + 0x15e0003b: 297, // fr-BJ + 0x15e0003c: 298, // fr-BL + 0x15e00049: 299, // fr-CA + 0x15e0004b: 300, // fr-CD + 0x15e0004c: 301, // fr-CF + 0x15e0004d: 302, // fr-CG + 0x15e0004e: 303, // fr-CH + 0x15e0004f: 304, // fr-CI + 0x15e00052: 305, // fr-CM + 0x15e00062: 306, // fr-DJ + 0x15e00067: 307, // fr-DZ + 0x15e00078: 308, // fr-FR + 0x15e0007a: 309, // fr-GA + 0x15e0007e: 310, // fr-GF + 0x15e00084: 311, // fr-GN + 0x15e00085: 312, // fr-GP + 0x15e00086: 313, // fr-GQ + 0x15e00091: 314, // fr-HT + 0x15e000a8: 315, // fr-KM + 0x15e000b7: 316, // fr-LU + 0x15e000ba: 317, // fr-MA + 0x15e000bb: 318, // fr-MC + 0x15e000be: 319, // fr-MF + 0x15e000bf: 320, // fr-MG + 0x15e000c3: 321, // fr-ML + 0x15e000c8: 322, // fr-MQ + 0x15e000c9: 323, // fr-MR + 0x15e000cc: 324, // fr-MU + 0x15e000d3: 325, // fr-NC + 0x15e000d4: 326, // fr-NE + 0x15e000e5: 327, // fr-PF + 0x15e000ea: 328, // fr-PM + 0x15e00102: 329, // fr-RE + 0x15e00107: 330, // fr-RW + 0x15e0010a: 331, // fr-SC + 0x15e00114: 332, // fr-SN + 0x15e0011c: 333, // fr-SY + 0x15e00120: 334, // fr-TD + 0x15e00122: 335, // fr-TG + 0x15e00128: 336, // fr-TN + 0x15e0013f: 337, // fr-VU + 0x15e00140: 338, // fr-WF + 0x15e0015f: 339, // fr-YT + 0x16900000: 340, // fur + 0x1690009e: 341, // fur-IT + 0x16d00000: 342, // fy + 0x16d000d9: 343, // fy-NL + 0x16e00000: 344, // ga + 0x16e00096: 345, // ga-IE + 0x17e00000: 346, // gd + 0x17e0007b: 347, // gd-GB + 0x19000000: 348, // gl + 0x1900006e: 349, // gl-ES + 0x1a300000: 350, // gsw + 0x1a30004e: 351, // gsw-CH + 0x1a300078: 352, // gsw-FR + 0x1a3000b2: 353, // gsw-LI + 0x1a400000: 354, // gu + 0x1a400099: 355, // gu-IN + 0x1a900000: 356, // guw + 0x1ab00000: 357, // guz + 0x1ab000a4: 358, // guz-KE + 0x1ac00000: 359, // gv + 0x1ac00098: 360, // gv-IM + 0x1b400000: 361, // ha + 0x1b400080: 362, // ha-GH + 0x1b4000d4: 363, // ha-NE + 0x1b4000d6: 364, // ha-NG + 0x1b800000: 365, // haw + 0x1b800135: 366, // haw-US + 0x1bc00000: 367, // he + 0x1bc00097: 368, // he-IL + 0x1be00000: 369, // hi + 0x1be00099: 370, // hi-IN + 0x1d100000: 371, // hr + 0x1d100033: 372, // hr-BA + 0x1d100090: 373, // hr-HR + 0x1d200000: 374, // hsb + 0x1d200060: 375, // hsb-DE + 0x1d500000: 376, // hu + 0x1d500092: 377, // hu-HU + 0x1d700000: 378, // hy + 0x1d700028: 379, // hy-AM + 0x1e100000: 380, // id + 0x1e100095: 381, // id-ID + 0x1e700000: 382, // ig + 0x1e7000d6: 383, // ig-NG + 0x1ea00000: 384, // ii + 0x1ea00053: 385, // ii-CN + 0x1f500000: 386, // io + 0x1f800000: 387, // is + 0x1f80009d: 388, // is-IS + 0x1f900000: 389, // it + 0x1f90004e: 390, // it-CH + 0x1f90009e: 391, // it-IT + 0x1f900113: 392, // it-SM + 0x1f900138: 393, // it-VA + 0x1fa00000: 394, // iu + 0x20000000: 395, // ja + 0x200000a2: 396, // ja-JP + 0x20300000: 397, // jbo + 0x20700000: 398, // jgo + 0x20700052: 399, // jgo-CM + 0x20a00000: 400, // jmc + 0x20a0012f: 401, // jmc-TZ + 0x20e00000: 402, // jv + 0x21000000: 403, // ka + 0x2100007d: 404, // ka-GE + 0x21200000: 405, // kab + 0x21200067: 406, // kab-DZ + 0x21600000: 407, // kaj + 0x21700000: 408, // kam + 0x217000a4: 409, // kam-KE + 0x21f00000: 410, // kcg + 0x22300000: 411, // kde + 0x2230012f: 412, // kde-TZ + 0x22700000: 413, // kea + 0x2270005a: 414, // kea-CV + 0x23400000: 415, // khq + 0x234000c3: 416, // khq-ML + 0x23900000: 417, // ki + 0x239000a4: 418, // ki-KE + 0x24200000: 419, // kk + 0x242000ae: 420, // kk-KZ + 0x24400000: 421, // kkj + 0x24400052: 422, // kkj-CM + 0x24500000: 423, // kl + 0x24500082: 424, // kl-GL + 0x24600000: 425, // kln + 0x246000a4: 426, // kln-KE + 0x24a00000: 427, // km + 0x24a000a6: 428, // km-KH + 0x25100000: 429, // kn + 0x25100099: 430, // kn-IN + 0x25400000: 431, // ko + 0x254000aa: 432, // ko-KP + 0x254000ab: 433, // ko-KR + 0x25600000: 434, // kok + 0x25600099: 435, // kok-IN + 0x26a00000: 436, // ks + 0x26a00099: 437, // ks-IN + 0x26b00000: 438, // ksb + 0x26b0012f: 439, // ksb-TZ + 0x26d00000: 440, // ksf + 0x26d00052: 441, // ksf-CM + 0x26e00000: 442, // ksh + 0x26e00060: 443, // ksh-DE + 0x27400000: 444, // ku + 0x28100000: 445, // kw + 0x2810007b: 446, // kw-GB + 0x28a00000: 447, // ky + 0x28a000a5: 448, // ky-KG + 0x29100000: 449, // lag + 0x2910012f: 450, // lag-TZ + 0x29500000: 451, // lb + 0x295000b7: 452, // lb-LU + 0x2a300000: 453, // lg + 0x2a300131: 454, // lg-UG + 0x2af00000: 455, // lkt + 0x2af00135: 456, // lkt-US + 0x2b500000: 457, // ln + 0x2b50002a: 458, // ln-AO + 0x2b50004b: 459, // ln-CD + 0x2b50004c: 460, // ln-CF + 0x2b50004d: 461, // ln-CG + 0x2b800000: 462, // lo + 0x2b8000af: 463, // lo-LA + 0x2bf00000: 464, // lrc + 0x2bf0009b: 465, // lrc-IQ + 0x2bf0009c: 466, // lrc-IR + 0x2c000000: 467, // lt + 0x2c0000b6: 468, // lt-LT + 0x2c200000: 469, // lu + 0x2c20004b: 470, // lu-CD + 0x2c400000: 471, // luo + 0x2c4000a4: 472, // luo-KE + 0x2c500000: 473, // luy + 0x2c5000a4: 474, // luy-KE + 0x2c700000: 475, // lv + 0x2c7000b8: 476, // lv-LV + 0x2d100000: 477, // mas + 0x2d1000a4: 478, // mas-KE + 0x2d10012f: 479, // mas-TZ + 0x2e900000: 480, // mer + 0x2e9000a4: 481, // mer-KE + 0x2ed00000: 482, // mfe + 0x2ed000cc: 483, // mfe-MU + 0x2f100000: 484, // mg + 0x2f1000bf: 485, // mg-MG + 0x2f200000: 486, // mgh + 0x2f2000d1: 487, // mgh-MZ + 0x2f400000: 488, // mgo + 0x2f400052: 489, // mgo-CM + 0x2ff00000: 490, // mk + 0x2ff000c2: 491, // mk-MK + 0x30400000: 492, // ml + 0x30400099: 493, // ml-IN + 0x30b00000: 494, // mn + 0x30b000c5: 495, // mn-MN + 0x31b00000: 496, // mr + 0x31b00099: 497, // mr-IN + 0x31f00000: 498, // ms + 0x31f0003e: 499, // ms-BN + 0x31f000d0: 500, // ms-MY + 0x31f0010d: 501, // ms-SG + 0x32000000: 502, // mt + 0x320000cb: 503, // mt-MT + 0x32500000: 504, // mua + 0x32500052: 505, // mua-CM + 0x33100000: 506, // my + 0x331000c4: 507, // my-MM + 0x33a00000: 508, // mzn + 0x33a0009c: 509, // mzn-IR + 0x34100000: 510, // nah + 0x34500000: 511, // naq + 0x345000d2: 512, // naq-NA + 0x34700000: 513, // nb + 0x347000da: 514, // nb-NO + 0x34700110: 515, // nb-SJ + 0x34e00000: 516, // nd + 0x34e00164: 517, // nd-ZW + 0x35000000: 518, // nds + 0x35000060: 519, // nds-DE + 0x350000d9: 520, // nds-NL + 0x35100000: 521, // ne + 0x35100099: 522, // ne-IN + 0x351000db: 523, // ne-NP + 0x36700000: 524, // nl + 0x36700030: 525, // nl-AW + 0x36700036: 526, // nl-BE + 0x36700040: 527, // nl-BQ + 0x3670005b: 528, // nl-CW + 0x367000d9: 529, // nl-NL + 0x36700116: 530, // nl-SR + 0x3670011b: 531, // nl-SX + 0x36800000: 532, // nmg + 0x36800052: 533, // nmg-CM + 0x36a00000: 534, // nn + 0x36a000da: 535, // nn-NO + 0x36c00000: 536, // nnh + 0x36c00052: 537, // nnh-CM + 0x36f00000: 538, // no + 0x37500000: 539, // nqo + 0x37600000: 540, // nr + 0x37a00000: 541, // nso + 0x38000000: 542, // nus + 0x38000117: 543, // nus-SS + 0x38700000: 544, // ny + 0x38900000: 545, // nyn + 0x38900131: 546, // nyn-UG + 0x39000000: 547, // om + 0x3900006f: 548, // om-ET + 0x390000a4: 549, // om-KE + 0x39500000: 550, // or + 0x39500099: 551, // or-IN + 0x39800000: 552, // os + 0x3980007d: 553, // os-GE + 0x39800106: 554, // os-RU + 0x39d00000: 555, // pa + 0x39d05000: 556, // pa-Arab + 0x39d050e8: 557, // pa-Arab-PK + 0x39d33000: 558, // pa-Guru + 0x39d33099: 559, // pa-Guru-IN + 0x3a100000: 560, // pap + 0x3b300000: 561, // pl + 0x3b3000e9: 562, // pl-PL + 0x3bd00000: 563, // prg + 0x3bd00001: 564, // prg-001 + 0x3be00000: 565, // ps + 0x3be00024: 566, // ps-AF + 0x3c000000: 567, // pt + 0x3c00002a: 568, // pt-AO + 0x3c000041: 569, // pt-BR + 0x3c00004e: 570, // pt-CH + 0x3c00005a: 571, // pt-CV + 0x3c000086: 572, // pt-GQ + 0x3c00008b: 573, // pt-GW + 0x3c0000b7: 574, // pt-LU + 0x3c0000c6: 575, // pt-MO + 0x3c0000d1: 576, // pt-MZ + 0x3c0000ee: 577, // pt-PT + 0x3c000118: 578, // pt-ST + 0x3c000126: 579, // pt-TL + 0x3c400000: 580, // qu + 0x3c40003f: 581, // qu-BO + 0x3c400069: 582, // qu-EC + 0x3c4000e4: 583, // qu-PE + 0x3d400000: 584, // rm + 0x3d40004e: 585, // rm-CH + 0x3d900000: 586, // rn + 0x3d90003a: 587, // rn-BI + 0x3dc00000: 588, // ro + 0x3dc000bc: 589, // ro-MD + 0x3dc00104: 590, // ro-RO + 0x3de00000: 591, // rof + 0x3de0012f: 592, // rof-TZ + 0x3e200000: 593, // ru + 0x3e200047: 594, // ru-BY + 0x3e2000a5: 595, // ru-KG + 0x3e2000ae: 596, // ru-KZ + 0x3e2000bc: 597, // ru-MD + 0x3e200106: 598, // ru-RU + 0x3e200130: 599, // ru-UA + 0x3e500000: 600, // rw + 0x3e500107: 601, // rw-RW + 0x3e600000: 602, // rwk + 0x3e60012f: 603, // rwk-TZ + 0x3eb00000: 604, // sah + 0x3eb00106: 605, // sah-RU + 0x3ec00000: 606, // saq + 0x3ec000a4: 607, // saq-KE + 0x3f300000: 608, // sbp + 0x3f30012f: 609, // sbp-TZ + 0x3fa00000: 610, // sd + 0x3fa000e8: 611, // sd-PK + 0x3fc00000: 612, // sdh + 0x3fd00000: 613, // se + 0x3fd00072: 614, // se-FI + 0x3fd000da: 615, // se-NO + 0x3fd0010c: 616, // se-SE + 0x3ff00000: 617, // seh + 0x3ff000d1: 618, // seh-MZ + 0x40100000: 619, // ses + 0x401000c3: 620, // ses-ML + 0x40200000: 621, // sg + 0x4020004c: 622, // sg-CF + 0x40800000: 623, // shi + 0x40857000: 624, // shi-Latn + 0x408570ba: 625, // shi-Latn-MA + 0x408dc000: 626, // shi-Tfng + 0x408dc0ba: 627, // shi-Tfng-MA + 0x40c00000: 628, // si + 0x40c000b3: 629, // si-LK + 0x41200000: 630, // sk + 0x41200111: 631, // sk-SK + 0x41600000: 632, // sl + 0x4160010f: 633, // sl-SI + 0x41c00000: 634, // sma + 0x41d00000: 635, // smi + 0x41e00000: 636, // smj + 0x41f00000: 637, // smn + 0x41f00072: 638, // smn-FI + 0x42200000: 639, // sms + 0x42300000: 640, // sn + 0x42300164: 641, // sn-ZW + 0x42900000: 642, // so + 0x42900062: 643, // so-DJ + 0x4290006f: 644, // so-ET + 0x429000a4: 645, // so-KE + 0x42900115: 646, // so-SO + 0x43100000: 647, // sq + 0x43100027: 648, // sq-AL + 0x431000c2: 649, // sq-MK + 0x4310014d: 650, // sq-XK + 0x43200000: 651, // sr + 0x4321f000: 652, // sr-Cyrl + 0x4321f033: 653, // sr-Cyrl-BA + 0x4321f0bd: 654, // sr-Cyrl-ME + 0x4321f105: 655, // sr-Cyrl-RS + 0x4321f14d: 656, // sr-Cyrl-XK + 0x43257000: 657, // sr-Latn + 0x43257033: 658, // sr-Latn-BA + 0x432570bd: 659, // sr-Latn-ME + 0x43257105: 660, // sr-Latn-RS + 0x4325714d: 661, // sr-Latn-XK + 0x43700000: 662, // ss + 0x43a00000: 663, // ssy + 0x43b00000: 664, // st + 0x44400000: 665, // sv + 0x44400031: 666, // sv-AX + 0x44400072: 667, // sv-FI + 0x4440010c: 668, // sv-SE + 0x44500000: 669, // sw + 0x4450004b: 670, // sw-CD + 0x445000a4: 671, // sw-KE + 0x4450012f: 672, // sw-TZ + 0x44500131: 673, // sw-UG + 0x44e00000: 674, // syr + 0x45000000: 675, // ta + 0x45000099: 676, // ta-IN + 0x450000b3: 677, // ta-LK + 0x450000d0: 678, // ta-MY + 0x4500010d: 679, // ta-SG + 0x46100000: 680, // te + 0x46100099: 681, // te-IN + 0x46400000: 682, // teo + 0x464000a4: 683, // teo-KE + 0x46400131: 684, // teo-UG + 0x46700000: 685, // tg + 0x46700124: 686, // tg-TJ + 0x46b00000: 687, // th + 0x46b00123: 688, // th-TH + 0x46f00000: 689, // ti + 0x46f0006d: 690, // ti-ER + 0x46f0006f: 691, // ti-ET + 0x47100000: 692, // tig + 0x47600000: 693, // tk + 0x47600127: 694, // tk-TM + 0x48000000: 695, // tn + 0x48200000: 696, // to + 0x48200129: 697, // to-TO + 0x48a00000: 698, // tr + 0x48a0005d: 699, // tr-CY + 0x48a0012b: 700, // tr-TR + 0x48e00000: 701, // ts + 0x49400000: 702, // tt + 0x49400106: 703, // tt-RU + 0x4a400000: 704, // twq + 0x4a4000d4: 705, // twq-NE + 0x4a900000: 706, // tzm + 0x4a9000ba: 707, // tzm-MA + 0x4ac00000: 708, // ug + 0x4ac00053: 709, // ug-CN + 0x4ae00000: 710, // uk + 0x4ae00130: 711, // uk-UA + 0x4b400000: 712, // ur + 0x4b400099: 713, // ur-IN + 0x4b4000e8: 714, // ur-PK + 0x4bc00000: 715, // uz + 0x4bc05000: 716, // uz-Arab + 0x4bc05024: 717, // uz-Arab-AF + 0x4bc1f000: 718, // uz-Cyrl + 0x4bc1f137: 719, // uz-Cyrl-UZ + 0x4bc57000: 720, // uz-Latn + 0x4bc57137: 721, // uz-Latn-UZ + 0x4be00000: 722, // vai + 0x4be57000: 723, // vai-Latn + 0x4be570b4: 724, // vai-Latn-LR + 0x4bee3000: 725, // vai-Vaii + 0x4bee30b4: 726, // vai-Vaii-LR + 0x4c000000: 727, // ve + 0x4c300000: 728, // vi + 0x4c30013e: 729, // vi-VN + 0x4c900000: 730, // vo + 0x4c900001: 731, // vo-001 + 0x4cc00000: 732, // vun + 0x4cc0012f: 733, // vun-TZ + 0x4ce00000: 734, // wa + 0x4cf00000: 735, // wae + 0x4cf0004e: 736, // wae-CH + 0x4e500000: 737, // wo + 0x4e500114: 738, // wo-SN + 0x4f200000: 739, // xh + 0x4fb00000: 740, // xog + 0x4fb00131: 741, // xog-UG + 0x50900000: 742, // yav + 0x50900052: 743, // yav-CM + 0x51200000: 744, // yi + 0x51200001: 745, // yi-001 + 0x51800000: 746, // yo + 0x5180003b: 747, // yo-BJ + 0x518000d6: 748, // yo-NG + 0x51f00000: 749, // yue + 0x51f38000: 750, // yue-Hans + 0x51f38053: 751, // yue-Hans-CN + 0x51f39000: 752, // yue-Hant + 0x51f3908d: 753, // yue-Hant-HK + 0x52800000: 754, // zgh + 0x528000ba: 755, // zgh-MA + 0x52900000: 756, // zh + 0x52938000: 757, // zh-Hans + 0x52938053: 758, // zh-Hans-CN + 0x5293808d: 759, // zh-Hans-HK + 0x529380c6: 760, // zh-Hans-MO + 0x5293810d: 761, // zh-Hans-SG + 0x52939000: 762, // zh-Hant + 0x5293908d: 763, // zh-Hant-HK + 0x529390c6: 764, // zh-Hant-MO + 0x5293912e: 765, // zh-Hant-TW + 0x52f00000: 766, // zu + 0x52f00161: 767, // zu-ZA +} + +// Total table size 4676 bytes (4KiB); checksum: 17BE3673 diff --git a/vendor/golang.org/x/text/language/language.go b/vendor/golang.org/x/text/language/language.go index abfa17f66..b65e213ff 100644 --- a/vendor/golang.org/x/text/language/language.go +++ b/vendor/golang.org/x/text/language/language.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:generate go run gen.go -output tables.go +//go:generate go run gen.go gen_common.go -output tables.go +//go:generate go run gen_index.go package language @@ -10,34 +11,47 @@ package language // - verifying that tables are dropped correctly (most notably matcher tables). import ( + "errors" + "fmt" "strings" +) - "golang.org/x/text/internal/language" - "golang.org/x/text/internal/language/compact" +const ( + // maxCoreSize is the maximum size of a BCP 47 tag without variants and + // extensions. Equals max lang (3) + script (4) + max reg (3) + 2 dashes. + maxCoreSize = 12 + + // max99thPercentileSize is a somewhat arbitrary buffer size that presumably + // is large enough to hold at least 99% of the BCP 47 tags. + max99thPercentileSize = 32 + + // maxSimpleUExtensionSize is the maximum size of a -u extension with one + // key-type pair. Equals len("-u-") + key (2) + dash + max value (8). + maxSimpleUExtensionSize = 14 ) // Tag represents a BCP 47 language tag. It is used to specify an instance of a // specific language or locale. All language tag values are guaranteed to be // well-formed. -type Tag compact.Tag +type Tag struct { + lang langID + region regionID + // TODO: we will soon run out of positions for script. Idea: instead of + // storing lang, region, and script codes, store only the compact index and + // have a lookup table from this code to its expansion. This greatly speeds + // up table lookup, speed up common variant cases. + // This will also immediately free up 3 extra bytes. Also, the pVariant + // field can now be moved to the lookup table, as the compact index uniquely + // determines the offset of a possible variant. + script scriptID + pVariant byte // offset in str, includes preceding '-' + pExt uint16 // offset of first extension, includes preceding '-' -func makeTag(t language.Tag) (tag Tag) { - return Tag(compact.Make(t)) + // str is the string representation of the Tag. It will only be used if the + // tag has variants or extensions. + str string } -func (t *Tag) tag() language.Tag { - return (*compact.Tag)(t).Tag() -} - -func (t *Tag) isCompact() bool { - return (*compact.Tag)(t).IsCompact() -} - -// TODO: improve performance. -func (t *Tag) lang() language.Language { return t.tag().LangID } -func (t *Tag) region() language.Region { return t.tag().RegionID } -func (t *Tag) script() language.Script { return t.tag().ScriptID } - // Make is a convenience wrapper for Parse that omits the error. // In case of an error, a sensible default is returned. func Make(s string) Tag { @@ -54,13 +68,25 @@ func (c CanonType) Make(s string) Tag { // Raw returns the raw base language, script and region, without making an // attempt to infer their values. func (t Tag) Raw() (b Base, s Script, r Region) { - tt := t.tag() - return Base{tt.LangID}, Script{tt.ScriptID}, Region{tt.RegionID} + return Base{t.lang}, Script{t.script}, Region{t.region} +} + +// equalTags compares language, script and region subtags only. +func (t Tag) equalTags(a Tag) bool { + return t.lang == a.lang && t.script == a.script && t.region == a.region } // IsRoot returns true if t is equal to language "und". func (t Tag) IsRoot() bool { - return compact.Tag(t).IsRoot() + if int(t.pVariant) < len(t.str) { + return false + } + return t.equalTags(und) +} + +// private reports whether the Tag consists solely of a private use tag. +func (t Tag) private() bool { + return t.str != "" && t.pVariant == 0 } // CanonType can be used to enable or disable various types of canonicalization. @@ -112,73 +138,73 @@ const ( // canonicalize returns the canonicalized equivalent of the tag and // whether there was any change. -func canonicalize(c CanonType, t language.Tag) (language.Tag, bool) { +func (t Tag) canonicalize(c CanonType) (Tag, bool) { if c == Raw { return t, false } changed := false if c&SuppressScript != 0 { - if t.LangID.SuppressScript() == t.ScriptID { - t.ScriptID = 0 + if t.lang < langNoIndexOffset && uint8(t.script) == suppressScript[t.lang] { + t.script = 0 changed = true } } if c&canonLang != 0 { for { - if l, aliasType := t.LangID.Canonicalize(); l != t.LangID { + if l, aliasType := normLang(t.lang); l != t.lang { switch aliasType { - case language.Legacy: + case langLegacy: if c&Legacy != 0 { - if t.LangID == _sh && t.ScriptID == 0 { - t.ScriptID = _Latn + if t.lang == _sh && t.script == 0 { + t.script = _Latn } - t.LangID = l + t.lang = l changed = true } - case language.Macro: + case langMacro: if c&Macro != 0 { // We deviate here from CLDR. The mapping "nb" -> "no" // qualifies as a typical Macro language mapping. However, // for legacy reasons, CLDR maps "no", the macro language // code for Norwegian, to the dominant variant "nb". This // change is currently under consideration for CLDR as well. - // See https://unicode.org/cldr/trac/ticket/2698 and also - // https://unicode.org/cldr/trac/ticket/1790 for some of the + // See http://unicode.org/cldr/trac/ticket/2698 and also + // http://unicode.org/cldr/trac/ticket/1790 for some of the // practical implications. TODO: this check could be removed // if CLDR adopts this change. - if c&CLDR == 0 || t.LangID != _nb { + if c&CLDR == 0 || t.lang != _nb { changed = true - t.LangID = l + t.lang = l } } - case language.Deprecated: + case langDeprecated: if c&DeprecatedBase != 0 { - if t.LangID == _mo && t.RegionID == 0 { - t.RegionID = _MD + if t.lang == _mo && t.region == 0 { + t.region = _MD } - t.LangID = l + t.lang = l changed = true // Other canonicalization types may still apply. continue } } - } else if c&Legacy != 0 && t.LangID == _no && c&CLDR != 0 { - t.LangID = _nb + } else if c&Legacy != 0 && t.lang == _no && c&CLDR != 0 { + t.lang = _nb changed = true } break } } if c&DeprecatedScript != 0 { - if t.ScriptID == _Qaai { + if t.script == _Qaai { changed = true - t.ScriptID = _Zinh + t.script = _Zinh } } if c&DeprecatedRegion != 0 { - if r := t.RegionID.Canonicalize(); r != t.RegionID { + if r := normRegion(t.region); r != 0 { changed = true - t.RegionID = r + t.region = r } } return t, changed @@ -186,20 +212,11 @@ func canonicalize(c CanonType, t language.Tag) (language.Tag, bool) { // Canonicalize returns the canonicalized equivalent of the tag. func (c CanonType) Canonicalize(t Tag) (Tag, error) { - // First try fast path. - if t.isCompact() { - if _, changed := canonicalize(c, compact.Tag(t).Tag()); !changed { - return t, nil - } - } - // It is unlikely that one will canonicalize a tag after matching. So do - // a slow but simple approach here. - if tag, changed := canonicalize(c, t.tag()); changed { - tag.RemakeString() - return makeTag(tag), nil + t, changed := t.canonicalize(c) + if changed { + t.remakeString() } return t, nil - } // Confidence indicates the level of certainty for a given return value. @@ -222,21 +239,83 @@ func (c Confidence) String() string { return confName[c] } +// remakeString is used to update t.str in case lang, script or region changed. +// It is assumed that pExt and pVariant still point to the start of the +// respective parts. +func (t *Tag) remakeString() { + if t.str == "" { + return + } + extra := t.str[t.pVariant:] + if t.pVariant > 0 { + extra = extra[1:] + } + if t.equalTags(und) && strings.HasPrefix(extra, "x-") { + t.str = extra + t.pVariant = 0 + t.pExt = 0 + return + } + var buf [max99thPercentileSize]byte // avoid extra memory allocation in most cases. + b := buf[:t.genCoreBytes(buf[:])] + if extra != "" { + diff := len(b) - int(t.pVariant) + b = append(b, '-') + b = append(b, extra...) + t.pVariant = uint8(int(t.pVariant) + diff) + t.pExt = uint16(int(t.pExt) + diff) + } else { + t.pVariant = uint8(len(b)) + t.pExt = uint16(len(b)) + } + t.str = string(b) +} + +// genCoreBytes writes a string for the base languages, script and region tags +// to the given buffer and returns the number of bytes written. It will never +// write more than maxCoreSize bytes. +func (t *Tag) genCoreBytes(buf []byte) int { + n := t.lang.stringToBuf(buf[:]) + if t.script != 0 { + n += copy(buf[n:], "-") + n += copy(buf[n:], t.script.String()) + } + if t.region != 0 { + n += copy(buf[n:], "-") + n += copy(buf[n:], t.region.String()) + } + return n +} + // String returns the canonical string representation of the language tag. func (t Tag) String() string { - return t.tag().String() + if t.str != "" { + return t.str + } + if t.script == 0 && t.region == 0 { + return t.lang.String() + } + buf := [maxCoreSize]byte{} + return string(buf[:t.genCoreBytes(buf[:])]) } // MarshalText implements encoding.TextMarshaler. func (t Tag) MarshalText() (text []byte, err error) { - return t.tag().MarshalText() + if t.str != "" { + text = append(text, t.str...) + } else if t.script == 0 && t.region == 0 { + text = append(text, t.lang.String()...) + } else { + buf := [maxCoreSize]byte{} + text = buf[:t.genCoreBytes(buf[:])] + } + return text, nil } // UnmarshalText implements encoding.TextUnmarshaler. func (t *Tag) UnmarshalText(text []byte) error { - var tag language.Tag - err := tag.UnmarshalText(text) - *t = makeTag(tag) + tag, err := Raw.Parse(string(text)) + *t = tag return err } @@ -244,16 +323,15 @@ func (t *Tag) UnmarshalText(text []byte) error { // unspecified, an attempt will be made to infer it from the context. // It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. func (t Tag) Base() (Base, Confidence) { - if b := t.lang(); b != 0 { - return Base{b}, Exact + if t.lang != 0 { + return Base{t.lang}, Exact } - tt := t.tag() c := High - if tt.ScriptID == 0 && !tt.RegionID.IsCountry() { + if t.script == 0 && !(Region{t.region}).IsCountry() { c = Low } - if tag, err := tt.Maximize(); err == nil && tag.LangID != 0 { - return Base{tag.LangID}, c + if tag, err := addTags(t); err == nil && tag.lang != 0 { + return Base{tag.lang}, c } return Base{0}, No } @@ -266,34 +344,35 @@ func (t Tag) Base() (Base, Confidence) { // If a script cannot be inferred (Zzzz, No) is returned. We do not use Zyyy (undetermined) // as one would suspect from the IANA registry for BCP 47. In a Unicode context Zyyy marks // common characters (like 1, 2, 3, '.', etc.) and is therefore more like multiple scripts. -// See https://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for +// See http://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for // unknown value in CLDR. (Zzzz, Exact) is returned if Zzzz was explicitly specified. // Note that an inferred script is never guaranteed to be the correct one. Latin is // almost exclusively used for Afrikaans, but Arabic has been used for some texts // in the past. Also, the script that is commonly used may change over time. // It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. func (t Tag) Script() (Script, Confidence) { - if scr := t.script(); scr != 0 { - return Script{scr}, Exact + if t.script != 0 { + return Script{t.script}, Exact } - tt := t.tag() - sc, c := language.Script(_Zzzz), No - if scr := tt.LangID.SuppressScript(); scr != 0 { - // Note: it is not always the case that a language with a suppress - // script value is only written in one script (e.g. kk, ms, pa). - if tt.RegionID == 0 { - return Script{scr}, High + sc, c := scriptID(_Zzzz), No + if t.lang < langNoIndexOffset { + if scr := scriptID(suppressScript[t.lang]); scr != 0 { + // Note: it is not always the case that a language with a suppress + // script value is only written in one script (e.g. kk, ms, pa). + if t.region == 0 { + return Script{scriptID(scr)}, High + } + sc, c = scr, High } - sc, c = scr, High } - if tag, err := tt.Maximize(); err == nil { - if tag.ScriptID != sc { - sc, c = tag.ScriptID, Low + if tag, err := addTags(t); err == nil { + if tag.script != sc { + sc, c = tag.script, Low } } else { - tt, _ = canonicalize(Deprecated|Macro, tt) - if tag, err := tt.Maximize(); err == nil && tag.ScriptID != sc { - sc, c = tag.ScriptID, Low + t, _ = (Deprecated | Macro).Canonicalize(t) + if tag, err := addTags(t); err == nil && tag.script != sc { + sc, c = tag.script, Low } } return Script{sc}, c @@ -303,31 +382,28 @@ func (t Tag) Script() (Script, Confidence) { // infer a most likely candidate from the context. // It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. func (t Tag) Region() (Region, Confidence) { - if r := t.region(); r != 0 { - return Region{r}, Exact + if t.region != 0 { + return Region{t.region}, Exact } - tt := t.tag() - if tt, err := tt.Maximize(); err == nil { - return Region{tt.RegionID}, Low // TODO: differentiate between high and low. + if t, err := addTags(t); err == nil { + return Region{t.region}, Low // TODO: differentiate between high and low. } - tt, _ = canonicalize(Deprecated|Macro, tt) - if tag, err := tt.Maximize(); err == nil { - return Region{tag.RegionID}, Low + t, _ = (Deprecated | Macro).Canonicalize(t) + if tag, err := addTags(t); err == nil { + return Region{tag.region}, Low } return Region{_ZZ}, No // TODO: return world instead of undetermined? } -// Variants returns the variants specified explicitly for this language tag. +// Variant returns the variants specified explicitly for this language tag. // or nil if no variant was specified. func (t Tag) Variants() []Variant { - if !compact.Tag(t).MayHaveVariants() { - return nil - } v := []Variant{} - x, str := "", t.tag().Variants() - for str != "" { - x, str = nextToken(str) - v = append(v, Variant{x}) + if int(t.pVariant) < int(t.pExt) { + for x, str := "", t.str[t.pVariant:t.pExt]; str != ""; { + x, str = nextToken(str) + v = append(v, Variant{x}) + } } return v } @@ -335,13 +411,57 @@ func (t Tag) Variants() []Variant { // Parent returns the CLDR parent of t. In CLDR, missing fields in data for a // specific language are substituted with fields from the parent language. // The parent for a language may change for newer versions of CLDR. -// -// Parent returns a tag for a less specific language that is mutually -// intelligible or Und if there is no such language. This may not be the same as -// simply stripping the last BCP 47 subtag. For instance, the parent of "zh-TW" -// is "zh-Hant", and the parent of "zh-Hant" is "und". func (t Tag) Parent() Tag { - return Tag(compact.Tag(t).Parent()) + if t.str != "" { + // Strip the variants and extensions. + t, _ = Raw.Compose(t.Raw()) + if t.region == 0 && t.script != 0 && t.lang != 0 { + base, _ := addTags(Tag{lang: t.lang}) + if base.script == t.script { + return Tag{lang: t.lang} + } + } + return t + } + if t.lang != 0 { + if t.region != 0 { + maxScript := t.script + if maxScript == 0 { + max, _ := addTags(t) + maxScript = max.script + } + + for i := range parents { + if langID(parents[i].lang) == t.lang && scriptID(parents[i].maxScript) == maxScript { + for _, r := range parents[i].fromRegion { + if regionID(r) == t.region { + return Tag{ + lang: t.lang, + script: scriptID(parents[i].script), + region: regionID(parents[i].toRegion), + } + } + } + } + } + + // Strip the script if it is the default one. + base, _ := addTags(Tag{lang: t.lang}) + if base.script != maxScript { + return Tag{lang: t.lang, script: maxScript} + } + return Tag{lang: t.lang} + } else if t.script != 0 { + // The parent for an base-script pair with a non-default script is + // "und" instead of the base language. + base, _ := addTags(Tag{lang: t.lang}) + if base.script != t.script { + return und + } + return Tag{lang: t.lang} + } + } + return und } // returns token t and the rest of the string. @@ -367,8 +487,17 @@ func (e Extension) String() string { // ParseExtension parses s as an extension and returns it on success. func ParseExtension(s string) (e Extension, err error) { - ext, err := language.ParseExtension(s) - return Extension{ext}, err + scan := makeScannerString(s) + var end int + if n := len(scan.token); n != 1 { + return Extension{}, errSyntax + } + scan.toLower(0, len(scan.b)) + end = parseExtension(&scan) + if end != len(s) { + return Extension{}, errSyntax + } + return Extension{string(scan.b)}, nil } // Type returns the one-byte extension type of e. It returns 0 for the zero @@ -389,20 +518,22 @@ func (e Extension) Tokens() []string { // false for ok if t does not have the requested extension. The returned // extension will be invalid in this case. func (t Tag) Extension(x byte) (ext Extension, ok bool) { - if !compact.Tag(t).MayHaveExtensions() { - return Extension{}, false + for i := int(t.pExt); i < len(t.str)-1; { + var ext string + i, ext = getExtension(t.str, i) + if ext[0] == x { + return Extension{ext}, true + } } - e, ok := t.tag().Extension(x) - return Extension{e}, ok + return Extension{}, false } // Extensions returns all extensions of t. func (t Tag) Extensions() []Extension { - if !compact.Tag(t).MayHaveExtensions() { - return nil - } e := []Extension{} - for _, ext := range t.tag().Extensions() { + for i := int(t.pExt); i < len(t.str)-1; { + var ext string + i, ext = getExtension(t.str, i) e = append(e, Extension{ext}) } return e @@ -410,105 +541,259 @@ func (t Tag) Extensions() []Extension { // TypeForKey returns the type associated with the given key, where key and type // are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. // TypeForKey will traverse the inheritance chain to get the correct value. func (t Tag) TypeForKey(key string) string { - if !compact.Tag(t).MayHaveExtensions() { - if key != "rg" && key != "va" { - return "" - } + if start, end, _ := t.findTypeForKey(key); end != start { + return t.str[start:end] } - return t.tag().TypeForKey(key) + return "" } +var ( + errPrivateUse = errors.New("cannot set a key on a private use tag") + errInvalidArguments = errors.New("invalid key or type") +) + // SetTypeForKey returns a new Tag with the key set to type, where key and type // are of the allowed values defined for the Unicode locale extension ('u') in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. // An empty value removes an existing pair with the same key. func (t Tag) SetTypeForKey(key, value string) (Tag, error) { - tt, err := t.tag().SetTypeForKey(key, value) - return makeTag(tt), err + if t.private() { + return t, errPrivateUse + } + if len(key) != 2 { + return t, errInvalidArguments + } + + // Remove the setting if value is "". + if value == "" { + start, end, _ := t.findTypeForKey(key) + if start != end { + // Remove key tag and leading '-'. + start -= 4 + + // Remove a possible empty extension. + if (end == len(t.str) || t.str[end+2] == '-') && t.str[start-2] == '-' { + start -= 2 + } + if start == int(t.pVariant) && end == len(t.str) { + t.str = "" + t.pVariant, t.pExt = 0, 0 + } else { + t.str = fmt.Sprintf("%s%s", t.str[:start], t.str[end:]) + } + } + return t, nil + } + + if len(value) < 3 || len(value) > 8 { + return t, errInvalidArguments + } + + var ( + buf [maxCoreSize + maxSimpleUExtensionSize]byte + uStart int // start of the -u extension. + ) + + // Generate the tag string if needed. + if t.str == "" { + uStart = t.genCoreBytes(buf[:]) + buf[uStart] = '-' + uStart++ + } + + // Create new key-type pair and parse it to verify. + b := buf[uStart:] + copy(b, "u-") + copy(b[2:], key) + b[4] = '-' + b = b[:5+copy(b[5:], value)] + scan := makeScanner(b) + if parseExtensions(&scan); scan.err != nil { + return t, scan.err + } + + // Assemble the replacement string. + if t.str == "" { + t.pVariant, t.pExt = byte(uStart-1), uint16(uStart-1) + t.str = string(buf[:uStart+len(b)]) + } else { + s := t.str + start, end, hasExt := t.findTypeForKey(key) + if start == end { + if hasExt { + b = b[2:] + } + t.str = fmt.Sprintf("%s-%s%s", s[:start], b, s[end:]) + } else { + t.str = fmt.Sprintf("%s%s%s", s[:start], value, s[end:]) + } + } + return t, nil } -// NumCompactTags is the number of compact tags. The maximum tag is -// NumCompactTags-1. -const NumCompactTags = compact.NumCompactTags +// findKeyAndType returns the start and end position for the type corresponding +// to key or the point at which to insert the key-value pair if the type +// wasn't found. The hasExt return value reports whether an -u extension was present. +// Note: the extensions are typically very small and are likely to contain +// only one key-type pair. +func (t Tag) findTypeForKey(key string) (start, end int, hasExt bool) { + p := int(t.pExt) + if len(key) != 2 || p == len(t.str) || p == 0 { + return p, p, false + } + s := t.str + + // Find the correct extension. + for p++; s[p] != 'u'; p++ { + if s[p] > 'u' { + p-- + return p, p, false + } + if p = nextExtension(s, p); p == len(s) { + return len(s), len(s), false + } + } + // Proceed to the hyphen following the extension name. + p++ + + // curKey is the key currently being processed. + curKey := "" + + // Iterate over keys until we get the end of a section. + for { + // p points to the hyphen preceding the current token. + if p3 := p + 3; s[p3] == '-' { + // Found a key. + // Check whether we just processed the key that was requested. + if curKey == key { + return start, p, true + } + // Set to the next key and continue scanning type tokens. + curKey = s[p+1 : p3] + if curKey > key { + return p, p, true + } + // Start of the type token sequence. + start = p + 4 + // A type is at least 3 characters long. + p += 7 // 4 + 3 + } else { + // Attribute or type, which is at least 3 characters long. + p += 4 + } + // p points past the third character of a type or attribute. + max := p + 5 // maximum length of token plus hyphen. + if len(s) < max { + max = len(s) + } + for ; p < max && s[p] != '-'; p++ { + } + // Bail if we have exhausted all tokens or if the next token starts + // a new extension. + if p == len(s) || s[p+2] == '-' { + if curKey == key { + return start, p, true + } + return p, p, true + } + } +} // CompactIndex returns an index, where 0 <= index < NumCompactTags, for tags -// for which data exists in the text repository.The index will change over time -// and should not be stored in persistent storage. If t does not match a compact -// index, exact will be false and the compact index will be returned for the -// first match after repeatedly taking the Parent of t. -func CompactIndex(t Tag) (index int, exact bool) { - id, exact := compact.LanguageID(compact.Tag(t)) - return int(id), exact +// for which data exists in the text repository. The index will change over time +// and should not be stored in persistent storage. Extensions, except for the +// 'va' type of the 'u' extension, are ignored. It will return 0, false if no +// compact tag exists, where 0 is the index for the root language (Und). +func CompactIndex(t Tag) (index int, ok bool) { + // TODO: perhaps give more frequent tags a lower index. + // TODO: we could make the indexes stable. This will excluded some + // possibilities for optimization, so don't do this quite yet. + b, s, r := t.Raw() + if len(t.str) > 0 { + if strings.HasPrefix(t.str, "x-") { + // We have no entries for user-defined tags. + return 0, false + } + if uint16(t.pVariant) != t.pExt { + // There are no tags with variants and an u-va type. + if t.TypeForKey("va") != "" { + return 0, false + } + t, _ = Raw.Compose(b, s, r, t.Variants()) + } else if _, ok := t.Extension('u'); ok { + // Strip all but the 'va' entry. + variant := t.TypeForKey("va") + t, _ = Raw.Compose(b, s, r) + t, _ = t.SetTypeForKey("va", variant) + } + if len(t.str) > 0 { + // We have some variants. + for i, s := range specialTags { + if s == t { + return i + 1, true + } + } + return 0, false + } + } + // No variants specified: just compare core components. + // The key has the form lllssrrr, where l, s, and r are nibbles for + // respectively the langID, scriptID, and regionID. + key := uint32(b.langID) << (8 + 12) + key |= uint32(s.scriptID) << 12 + key |= uint32(r.regionID) + x, ok := coreTags[key] + return int(x), ok } -var root = language.Tag{} - // Base is an ISO 639 language code, used for encoding the base language // of a language tag. type Base struct { - langID language.Language + langID } // ParseBase parses a 2- or 3-letter ISO 639 code. // It returns a ValueError if s is a well-formed but unknown language identifier // or another error if another error occurred. func ParseBase(s string) (Base, error) { - l, err := language.ParseBase(s) + if n := len(s); n < 2 || 3 < n { + return Base{}, errSyntax + } + var buf [3]byte + l, err := getLangID(buf[:copy(buf[:], s)]) return Base{l}, err } -// String returns the BCP 47 representation of the base language. -func (b Base) String() string { - return b.langID.String() -} - -// ISO3 returns the ISO 639-3 language code. -func (b Base) ISO3() string { - return b.langID.ISO3() -} - -// IsPrivateUse reports whether this language code is reserved for private use. -func (b Base) IsPrivateUse() bool { - return b.langID.IsPrivateUse() -} - // Script is a 4-letter ISO 15924 code for representing scripts. // It is idiomatically represented in title case. type Script struct { - scriptID language.Script + scriptID } // ParseScript parses a 4-letter ISO 15924 code. // It returns a ValueError if s is a well-formed but unknown script identifier // or another error if another error occurred. func ParseScript(s string) (Script, error) { - sc, err := language.ParseScript(s) + if len(s) != 4 { + return Script{}, errSyntax + } + var buf [4]byte + sc, err := getScriptID(script, buf[:copy(buf[:], s)]) return Script{sc}, err } -// String returns the script code in title case. -// It returns "Zzzz" for an unspecified script. -func (s Script) String() string { - return s.scriptID.String() -} - -// IsPrivateUse reports whether this script code is reserved for private use. -func (s Script) IsPrivateUse() bool { - return s.scriptID.IsPrivateUse() -} - // Region is an ISO 3166-1 or UN M.49 code for representing countries and regions. type Region struct { - regionID language.Region + regionID } // EncodeM49 returns the Region for the given UN M.49 code. // It returns an error if r is not a valid code. func EncodeM49(r int) (Region, error) { - rid, err := language.EncodeM49(r) + rid, err := getRegionM49(r) return Region{rid}, err } @@ -516,54 +801,62 @@ func EncodeM49(r int) (Region, error) { // It returns a ValueError if s is a well-formed but unknown region identifier // or another error if another error occurred. func ParseRegion(s string) (Region, error) { - r, err := language.ParseRegion(s) + if n := len(s); n < 2 || 3 < n { + return Region{}, errSyntax + } + var buf [3]byte + r, err := getRegionID(buf[:copy(buf[:], s)]) return Region{r}, err } -// String returns the BCP 47 representation for the region. -// It returns "ZZ" for an unspecified region. -func (r Region) String() string { - return r.regionID.String() -} - -// ISO3 returns the 3-letter ISO code of r. -// Note that not all regions have a 3-letter ISO code. -// In such cases this method returns "ZZZ". -func (r Region) ISO3() string { - return r.regionID.ISO3() -} - -// M49 returns the UN M.49 encoding of r, or 0 if this encoding -// is not defined for r. -func (r Region) M49() int { - return r.regionID.M49() -} - -// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This -// may include private-use tags that are assigned by CLDR and used in this -// implementation. So IsPrivateUse and IsCountry can be simultaneously true. -func (r Region) IsPrivateUse() bool { - return r.regionID.IsPrivateUse() -} - // IsCountry returns whether this region is a country or autonomous area. This // includes non-standard definitions from CLDR. func (r Region) IsCountry() bool { - return r.regionID.IsCountry() + if r.regionID == 0 || r.IsGroup() || r.IsPrivateUse() && r.regionID != _XK { + return false + } + return true } // IsGroup returns whether this region defines a collection of regions. This // includes non-standard definitions from CLDR. func (r Region) IsGroup() bool { - return r.regionID.IsGroup() + if r.regionID == 0 { + return false + } + return int(regionInclusion[r.regionID]) < len(regionContainment) } // Contains returns whether Region c is contained by Region r. It returns true // if c == r. func (r Region) Contains(c Region) bool { - return r.regionID.Contains(c.regionID) + return r.regionID.contains(c.regionID) } +func (r regionID) contains(c regionID) bool { + if r == c { + return true + } + g := regionInclusion[r] + if g >= nRegionGroups { + return false + } + m := regionContainment[g] + + d := regionInclusion[c] + b := regionInclusionBits[d] + + // A contained country may belong to multiple disjoint groups. Matching any + // of these indicates containment. If the contained region is a group, it + // must strictly be a subset. + if d >= nRegionGroups { + return b&m != 0 + } + return b&^m == 0 +} + +var errNoTLD = errors.New("language: region is not a valid ccTLD") + // TLD returns the country code top-level domain (ccTLD). UK is returned for GB. // In all other cases it returns either the region itself or an error. // @@ -572,15 +865,25 @@ func (r Region) Contains(c Region) bool { // region will already be canonicalized it was obtained from a Tag that was // obtained using any of the default methods. func (r Region) TLD() (Region, error) { - tld, err := r.regionID.TLD() - return Region{tld}, err + // See http://en.wikipedia.org/wiki/Country_code_top-level_domain for the + // difference between ISO 3166-1 and IANA ccTLD. + if r.regionID == _GB { + r = Region{_UK} + } + if (r.typ() & ccTLD) == 0 { + return Region{}, errNoTLD + } + return r, nil } // Canonicalize returns the region or a possible replacement if the region is // deprecated. It will not return a replacement for deprecated regions that // are split into multiple regions. func (r Region) Canonicalize() Region { - return Region{r.regionID.Canonicalize()} + if cr := normRegion(r.regionID); cr != 0 { + return Region{cr} + } + return r } // Variant represents a registered variant of a language as defined by BCP 47. @@ -591,8 +894,11 @@ type Variant struct { // ParseVariant parses and returns a Variant. An error is returned if s is not // a valid variant. func ParseVariant(s string) (Variant, error) { - v, err := language.ParseVariant(s) - return Variant{v.String()}, err + s = strings.ToLower(s) + if _, ok := variantIndex[s]; ok { + return Variant{s}, nil + } + return Variant{}, mkErrInvalid([]byte(s)) } // String returns the string representation of the variant. diff --git a/vendor/golang.org/x/text/internal/language/lookup.go b/vendor/golang.org/x/text/language/lookup.go similarity index 80% rename from vendor/golang.org/x/text/internal/language/lookup.go rename to vendor/golang.org/x/text/language/lookup.go index 6294b8152..1d80ac370 100644 --- a/vendor/golang.org/x/text/internal/language/lookup.go +++ b/vendor/golang.org/x/text/language/lookup.go @@ -17,11 +17,11 @@ import ( // if it could not be found. func findIndex(idx tag.Index, key []byte, form string) (index int, err error) { if !tag.FixCase(form, key) { - return 0, ErrSyntax + return 0, errSyntax } i := idx.Index(key) if i == -1 { - return 0, NewValueError(key) + return 0, mkErrInvalid(key) } return i, nil } @@ -32,45 +32,38 @@ func searchUint(imap []uint16, key uint16) int { }) } -type Language uint16 +type langID uint16 // getLangID returns the langID of s if s is a canonical subtag // or langUnknown if s is not a canonical subtag. -func getLangID(s []byte) (Language, error) { +func getLangID(s []byte) (langID, error) { if len(s) == 2 { return getLangISO2(s) } return getLangISO3(s) } -// TODO language normalization as well as the AliasMaps could be moved to the -// higher level package, but it is a bit tricky to separate the generation. - -func (id Language) Canonicalize() (Language, AliasType) { - return normLang(id) -} - // mapLang returns the mapped langID of id according to mapping m. -func normLang(id Language) (Language, AliasType) { - k := sort.Search(len(AliasMap), func(i int) bool { - return AliasMap[i].From >= uint16(id) +func normLang(id langID) (langID, langAliasType) { + k := sort.Search(len(langAliasMap), func(i int) bool { + return langAliasMap[i].from >= uint16(id) }) - if k < len(AliasMap) && AliasMap[k].From == uint16(id) { - return Language(AliasMap[k].To), AliasTypes[k] + if k < len(langAliasMap) && langAliasMap[k].from == uint16(id) { + return langID(langAliasMap[k].to), langAliasTypes[k] } - return id, AliasTypeUnknown + return id, langAliasTypeUnknown } // getLangISO2 returns the langID for the given 2-letter ISO language code // or unknownLang if this does not exist. -func getLangISO2(s []byte) (Language, error) { +func getLangISO2(s []byte) (langID, error) { if !tag.FixCase("zz", s) { - return 0, ErrSyntax + return 0, errSyntax } if i := lang.Index(s); i != -1 && lang.Elem(i)[3] != 0 { - return Language(i), nil + return langID(i), nil } - return 0, NewValueError(s) + return 0, mkErrInvalid(s) } const base = 'z' - 'a' + 1 @@ -95,7 +88,7 @@ func intToStr(v uint, s []byte) { // getLangISO3 returns the langID for the given 3-letter ISO language code // or unknownLang if this does not exist. -func getLangISO3(s []byte) (Language, error) { +func getLangISO3(s []byte) (langID, error) { if tag.FixCase("und", s) { // first try to match canonical 3-letter entries for i := lang.Index(s[:2]); i != -1; i = lang.Next(s[:2], i) { @@ -103,7 +96,7 @@ func getLangISO3(s []byte) (Language, error) { // We treat "und" as special and always translate it to "unspecified". // Note that ZZ and Zzzz are private use and are not treated as // unspecified by default. - id := Language(i) + id := langID(i) if id == nonCanonicalUnd { return 0, nil } @@ -111,26 +104,26 @@ func getLangISO3(s []byte) (Language, error) { } } if i := altLangISO3.Index(s); i != -1 { - return Language(altLangIndex[altLangISO3.Elem(i)[3]]), nil + return langID(altLangIndex[altLangISO3.Elem(i)[3]]), nil } n := strToInt(s) if langNoIndex[n/8]&(1<<(n%8)) != 0 { - return Language(n) + langNoIndexOffset, nil + return langID(n) + langNoIndexOffset, nil } // Check for non-canonical uses of ISO3. for i := lang.Index(s[:1]); i != -1; i = lang.Next(s[:1], i) { if e := lang.Elem(i); e[2] == s[1] && e[3] == s[2] { - return Language(i), nil + return langID(i), nil } } - return 0, NewValueError(s) + return 0, mkErrInvalid(s) } - return 0, ErrSyntax + return 0, errSyntax } -// StringToBuf writes the string to b and returns the number of bytes +// stringToBuf writes the string to b and returns the number of bytes // written. cap(b) must be >= 3. -func (id Language) StringToBuf(b []byte) int { +func (id langID) stringToBuf(b []byte) int { if id >= langNoIndexOffset { intToStr(uint(id)-langNoIndexOffset, b[:3]) return 3 @@ -147,7 +140,7 @@ func (id Language) StringToBuf(b []byte) int { // String returns the BCP 47 representation of the langID. // Use b as variable name, instead of id, to ensure the variable // used is consistent with that of Base in which this type is embedded. -func (b Language) String() string { +func (b langID) String() string { if b == 0 { return "und" } else if b >= langNoIndexOffset { @@ -164,7 +157,7 @@ func (b Language) String() string { } // ISO3 returns the ISO 639-3 language code. -func (b Language) ISO3() string { +func (b langID) ISO3() string { if b == 0 || b >= langNoIndexOffset { return b.String() } @@ -180,24 +173,15 @@ func (b Language) ISO3() string { } // IsPrivateUse reports whether this language code is reserved for private use. -func (b Language) IsPrivateUse() bool { +func (b langID) IsPrivateUse() bool { return langPrivateStart <= b && b <= langPrivateEnd } -// SuppressScript returns the script marked as SuppressScript in the IANA -// language tag repository, or 0 if there is no such script. -func (b Language) SuppressScript() Script { - if b < langNoIndexOffset { - return Script(suppressScript[b]) - } - return 0 -} - -type Region uint16 +type regionID uint16 // getRegionID returns the region id for s if s is a valid 2-letter region code // or unknownRegion. -func getRegionID(s []byte) (Region, error) { +func getRegionID(s []byte) (regionID, error) { if len(s) == 3 { if isAlpha(s[0]) { return getRegionISO3(s) @@ -211,34 +195,34 @@ func getRegionID(s []byte) (Region, error) { // getRegionISO2 returns the regionID for the given 2-letter ISO country code // or unknownRegion if this does not exist. -func getRegionISO2(s []byte) (Region, error) { +func getRegionISO2(s []byte) (regionID, error) { i, err := findIndex(regionISO, s, "ZZ") if err != nil { return 0, err } - return Region(i) + isoRegionOffset, nil + return regionID(i) + isoRegionOffset, nil } // getRegionISO3 returns the regionID for the given 3-letter ISO country code // or unknownRegion if this does not exist. -func getRegionISO3(s []byte) (Region, error) { +func getRegionISO3(s []byte) (regionID, error) { if tag.FixCase("ZZZ", s) { for i := regionISO.Index(s[:1]); i != -1; i = regionISO.Next(s[:1], i) { if e := regionISO.Elem(i); e[2] == s[1] && e[3] == s[2] { - return Region(i) + isoRegionOffset, nil + return regionID(i) + isoRegionOffset, nil } } for i := 0; i < len(altRegionISO3); i += 3 { if tag.Compare(altRegionISO3[i:i+3], s) == 0 { - return Region(altRegionIDs[i/3]), nil + return regionID(altRegionIDs[i/3]), nil } } - return 0, NewValueError(s) + return 0, mkErrInvalid(s) } - return 0, ErrSyntax + return 0, errSyntax } -func getRegionM49(n int) (Region, error) { +func getRegionM49(n int) (regionID, error) { if 0 < n && n <= 999 { const ( searchBits = 7 @@ -252,7 +236,7 @@ func getRegionM49(n int) (Region, error) { return buf[i] >= val }) if r := fromM49[int(m49Index[idx])+i]; r&^regionMask == val { - return Region(r & regionMask), nil + return regionID(r & regionMask), nil } } var e ValueError @@ -263,13 +247,13 @@ func getRegionM49(n int) (Region, error) { // normRegion returns a region if r is deprecated or 0 otherwise. // TODO: consider supporting BYS (-> BLR), CSK (-> 200 or CZ), PHI (-> PHL) and AFI (-> DJ). // TODO: consider mapping split up regions to new most populous one (like CLDR). -func normRegion(r Region) Region { +func normRegion(r regionID) regionID { m := regionOldMap k := sort.Search(len(m), func(i int) bool { - return m[i].From >= uint16(r) + return m[i].from >= uint16(r) }) - if k < len(m) && m[k].From == uint16(r) { - return Region(m[k].To) + if k < len(m) && m[k].from == uint16(r) { + return regionID(m[k].to) } return 0 } @@ -280,13 +264,13 @@ const ( bcp47Region ) -func (r Region) typ() byte { +func (r regionID) typ() byte { return regionTypes[r] } // String returns the BCP 47 representation for the region. // It returns "ZZ" for an unspecified region. -func (r Region) String() string { +func (r regionID) String() string { if r < isoRegionOffset { if r == 0 { return "ZZ" @@ -300,7 +284,7 @@ func (r Region) String() string { // ISO3 returns the 3-letter ISO code of r. // Note that not all regions have a 3-letter ISO code. // In such cases this method returns "ZZZ". -func (r Region) ISO3() string { +func (r regionID) ISO3() string { if r < isoRegionOffset { return "ZZZ" } @@ -317,29 +301,29 @@ func (r Region) ISO3() string { // M49 returns the UN M.49 encoding of r, or 0 if this encoding // is not defined for r. -func (r Region) M49() int { +func (r regionID) M49() int { return int(m49[r]) } // IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This // may include private-use tags that are assigned by CLDR and used in this // implementation. So IsPrivateUse and IsCountry can be simultaneously true. -func (r Region) IsPrivateUse() bool { +func (r regionID) IsPrivateUse() bool { return r.typ()&iso3166UserAssigned != 0 } -type Script uint8 +type scriptID uint8 // getScriptID returns the script id for string s. It assumes that s // is of the format [A-Z][a-z]{3}. -func getScriptID(idx tag.Index, s []byte) (Script, error) { +func getScriptID(idx tag.Index, s []byte) (scriptID, error) { i, err := findIndex(idx, s, "Zzzz") - return Script(i), err + return scriptID(i), err } // String returns the script code in title case. // It returns "Zzzz" for an unspecified script. -func (s Script) String() string { +func (s scriptID) String() string { if s == 0 { return "Zzzz" } @@ -347,7 +331,7 @@ func (s Script) String() string { } // IsPrivateUse reports whether this script code is reserved for private use. -func (s Script) IsPrivateUse() bool { +func (s scriptID) IsPrivateUse() bool { return _Qaaa <= s && s <= _Qabx } @@ -405,7 +389,7 @@ func grandfathered(s [maxAltTaglen]byte) (t Tag, ok bool) { if v < 0 { return Make(altTags[altTagIndex[-v-1]:altTagIndex[-v]]), true } - t.LangID = Language(v) + t.lang = langID(v) return t, true } return t, false diff --git a/vendor/golang.org/x/text/language/match.go b/vendor/golang.org/x/text/language/match.go index f73492134..15b74d125 100644 --- a/vendor/golang.org/x/text/language/match.go +++ b/vendor/golang.org/x/text/language/match.go @@ -4,12 +4,7 @@ package language -import ( - "errors" - "strings" - - "golang.org/x/text/internal/language" -) +import "errors" // A MatchOption configures a Matcher. type MatchOption func(*matcher) @@ -79,13 +74,12 @@ func NewMatcher(t []Tag, options ...MatchOption) Matcher { } func (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence) { - var tt language.Tag match, w, c := m.getBest(want...) if match != nil { - tt, index = match.tag, match.index + t, index = match.tag, match.index } else { // TODO: this should be an option - tt = m.default_.tag + t = m.default_.tag if m.preferSameScript { outer: for _, w := range want { @@ -97,7 +91,7 @@ func (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence) { } for i, h := range m.supported { if script.scriptID == h.maxScript { - tt, index = h.tag, i + t, index = h.tag, i break outer } } @@ -105,45 +99,238 @@ func (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence) { } // TODO: select first language tag based on script. } - if w.RegionID != tt.RegionID && w.RegionID != 0 { - if w.RegionID != 0 && tt.RegionID != 0 && tt.RegionID.Contains(w.RegionID) { - tt.RegionID = w.RegionID - tt.RemakeString() - } else if r := w.RegionID.String(); len(r) == 2 { - // TODO: also filter macro and deprecated. - tt, _ = tt.SetTypeForKey("rg", strings.ToLower(r)+"zzzz") - } + if w.region != 0 && t.region != 0 && t.region.contains(w.region) { + t, _ = Raw.Compose(t, Region{w.region}) } // Copy options from the user-provided tag into the result tag. This is hard // to do after the fact, so we do it here. // TODO: add in alternative variants to -u-va-. // TODO: add preferred region to -u-rg-. if e := w.Extensions(); len(e) > 0 { - b := language.Builder{} - b.SetTag(tt) - for _, e := range e { - b.AddExt(e) - } - tt = b.Make() + t, _ = Raw.Compose(t, e) + } + return t, index, c +} + +type scriptRegionFlags uint8 + +const ( + isList = 1 << iota + scriptInFrom + regionInFrom +) + +func (t *Tag) setUndefinedLang(id langID) { + if t.lang == 0 { + t.lang = id + } +} + +func (t *Tag) setUndefinedScript(id scriptID) { + if t.script == 0 { + t.script = id + } +} + +func (t *Tag) setUndefinedRegion(id regionID) { + if t.region == 0 || t.region.contains(id) { + t.region = id } - return makeTag(tt), index, c } // ErrMissingLikelyTagsData indicates no information was available // to compute likely values of missing tags. var ErrMissingLikelyTagsData = errors.New("missing likely tags data") -// func (t *Tag) setTagsFrom(id Tag) { -// t.LangID = id.LangID -// t.ScriptID = id.ScriptID -// t.RegionID = id.RegionID -// } +// addLikelySubtags sets subtags to their most likely value, given the locale. +// In most cases this means setting fields for unknown values, but in some +// cases it may alter a value. It returns an ErrMissingLikelyTagsData error +// if the given locale cannot be expanded. +func (t Tag) addLikelySubtags() (Tag, error) { + id, err := addTags(t) + if err != nil { + return t, err + } else if id.equalTags(t) { + return t, nil + } + id.remakeString() + return id, nil +} + +// specializeRegion attempts to specialize a group region. +func specializeRegion(t *Tag) bool { + if i := regionInclusion[t.region]; i < nRegionGroups { + x := likelyRegionGroup[i] + if langID(x.lang) == t.lang && scriptID(x.script) == t.script { + t.region = regionID(x.region) + } + return true + } + return false +} + +func addTags(t Tag) (Tag, error) { + // We leave private use identifiers alone. + if t.private() { + return t, nil + } + if t.script != 0 && t.region != 0 { + if t.lang != 0 { + // already fully specified + specializeRegion(&t) + return t, nil + } + // Search matches for und-script-region. Note that for these cases + // region will never be a group so there is no need to check for this. + list := likelyRegion[t.region : t.region+1] + if x := list[0]; x.flags&isList != 0 { + list = likelyRegionList[x.lang : x.lang+uint16(x.script)] + } + for _, x := range list { + // Deviating from the spec. See match_test.go for details. + if scriptID(x.script) == t.script { + t.setUndefinedLang(langID(x.lang)) + return t, nil + } + } + } + if t.lang != 0 { + // Search matches for lang-script and lang-region, where lang != und. + if t.lang < langNoIndexOffset { + x := likelyLang[t.lang] + if x.flags&isList != 0 { + list := likelyLangList[x.region : x.region+uint16(x.script)] + if t.script != 0 { + for _, x := range list { + if scriptID(x.script) == t.script && x.flags&scriptInFrom != 0 { + t.setUndefinedRegion(regionID(x.region)) + return t, nil + } + } + } else if t.region != 0 { + count := 0 + goodScript := true + tt := t + for _, x := range list { + // We visit all entries for which the script was not + // defined, including the ones where the region was not + // defined. This allows for proper disambiguation within + // regions. + if x.flags&scriptInFrom == 0 && t.region.contains(regionID(x.region)) { + tt.region = regionID(x.region) + tt.setUndefinedScript(scriptID(x.script)) + goodScript = goodScript && tt.script == scriptID(x.script) + count++ + } + } + if count == 1 { + return tt, nil + } + // Even if we fail to find a unique Region, we might have + // an unambiguous script. + if goodScript { + t.script = tt.script + } + } + } + } + } else { + // Search matches for und-script. + if t.script != 0 { + x := likelyScript[t.script] + if x.region != 0 { + t.setUndefinedRegion(regionID(x.region)) + t.setUndefinedLang(langID(x.lang)) + return t, nil + } + } + // Search matches for und-region. If und-script-region exists, it would + // have been found earlier. + if t.region != 0 { + if i := regionInclusion[t.region]; i < nRegionGroups { + x := likelyRegionGroup[i] + if x.region != 0 { + t.setUndefinedLang(langID(x.lang)) + t.setUndefinedScript(scriptID(x.script)) + t.region = regionID(x.region) + } + } else { + x := likelyRegion[t.region] + if x.flags&isList != 0 { + x = likelyRegionList[x.lang] + } + if x.script != 0 && x.flags != scriptInFrom { + t.setUndefinedLang(langID(x.lang)) + t.setUndefinedScript(scriptID(x.script)) + return t, nil + } + } + } + } + + // Search matches for lang. + if t.lang < langNoIndexOffset { + x := likelyLang[t.lang] + if x.flags&isList != 0 { + x = likelyLangList[x.region] + } + if x.region != 0 { + t.setUndefinedScript(scriptID(x.script)) + t.setUndefinedRegion(regionID(x.region)) + } + specializeRegion(&t) + if t.lang == 0 { + t.lang = _en // default language + } + return t, nil + } + return t, ErrMissingLikelyTagsData +} + +func (t *Tag) setTagsFrom(id Tag) { + t.lang = id.lang + t.script = id.script + t.region = id.region +} + +// minimize removes the region or script subtags from t such that +// t.addLikelySubtags() == t.minimize().addLikelySubtags(). +func (t Tag) minimize() (Tag, error) { + t, err := minimizeTags(t) + if err != nil { + return t, err + } + t.remakeString() + return t, nil +} + +// minimizeTags mimics the behavior of the ICU 51 C implementation. +func minimizeTags(t Tag) (Tag, error) { + if t.equalTags(und) { + return t, nil + } + max, err := addTags(t) + if err != nil { + return t, err + } + for _, id := range [...]Tag{ + {lang: t.lang}, + {lang: t.lang, region: t.region}, + {lang: t.lang, script: t.script}, + } { + if x, err := addTags(id); err == nil && max.equalTags(x) { + t.setTagsFrom(id) + break + } + } + return t, nil +} // Tag Matching // CLDR defines an algorithm for finding the best match between two sets of language // tags. The basic algorithm defines how to score a possible match and then find // the match with the best score -// (see https://www.unicode.org/reports/tr35/#LanguageMatching). +// (see http://www.unicode.org/reports/tr35/#LanguageMatching). // Using scoring has several disadvantages. The scoring obfuscates the importance of // the various factors considered, making the algorithm harder to understand. Using // scoring also requires the full score to be computed for each pair of tags. @@ -254,7 +441,7 @@ var ErrMissingLikelyTagsData = errors.New("missing likely tags data") type matcher struct { default_ *haveTag supported []*haveTag - index map[language.Language]*matchHeader + index map[langID]*matchHeader passSettings bool preferSameScript bool } @@ -269,7 +456,7 @@ type matchHeader struct { // haveTag holds a supported Tag and its maximized script and region. The maximized // or canonicalized language is not stored as it is not needed during matching. type haveTag struct { - tag language.Tag + tag Tag // index of this tag in the original list of supported tags. index int @@ -279,37 +466,37 @@ type haveTag struct { conf Confidence // Maximized region and script. - maxRegion language.Region - maxScript language.Script + maxRegion regionID + maxScript scriptID // altScript may be checked as an alternative match to maxScript. If altScript // matches, the confidence level for this match is Low. Theoretically there // could be multiple alternative scripts. This does not occur in practice. - altScript language.Script + altScript scriptID // nextMax is the index of the next haveTag with the same maximized tags. nextMax uint16 } -func makeHaveTag(tag language.Tag, index int) (haveTag, language.Language) { +func makeHaveTag(tag Tag, index int) (haveTag, langID) { max := tag - if tag.LangID != 0 || tag.RegionID != 0 || tag.ScriptID != 0 { - max, _ = canonicalize(All, max) - max, _ = max.Maximize() - max.RemakeString() + if tag.lang != 0 || tag.region != 0 || tag.script != 0 { + max, _ = max.canonicalize(All) + max, _ = addTags(max) + max.remakeString() } - return haveTag{tag, index, Exact, max.RegionID, max.ScriptID, altScript(max.LangID, max.ScriptID), 0}, max.LangID + return haveTag{tag, index, Exact, max.region, max.script, altScript(max.lang, max.script), 0}, max.lang } // altScript returns an alternative script that may match the given script with // a low confidence. At the moment, the langMatch data allows for at most one // script to map to another and we rely on this to keep the code simple. -func altScript(l language.Language, s language.Script) language.Script { +func altScript(l langID, s scriptID) scriptID { for _, alt := range matchScript { // TODO: also match cases where language is not the same. - if (language.Language(alt.wantLang) == l || language.Language(alt.haveLang) == l) && - language.Script(alt.haveScript) == s { - return language.Script(alt.wantScript) + if (langID(alt.wantLang) == l || langID(alt.haveLang) == l) && + scriptID(alt.haveScript) == s { + return scriptID(alt.wantScript) } } return 0 @@ -321,7 +508,7 @@ func (h *matchHeader) addIfNew(n haveTag, exact bool) { h.original = h.original || exact // Don't add new exact matches. for _, v := range h.haveTags { - if equalsRest(v.tag, n.tag) { + if v.tag.equalsRest(n.tag) { return } } @@ -330,7 +517,7 @@ func (h *matchHeader) addIfNew(n haveTag, exact bool) { for i, v := range h.haveTags { if v.maxScript == n.maxScript && v.maxRegion == n.maxRegion && - v.tag.VariantOrPrivateUseTags() == n.tag.VariantOrPrivateUseTags() { + v.tag.variantOrPrivateTagStr() == n.tag.variantOrPrivateTagStr() { for h.haveTags[i].nextMax != 0 { i = int(h.haveTags[i].nextMax) } @@ -343,7 +530,7 @@ func (h *matchHeader) addIfNew(n haveTag, exact bool) { // header returns the matchHeader for the given language. It creates one if // it doesn't already exist. -func (m *matcher) header(l language.Language) *matchHeader { +func (m *matcher) header(l langID) *matchHeader { if h := m.index[l]; h != nil { return h } @@ -367,7 +554,7 @@ func toConf(d uint8) Confidence { // for a given tag. func newMatcher(supported []Tag, options []MatchOption) *matcher { m := &matcher{ - index: make(map[language.Language]*matchHeader), + index: make(map[langID]*matchHeader), preferSameScript: true, } for _, o := range options { @@ -380,18 +567,16 @@ func newMatcher(supported []Tag, options []MatchOption) *matcher { // Add supported languages to the index. Add exact matches first to give // them precedence. for i, tag := range supported { - tt := tag.tag() - pair, _ := makeHaveTag(tt, i) - m.header(tt.LangID).addIfNew(pair, true) + pair, _ := makeHaveTag(tag, i) + m.header(tag.lang).addIfNew(pair, true) m.supported = append(m.supported, &pair) } - m.default_ = m.header(supported[0].lang()).haveTags[0] + m.default_ = m.header(supported[0].lang).haveTags[0] // Keep these in two different loops to support the case that two equivalent // languages are distinguished, such as iw and he. for i, tag := range supported { - tt := tag.tag() - pair, max := makeHaveTag(tt, i) - if max != tt.LangID { + pair, max := makeHaveTag(tag, i) + if max != tag.lang { m.header(max).addIfNew(pair, true) } } @@ -400,11 +585,11 @@ func newMatcher(supported []Tag, options []MatchOption) *matcher { // update will only add entries to original indexes, thus not computing any // transitive relations. update := func(want, have uint16, conf Confidence) { - if hh := m.index[language.Language(have)]; hh != nil { + if hh := m.index[langID(have)]; hh != nil { if !hh.original { return } - hw := m.header(language.Language(want)) + hw := m.header(langID(want)) for _, ht := range hh.haveTags { v := *ht if conf < v.conf { @@ -412,7 +597,7 @@ func newMatcher(supported []Tag, options []MatchOption) *matcher { } v.nextMax = 0 // this value needs to be recomputed if v.altScript != 0 { - v.altScript = altScript(language.Language(want), v.maxScript) + v.altScript = altScript(langID(want), v.maxScript) } hw.addIfNew(v, conf == Exact && hh.original) } @@ -433,67 +618,66 @@ func newMatcher(supported []Tag, options []MatchOption) *matcher { // First we match deprecated equivalents. If they are perfect equivalents // (their canonicalization simply substitutes a different language code, but // nothing else), the match confidence is Exact, otherwise it is High. - for i, lm := range language.AliasMap { + for i, lm := range langAliasMap { // If deprecated codes match and there is no fiddling with the script or // or region, we consider it an exact match. conf := Exact - if language.AliasTypes[i] != language.Macro { - if !isExactEquivalent(language.Language(lm.From)) { + if langAliasTypes[i] != langMacro { + if !isExactEquivalent(langID(lm.from)) { conf = High } - update(lm.To, lm.From, conf) + update(lm.to, lm.from, conf) } - update(lm.From, lm.To, conf) + update(lm.from, lm.to, conf) } return m } // getBest gets the best matching tag in m for any of the given tags, taking into // account the order of preference of the given tags. -func (m *matcher) getBest(want ...Tag) (got *haveTag, orig language.Tag, c Confidence) { +func (m *matcher) getBest(want ...Tag) (got *haveTag, orig Tag, c Confidence) { best := bestMatch{} - for i, ww := range want { - w := ww.tag() - var max language.Tag + for i, w := range want { + var max Tag // Check for exact match first. - h := m.index[w.LangID] - if w.LangID != 0 { + h := m.index[w.lang] + if w.lang != 0 { if h == nil { continue } // Base language is defined. - max, _ = canonicalize(Legacy|Deprecated|Macro, w) + max, _ = w.canonicalize(Legacy | Deprecated | Macro) // A region that is added through canonicalization is stronger than // a maximized region: set it in the original (e.g. mo -> ro-MD). - if w.RegionID != max.RegionID { - w.RegionID = max.RegionID + if w.region != max.region { + w.region = max.region } // TODO: should we do the same for scripts? // See test case: en, sr, nl ; sh ; sr - max, _ = max.Maximize() + max, _ = addTags(max) } else { // Base language is not defined. if h != nil { for i := range h.haveTags { have := h.haveTags[i] - if equalsRest(have.tag, w) { + if have.tag.equalsRest(w) { return have, w, Exact } } } - if w.ScriptID == 0 && w.RegionID == 0 { + if w.script == 0 && w.region == 0 { // We skip all tags matching und for approximate matching, including // private tags. continue } - max, _ = w.Maximize() - if h = m.index[max.LangID]; h == nil { + max, _ = addTags(w) + if h = m.index[max.lang]; h == nil { continue } } pin := true for _, t := range want[i+1:] { - if w.LangID == t.lang() { + if w.lang == t.lang { pin = false break } @@ -501,11 +685,11 @@ func (m *matcher) getBest(want ...Tag) (got *haveTag, orig language.Tag, c Confi // Check for match based on maximized tag. for i := range h.haveTags { have := h.haveTags[i] - best.update(have, w, max.ScriptID, max.RegionID, pin) + best.update(have, w, max.script, max.region, pin) if best.conf == Exact { for have.nextMax != 0 { have = h.haveTags[have.nextMax] - best.update(have, w, max.ScriptID, max.RegionID, pin) + best.update(have, w, max.script, max.region, pin) } return best.have, best.want, best.conf } @@ -513,9 +697,9 @@ func (m *matcher) getBest(want ...Tag) (got *haveTag, orig language.Tag, c Confi } if best.conf <= No { if len(want) != 0 { - return nil, want[0].tag(), No + return nil, want[0], No } - return nil, language.Tag{}, No + return nil, Tag{}, No } return best.have, best.want, best.conf } @@ -523,9 +707,9 @@ func (m *matcher) getBest(want ...Tag) (got *haveTag, orig language.Tag, c Confi // bestMatch accumulates the best match so far. type bestMatch struct { have *haveTag - want language.Tag + want Tag conf Confidence - pinnedRegion language.Region + pinnedRegion regionID pinLanguage bool sameRegionGroup bool // Cached results from applying tie-breaking rules. @@ -550,19 +734,19 @@ type bestMatch struct { // still prefer a second language over a dialect of the preferred language by // explicitly specifying dialects, e.g. "en, nl, en-GB". In this case pin should // be false. -func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.Script, maxRegion language.Region, pin bool) { +func (m *bestMatch) update(have *haveTag, tag Tag, maxScript scriptID, maxRegion regionID, pin bool) { // Bail if the maximum attainable confidence is below that of the current best match. c := have.conf if c < m.conf { return } // Don't change the language once we already have found an exact match. - if m.pinLanguage && tag.LangID != m.want.LangID { + if m.pinLanguage && tag.lang != m.want.lang { return } // Pin the region group if we are comparing tags for the same language. - if tag.LangID == m.want.LangID && m.sameRegionGroup { - _, sameGroup := regionGroupDist(m.pinnedRegion, have.maxRegion, have.maxScript, m.want.LangID) + if tag.lang == m.want.lang && m.sameRegionGroup { + _, sameGroup := regionGroupDist(m.pinnedRegion, have.maxRegion, have.maxScript, m.want.lang) if !sameGroup { return } @@ -572,7 +756,7 @@ func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.S // don't pin anything, otherwise pin the language. m.pinLanguage = pin } - if equalsRest(have.tag, tag) { + if have.tag.equalsRest(tag) { } else if have.maxScript != maxScript { // There is usually very little comprehension between different scripts. // In a few cases there may still be Low comprehension. This possibility @@ -602,7 +786,7 @@ func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.S // Tie-breaker rules: // We prefer if the pre-maximized language was specified and identical. - origLang := have.tag.LangID == tag.LangID && tag.LangID != 0 + origLang := have.tag.lang == tag.lang && tag.lang != 0 if !beaten && m.origLang != origLang { if m.origLang { return @@ -611,7 +795,7 @@ func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.S } // We prefer if the pre-maximized region was specified and identical. - origReg := have.tag.RegionID == tag.RegionID && tag.RegionID != 0 + origReg := have.tag.region == tag.region && tag.region != 0 if !beaten && m.origReg != origReg { if m.origReg { return @@ -619,7 +803,7 @@ func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.S beaten = true } - regGroupDist, sameGroup := regionGroupDist(have.maxRegion, maxRegion, maxScript, tag.LangID) + regGroupDist, sameGroup := regionGroupDist(have.maxRegion, maxRegion, maxScript, tag.lang) if !beaten && m.regGroupDist != regGroupDist { if regGroupDist > m.regGroupDist { return @@ -627,7 +811,7 @@ func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.S beaten = true } - paradigmReg := isParadigmLocale(tag.LangID, have.maxRegion) + paradigmReg := isParadigmLocale(tag.lang, have.maxRegion) if !beaten && m.paradigmReg != paradigmReg { if !paradigmReg { return @@ -636,7 +820,7 @@ func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.S } // Next we prefer if the pre-maximized script was specified and identical. - origScript := have.tag.ScriptID == tag.ScriptID && tag.ScriptID != 0 + origScript := have.tag.script == tag.script && tag.script != 0 if !beaten && m.origScript != origScript { if m.origScript { return @@ -659,9 +843,9 @@ func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.S } } -func isParadigmLocale(lang language.Language, r language.Region) bool { +func isParadigmLocale(lang langID, r regionID) bool { for _, e := range paradigmLocales { - if language.Language(e[0]) == lang && (r == language.Region(e[1]) || r == language.Region(e[2])) { + if langID(e[0]) == lang && (r == regionID(e[1]) || r == regionID(e[2])) { return true } } @@ -670,13 +854,13 @@ func isParadigmLocale(lang language.Language, r language.Region) bool { // regionGroupDist computes the distance between two regions based on their // CLDR grouping. -func regionGroupDist(a, b language.Region, script language.Script, lang language.Language) (dist uint8, same bool) { +func regionGroupDist(a, b regionID, script scriptID, lang langID) (dist uint8, same bool) { const defaultDistance = 4 aGroup := uint(regionToGroups[a]) << 1 bGroup := uint(regionToGroups[b]) << 1 for _, ri := range matchRegion { - if language.Language(ri.lang) == lang && (ri.script == 0 || language.Script(ri.script) == script) { + if langID(ri.lang) == lang && (ri.script == 0 || scriptID(ri.script) == script) { group := uint(1 << (ri.group &^ 0x80)) if 0x80&ri.group == 0 { if aGroup&bGroup&group != 0 { // Both regions are in the group. @@ -692,16 +876,31 @@ func regionGroupDist(a, b language.Region, script language.Script, lang language return defaultDistance, true } +func (t Tag) variants() string { + if t.pVariant == 0 { + return "" + } + return t.str[t.pVariant:t.pExt] +} + +// variantOrPrivateTagStr returns variants or private use tags. +func (t Tag) variantOrPrivateTagStr() string { + if t.pExt > 0 { + return t.str[t.pVariant:t.pExt] + } + return t.str[t.pVariant:] +} + // equalsRest compares everything except the language. -func equalsRest(a, b language.Tag) bool { +func (a Tag) equalsRest(b Tag) bool { // TODO: don't include extensions in this comparison. To do this efficiently, // though, we should handle private tags separately. - return a.ScriptID == b.ScriptID && a.RegionID == b.RegionID && a.VariantOrPrivateUseTags() == b.VariantOrPrivateUseTags() + return a.script == b.script && a.region == b.region && a.variantOrPrivateTagStr() == b.variantOrPrivateTagStr() } // isExactEquivalent returns true if canonicalizing the language will not alter // the script or region of a tag. -func isExactEquivalent(l language.Language) bool { +func isExactEquivalent(l langID) bool { for _, o := range notEquivalent { if o == l { return false @@ -710,26 +909,25 @@ func isExactEquivalent(l language.Language) bool { return true } -var notEquivalent []language.Language +var notEquivalent []langID func init() { // Create a list of all languages for which canonicalization may alter the // script or region. - for _, lm := range language.AliasMap { - tag := language.Tag{LangID: language.Language(lm.From)} - if tag, _ = canonicalize(All, tag); tag.ScriptID != 0 || tag.RegionID != 0 { - notEquivalent = append(notEquivalent, language.Language(lm.From)) + for _, lm := range langAliasMap { + tag := Tag{lang: langID(lm.from)} + if tag, _ = tag.canonicalize(All); tag.script != 0 || tag.region != 0 { + notEquivalent = append(notEquivalent, langID(lm.from)) } } // Maximize undefined regions of paradigm locales. for i, v := range paradigmLocales { - t := language.Tag{LangID: language.Language(v[0])} - max, _ := t.Maximize() + max, _ := addTags(Tag{lang: langID(v[0])}) if v[1] == 0 { - paradigmLocales[i][1] = uint16(max.RegionID) + paradigmLocales[i][1] = uint16(max.region) } if v[2] == 0 { - paradigmLocales[i][2] = uint16(max.RegionID) + paradigmLocales[i][2] = uint16(max.region) } } } diff --git a/vendor/golang.org/x/text/language/parse.go b/vendor/golang.org/x/text/language/parse.go index 11acfd885..fca2d30e5 100644 --- a/vendor/golang.org/x/text/language/parse.go +++ b/vendor/golang.org/x/text/language/parse.go @@ -5,21 +5,216 @@ package language import ( + "bytes" "errors" + "fmt" + "sort" "strconv" "strings" - "golang.org/x/text/internal/language" + "golang.org/x/text/internal/tag" ) +// isAlpha returns true if the byte is not a digit. +// b must be an ASCII letter or digit. +func isAlpha(b byte) bool { + return b > '9' +} + +// isAlphaNum returns true if the string contains only ASCII letters or digits. +func isAlphaNum(s []byte) bool { + for _, c := range s { + if !('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9') { + return false + } + } + return true +} + +// errSyntax is returned by any of the parsing functions when the +// input is not well-formed, according to BCP 47. +// TODO: return the position at which the syntax error occurred? +var errSyntax = errors.New("language: tag is not well-formed") + // ValueError is returned by any of the parsing functions when the // input is well-formed but the respective subtag is not recognized // as a valid value. -type ValueError interface { - error +type ValueError struct { + v [8]byte +} - // Subtag returns the subtag for which the error occurred. - Subtag() string +func mkErrInvalid(s []byte) error { + var e ValueError + copy(e.v[:], s) + return e +} + +func (e ValueError) tag() []byte { + n := bytes.IndexByte(e.v[:], 0) + if n == -1 { + n = 8 + } + return e.v[:n] +} + +// Error implements the error interface. +func (e ValueError) Error() string { + return fmt.Sprintf("language: subtag %q is well-formed but unknown", e.tag()) +} + +// Subtag returns the subtag for which the error occurred. +func (e ValueError) Subtag() string { + return string(e.tag()) +} + +// scanner is used to scan BCP 47 tokens, which are separated by _ or -. +type scanner struct { + b []byte + bytes [max99thPercentileSize]byte + token []byte + start int // start position of the current token + end int // end position of the current token + next int // next point for scan + err error + done bool +} + +func makeScannerString(s string) scanner { + scan := scanner{} + if len(s) <= len(scan.bytes) { + scan.b = scan.bytes[:copy(scan.bytes[:], s)] + } else { + scan.b = []byte(s) + } + scan.init() + return scan +} + +// makeScanner returns a scanner using b as the input buffer. +// b is not copied and may be modified by the scanner routines. +func makeScanner(b []byte) scanner { + scan := scanner{b: b} + scan.init() + return scan +} + +func (s *scanner) init() { + for i, c := range s.b { + if c == '_' { + s.b[i] = '-' + } + } + s.scan() +} + +// restToLower converts the string between start and end to lower case. +func (s *scanner) toLower(start, end int) { + for i := start; i < end; i++ { + c := s.b[i] + if 'A' <= c && c <= 'Z' { + s.b[i] += 'a' - 'A' + } + } +} + +func (s *scanner) setError(e error) { + if s.err == nil || (e == errSyntax && s.err != errSyntax) { + s.err = e + } +} + +// resizeRange shrinks or grows the array at position oldStart such that +// a new string of size newSize can fit between oldStart and oldEnd. +// Sets the scan point to after the resized range. +func (s *scanner) resizeRange(oldStart, oldEnd, newSize int) { + s.start = oldStart + if end := oldStart + newSize; end != oldEnd { + diff := end - oldEnd + if end < cap(s.b) { + b := make([]byte, len(s.b)+diff) + copy(b, s.b[:oldStart]) + copy(b[end:], s.b[oldEnd:]) + s.b = b + } else { + s.b = append(s.b[end:], s.b[oldEnd:]...) + } + s.next = end + (s.next - s.end) + s.end = end + } +} + +// replace replaces the current token with repl. +func (s *scanner) replace(repl string) { + s.resizeRange(s.start, s.end, len(repl)) + copy(s.b[s.start:], repl) +} + +// gobble removes the current token from the input. +// Caller must call scan after calling gobble. +func (s *scanner) gobble(e error) { + s.setError(e) + if s.start == 0 { + s.b = s.b[:+copy(s.b, s.b[s.next:])] + s.end = 0 + } else { + s.b = s.b[:s.start-1+copy(s.b[s.start-1:], s.b[s.end:])] + s.end = s.start - 1 + } + s.next = s.start +} + +// deleteRange removes the given range from s.b before the current token. +func (s *scanner) deleteRange(start, end int) { + s.setError(errSyntax) + s.b = s.b[:start+copy(s.b[start:], s.b[end:])] + diff := end - start + s.next -= diff + s.start -= diff + s.end -= diff +} + +// scan parses the next token of a BCP 47 string. Tokens that are larger +// than 8 characters or include non-alphanumeric characters result in an error +// and are gobbled and removed from the output. +// It returns the end position of the last token consumed. +func (s *scanner) scan() (end int) { + end = s.end + s.token = nil + for s.start = s.next; s.next < len(s.b); { + i := bytes.IndexByte(s.b[s.next:], '-') + if i == -1 { + s.end = len(s.b) + s.next = len(s.b) + i = s.end - s.start + } else { + s.end = s.next + i + s.next = s.end + 1 + } + token := s.b[s.start:s.end] + if i < 1 || i > 8 || !isAlphaNum(token) { + s.gobble(errSyntax) + continue + } + s.token = token + return end + } + if n := len(s.b); n > 0 && s.b[n-1] == '-' { + s.setError(errSyntax) + s.b = s.b[:len(s.b)-1] + } + s.done = true + return end +} + +// acceptMinSize parses multiple tokens of the given size or greater. +// It returns the end position of the last token consumed. +func (s *scanner) acceptMinSize(min int) (end int) { + end = s.end + s.scan() + for ; len(s.token) >= min; s.scan() { + end = s.end + } + return end } // Parse parses the given BCP 47 string and returns a valid Tag. If parsing @@ -28,7 +223,7 @@ type ValueError interface { // ValueError. The Tag returned in this case is just stripped of the unknown // value. All other values are preserved. It accepts tags in the BCP 47 format // and extensions to this standard defined in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. // The resulting tag is canonicalized using the default canonicalization type. func Parse(s string) (t Tag, err error) { return Default.Parse(s) @@ -40,18 +235,327 @@ func Parse(s string) (t Tag, err error) { // ValueError. The Tag returned in this case is just stripped of the unknown // value. All other values are preserved. It accepts tags in the BCP 47 format // and extensions to this standard defined in -// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// The resulting tag is canonicalized using the canonicalization type c. +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// The resulting tag is canonicalized using the the canonicalization type c. func (c CanonType) Parse(s string) (t Tag, err error) { - tt, err := language.Parse(s) - if err != nil { - return makeTag(tt), err + // TODO: consider supporting old-style locale key-value pairs. + if s == "" { + return und, errSyntax } - tt, changed := canonicalize(c, tt) + if len(s) <= maxAltTaglen { + b := [maxAltTaglen]byte{} + for i, c := range s { + // Generating invalid UTF-8 is okay as it won't match. + if 'A' <= c && c <= 'Z' { + c += 'a' - 'A' + } else if c == '_' { + c = '-' + } + b[i] = byte(c) + } + if t, ok := grandfathered(b); ok { + return t, nil + } + } + scan := makeScannerString(s) + t, err = parse(&scan, s) + t, changed := t.canonicalize(c) if changed { - tt.RemakeString() + t.remakeString() } - return makeTag(tt), err + return t, err +} + +func parse(scan *scanner, s string) (t Tag, err error) { + t = und + var end int + if n := len(scan.token); n <= 1 { + scan.toLower(0, len(scan.b)) + if n == 0 || scan.token[0] != 'x' { + return t, errSyntax + } + end = parseExtensions(scan) + } else if n >= 4 { + return und, errSyntax + } else { // the usual case + t, end = parseTag(scan) + if n := len(scan.token); n == 1 { + t.pExt = uint16(end) + end = parseExtensions(scan) + } else if end < len(scan.b) { + scan.setError(errSyntax) + scan.b = scan.b[:end] + } + } + if int(t.pVariant) < len(scan.b) { + if end < len(s) { + s = s[:end] + } + if len(s) > 0 && tag.Compare(s, scan.b) == 0 { + t.str = s + } else { + t.str = string(scan.b) + } + } else { + t.pVariant, t.pExt = 0, 0 + } + return t, scan.err +} + +// parseTag parses language, script, region and variants. +// It returns a Tag and the end position in the input that was parsed. +func parseTag(scan *scanner) (t Tag, end int) { + var e error + // TODO: set an error if an unknown lang, script or region is encountered. + t.lang, e = getLangID(scan.token) + scan.setError(e) + scan.replace(t.lang.String()) + langStart := scan.start + end = scan.scan() + for len(scan.token) == 3 && isAlpha(scan.token[0]) { + // From http://tools.ietf.org/html/bcp47, - tags are equivalent + // to a tag of the form . + lang, e := getLangID(scan.token) + if lang != 0 { + t.lang = lang + copy(scan.b[langStart:], lang.String()) + scan.b[langStart+3] = '-' + scan.start = langStart + 4 + } + scan.gobble(e) + end = scan.scan() + } + if len(scan.token) == 4 && isAlpha(scan.token[0]) { + t.script, e = getScriptID(script, scan.token) + if t.script == 0 { + scan.gobble(e) + } + end = scan.scan() + } + if n := len(scan.token); n >= 2 && n <= 3 { + t.region, e = getRegionID(scan.token) + if t.region == 0 { + scan.gobble(e) + } else { + scan.replace(t.region.String()) + } + end = scan.scan() + } + scan.toLower(scan.start, len(scan.b)) + t.pVariant = byte(end) + end = parseVariants(scan, end, t) + t.pExt = uint16(end) + return t, end +} + +var separator = []byte{'-'} + +// parseVariants scans tokens as long as each token is a valid variant string. +// Duplicate variants are removed. +func parseVariants(scan *scanner, end int, t Tag) int { + start := scan.start + varIDBuf := [4]uint8{} + variantBuf := [4][]byte{} + varID := varIDBuf[:0] + variant := variantBuf[:0] + last := -1 + needSort := false + for ; len(scan.token) >= 4; scan.scan() { + // TODO: measure the impact of needing this conversion and redesign + // the data structure if there is an issue. + v, ok := variantIndex[string(scan.token)] + if !ok { + // unknown variant + // TODO: allow user-defined variants? + scan.gobble(mkErrInvalid(scan.token)) + continue + } + varID = append(varID, v) + variant = append(variant, scan.token) + if !needSort { + if last < int(v) { + last = int(v) + } else { + needSort = true + // There is no legal combinations of more than 7 variants + // (and this is by no means a useful sequence). + const maxVariants = 8 + if len(varID) > maxVariants { + break + } + } + } + end = scan.end + } + if needSort { + sort.Sort(variantsSort{varID, variant}) + k, l := 0, -1 + for i, v := range varID { + w := int(v) + if l == w { + // Remove duplicates. + continue + } + varID[k] = varID[i] + variant[k] = variant[i] + k++ + l = w + } + if str := bytes.Join(variant[:k], separator); len(str) == 0 { + end = start - 1 + } else { + scan.resizeRange(start, end, len(str)) + copy(scan.b[scan.start:], str) + end = scan.end + } + } + return end +} + +type variantsSort struct { + i []uint8 + v [][]byte +} + +func (s variantsSort) Len() int { + return len(s.i) +} + +func (s variantsSort) Swap(i, j int) { + s.i[i], s.i[j] = s.i[j], s.i[i] + s.v[i], s.v[j] = s.v[j], s.v[i] +} + +func (s variantsSort) Less(i, j int) bool { + return s.i[i] < s.i[j] +} + +type bytesSort [][]byte + +func (b bytesSort) Len() int { + return len(b) +} + +func (b bytesSort) Swap(i, j int) { + b[i], b[j] = b[j], b[i] +} + +func (b bytesSort) Less(i, j int) bool { + return bytes.Compare(b[i], b[j]) == -1 +} + +// parseExtensions parses and normalizes the extensions in the buffer. +// It returns the last position of scan.b that is part of any extension. +// It also trims scan.b to remove excess parts accordingly. +func parseExtensions(scan *scanner) int { + start := scan.start + exts := [][]byte{} + private := []byte{} + end := scan.end + for len(scan.token) == 1 { + extStart := scan.start + ext := scan.token[0] + end = parseExtension(scan) + extension := scan.b[extStart:end] + if len(extension) < 3 || (ext != 'x' && len(extension) < 4) { + scan.setError(errSyntax) + end = extStart + continue + } else if start == extStart && (ext == 'x' || scan.start == len(scan.b)) { + scan.b = scan.b[:end] + return end + } else if ext == 'x' { + private = extension + break + } + exts = append(exts, extension) + } + sort.Sort(bytesSort(exts)) + if len(private) > 0 { + exts = append(exts, private) + } + scan.b = scan.b[:start] + if len(exts) > 0 { + scan.b = append(scan.b, bytes.Join(exts, separator)...) + } else if start > 0 { + // Strip trailing '-'. + scan.b = scan.b[:start-1] + } + return end +} + +// parseExtension parses a single extension and returns the position of +// the extension end. +func parseExtension(scan *scanner) int { + start, end := scan.start, scan.end + switch scan.token[0] { + case 'u': + attrStart := end + scan.scan() + for last := []byte{}; len(scan.token) > 2; scan.scan() { + if bytes.Compare(scan.token, last) != -1 { + // Attributes are unsorted. Start over from scratch. + p := attrStart + 1 + scan.next = p + attrs := [][]byte{} + for scan.scan(); len(scan.token) > 2; scan.scan() { + attrs = append(attrs, scan.token) + end = scan.end + } + sort.Sort(bytesSort(attrs)) + copy(scan.b[p:], bytes.Join(attrs, separator)) + break + } + last = scan.token + end = scan.end + } + var last, key []byte + for attrEnd := end; len(scan.token) == 2; last = key { + key = scan.token + keyEnd := scan.end + end = scan.acceptMinSize(3) + // TODO: check key value validity + if keyEnd == end || bytes.Compare(key, last) != 1 { + // We have an invalid key or the keys are not sorted. + // Start scanning keys from scratch and reorder. + p := attrEnd + 1 + scan.next = p + keys := [][]byte{} + for scan.scan(); len(scan.token) == 2; { + keyStart, keyEnd := scan.start, scan.end + end = scan.acceptMinSize(3) + if keyEnd != end { + keys = append(keys, scan.b[keyStart:end]) + } else { + scan.setError(errSyntax) + end = keyStart + } + } + sort.Sort(bytesSort(keys)) + reordered := bytes.Join(keys, separator) + if e := p + len(reordered); e < end { + scan.deleteRange(e, end) + end = e + } + copy(scan.b[p:], bytes.Join(keys, separator)) + break + } + } + case 't': + scan.scan() + if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) { + _, end = parseTag(scan) + scan.toLower(start, end) + } + for len(scan.token) == 2 && !isAlpha(scan.token[1]) { + end = scan.acceptMinSize(3) + } + case 'x': + end = scan.acceptMinSize(1) + default: + end = scan.acceptMinSize(2) + } + return end } // Compose creates a Tag from individual parts, which may be of type Tag, Base, @@ -59,11 +563,10 @@ func (c CanonType) Parse(s string) (t Tag, err error) { // Base, Script or Region or slice of type Variant or Extension is passed more // than once, the latter will overwrite the former. Variants and Extensions are // accumulated, but if two extensions of the same type are passed, the latter -// will replace the former. For -u extensions, though, the key-type pairs are -// added, where later values overwrite older ones. A Tag overwrites all former -// values and typically only makes sense as the first argument. The resulting -// tag is returned after canonicalizing using the Default CanonType. If one or -// more errors are encountered, one of the errors is returned. +// will replace the former. A Tag overwrites all former values and typically +// only makes sense as the first argument. The resulting tag is returned after +// canonicalizing using the Default CanonType. If one or more errors are +// encountered, one of the errors is returned. func Compose(part ...interface{}) (t Tag, err error) { return Default.Compose(part...) } @@ -73,65 +576,193 @@ func Compose(part ...interface{}) (t Tag, err error) { // Base, Script or Region or slice of type Variant or Extension is passed more // than once, the latter will overwrite the former. Variants and Extensions are // accumulated, but if two extensions of the same type are passed, the latter -// will replace the former. For -u extensions, though, the key-type pairs are -// added, where later values overwrite older ones. A Tag overwrites all former -// values and typically only makes sense as the first argument. The resulting -// tag is returned after canonicalizing using CanonType c. If one or more errors -// are encountered, one of the errors is returned. +// will replace the former. A Tag overwrites all former values and typically +// only makes sense as the first argument. The resulting tag is returned after +// canonicalizing using CanonType c. If one or more errors are encountered, +// one of the errors is returned. func (c CanonType) Compose(part ...interface{}) (t Tag, err error) { - var b language.Builder - if err = update(&b, part...); err != nil { + var b builder + if err = b.update(part...); err != nil { return und, err } - b.Tag, _ = canonicalize(c, b.Tag) - return makeTag(b.Make()), err + t, _ = b.tag.canonicalize(c) + + if len(b.ext) > 0 || len(b.variant) > 0 { + sort.Sort(sortVariant(b.variant)) + sort.Strings(b.ext) + if b.private != "" { + b.ext = append(b.ext, b.private) + } + n := maxCoreSize + tokenLen(b.variant...) + tokenLen(b.ext...) + buf := make([]byte, n) + p := t.genCoreBytes(buf) + t.pVariant = byte(p) + p += appendTokens(buf[p:], b.variant...) + t.pExt = uint16(p) + p += appendTokens(buf[p:], b.ext...) + t.str = string(buf[:p]) + } else if b.private != "" { + t.str = b.private + t.remakeString() + } + return +} + +type builder struct { + tag Tag + + private string // the x extension + ext []string + variant []string + + err error +} + +func (b *builder) addExt(e string) { + if e == "" { + } else if e[0] == 'x' { + b.private = e + } else { + b.ext = append(b.ext, e) + } } var errInvalidArgument = errors.New("invalid Extension or Variant") -func update(b *language.Builder, part ...interface{}) (err error) { +func (b *builder) update(part ...interface{}) (err error) { + replace := func(l *[]string, s string, eq func(a, b string) bool) bool { + if s == "" { + b.err = errInvalidArgument + return true + } + for i, v := range *l { + if eq(v, s) { + (*l)[i] = s + return true + } + } + return false + } for _, x := range part { switch v := x.(type) { case Tag: - b.SetTag(v.tag()) + b.tag.lang = v.lang + b.tag.region = v.region + b.tag.script = v.script + if v.str != "" { + b.variant = nil + for x, s := "", v.str[v.pVariant:v.pExt]; s != ""; { + x, s = nextToken(s) + b.variant = append(b.variant, x) + } + b.ext, b.private = nil, "" + for i, e := int(v.pExt), ""; i < len(v.str); { + i, e = getExtension(v.str, i) + b.addExt(e) + } + } case Base: - b.Tag.LangID = v.langID + b.tag.lang = v.langID case Script: - b.Tag.ScriptID = v.scriptID + b.tag.script = v.scriptID case Region: - b.Tag.RegionID = v.regionID + b.tag.region = v.regionID case Variant: - if v.variant == "" { - err = errInvalidArgument - break + if !replace(&b.variant, v.variant, func(a, b string) bool { return a == b }) { + b.variant = append(b.variant, v.variant) } - b.AddVariant(v.variant) case Extension: - if v.s == "" { - err = errInvalidArgument - break + if !replace(&b.ext, v.s, func(a, b string) bool { return a[0] == b[0] }) { + b.addExt(v.s) } - b.SetExt(v.s) case []Variant: - b.ClearVariants() - for _, v := range v { - b.AddVariant(v.variant) + b.variant = nil + for _, x := range v { + b.update(x) } case []Extension: - b.ClearExtensions() + b.ext, b.private = nil, "" for _, e := range v { - b.SetExt(e.s) + b.update(e) } // TODO: support parsing of raw strings based on morphology or just extensions? case error: - if v != nil { - err = v - } + err = v } } return } +func tokenLen(token ...string) (n int) { + for _, t := range token { + n += len(t) + 1 + } + return +} + +func appendTokens(b []byte, token ...string) int { + p := 0 + for _, t := range token { + b[p] = '-' + copy(b[p+1:], t) + p += 1 + len(t) + } + return p +} + +type sortVariant []string + +func (s sortVariant) Len() int { + return len(s) +} + +func (s sortVariant) Swap(i, j int) { + s[j], s[i] = s[i], s[j] +} + +func (s sortVariant) Less(i, j int) bool { + return variantIndex[s[i]] < variantIndex[s[j]] +} + +func findExt(list []string, x byte) int { + for i, e := range list { + if e[0] == x { + return i + } + } + return -1 +} + +// getExtension returns the name, body and end position of the extension. +func getExtension(s string, p int) (end int, ext string) { + if s[p] == '-' { + p++ + } + if s[p] == 'x' { + return len(s), s[p:] + } + end = nextExtension(s, p) + return end, s[p:end] +} + +// nextExtension finds the next extension within the string, searching +// for the -- pattern from position p. +// In the fast majority of cases, language tags will have at most +// one extension and extensions tend to be small. +func nextExtension(s string, p int) int { + for n := len(s) - 3; p < n; { + if s[p] == '-' { + if s[p+2] == '-' { + return p + } + p += 3 + } else { + p++ + } + } + return len(s) +} + var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight") // ParseAcceptLanguage parses the contents of an Accept-Language header as @@ -157,7 +788,7 @@ func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) { if !ok { return nil, nil, err } - t = makeTag(language.Tag{LangID: id}) + t = Tag{lang: id} } // Scan the optional weight. @@ -199,9 +830,9 @@ func split(s string, c byte) (head, tail string) { return strings.TrimSpace(s), "" } -// Add hack mapping to deal with a small number of cases that occur +// Add hack mapping to deal with a small number of cases that that occur // in Accept-Language (with reasonable frequency). -var acceptFallback = map[string]language.Language{ +var acceptFallback = map[string]langID{ "english": _en, "deutsch": _de, "italian": _it, diff --git a/vendor/golang.org/x/text/language/tables.go b/vendor/golang.org/x/text/language/tables.go index e22807719..b738d457b 100644 --- a/vendor/golang.org/x/text/language/tables.go +++ b/vendor/golang.org/x/text/language/tables.go @@ -2,22 +2,997 @@ package language +import "golang.org/x/text/internal/tag" + // CLDRVersion is the CLDR version from which the tables in this package are derived. const CLDRVersion = "32" +const numLanguages = 8665 + +const numScripts = 242 + +const numRegions = 357 + +type fromTo struct { + from uint16 + to uint16 +} + +const nonCanonicalUnd = 1201 const ( + _af = 22 + _am = 39 + _ar = 58 + _az = 88 + _bg = 126 + _bn = 165 + _ca = 215 + _cs = 250 + _da = 257 _de = 269 + _el = 310 _en = 313 + _es = 318 + _et = 320 + _fa = 328 + _fi = 337 + _fil = 339 _fr = 350 + _gu = 420 + _he = 444 + _hi = 446 + _hr = 465 + _hu = 469 + _hy = 471 + _id = 481 + _is = 504 _it = 505 + _ja = 512 + _ka = 528 + _kk = 578 + _km = 586 + _kn = 593 + _ko = 596 + _ky = 650 + _lo = 696 + _lt = 704 + _lv = 711 + _mk = 767 + _ml = 772 + _mn = 779 _mo = 784 - _no = 879 - _nb = 839 - _pt = 960 - _sh = 1031 + _mr = 795 + _ms = 799 _mul = 806 - _und = 0 + _my = 817 + _nb = 839 + _ne = 849 + _nl = 871 + _no = 879 + _pa = 925 + _pl = 947 + _pt = 960 + _ro = 988 + _ru = 994 + _sh = 1031 + _si = 1036 + _sk = 1042 + _sl = 1046 + _sq = 1073 + _sr = 1074 + _sv = 1092 + _sw = 1093 + _ta = 1104 + _te = 1121 + _th = 1131 + _tl = 1146 + _tn = 1152 + _tr = 1162 + _uk = 1198 + _ur = 1204 + _uz = 1212 + _vi = 1219 + _zh = 1321 + _zu = 1327 + _jbo = 515 + _ami = 1650 + _bnn = 2357 + _hak = 438 + _tlh = 14467 + _lb = 661 + _nv = 899 + _pwn = 12055 + _tao = 14188 + _tay = 14198 + _tsu = 14662 + _nn = 874 + _sfb = 13629 + _vgt = 15701 + _sgg = 13660 + _cmn = 3007 + _nan = 835 + _hsn = 467 ) + +const langPrivateStart = 0x2f72 + +const langPrivateEnd = 0x3179 + +// 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. +const lang tag.Index = "" + // Size: 5324 bytes + "---\x00aaaraai\x00aak\x00aau\x00abbkabi\x00abq\x00abr\x00abt\x00aby\x00a" + + "cd\x00ace\x00ach\x00ada\x00ade\x00adj\x00ady\x00adz\x00aeveaeb\x00aey" + + "\x00affragc\x00agd\x00agg\x00agm\x00ago\x00agq\x00aha\x00ahl\x00aho\x00a" + + "jg\x00akkaakk\x00ala\x00ali\x00aln\x00alt\x00ammhamm\x00amn\x00amo\x00am" + + "p\x00anrganc\x00ank\x00ann\x00any\x00aoj\x00aom\x00aoz\x00apc\x00apd\x00" + + "ape\x00apr\x00aps\x00apz\x00arraarc\x00arh\x00arn\x00aro\x00arq\x00ars" + + "\x00ary\x00arz\x00assmasa\x00ase\x00asg\x00aso\x00ast\x00ata\x00atg\x00a" + + "tj\x00auy\x00avvaavl\x00avn\x00avt\x00avu\x00awa\x00awb\x00awo\x00awx" + + "\x00ayymayb\x00azzebaakbal\x00ban\x00bap\x00bar\x00bas\x00bav\x00bax\x00" + + "bba\x00bbb\x00bbc\x00bbd\x00bbj\x00bbp\x00bbr\x00bcf\x00bch\x00bci\x00bc" + + "m\x00bcn\x00bco\x00bcq\x00bcu\x00bdd\x00beelbef\x00beh\x00bej\x00bem\x00" + + "bet\x00bew\x00bex\x00bez\x00bfd\x00bfq\x00bft\x00bfy\x00bgulbgc\x00bgn" + + "\x00bgx\x00bhihbhb\x00bhg\x00bhi\x00bhk\x00bhl\x00bho\x00bhy\x00biisbib" + + "\x00big\x00bik\x00bim\x00bin\x00bio\x00biq\x00bjh\x00bji\x00bjj\x00bjn" + + "\x00bjo\x00bjr\x00bjt\x00bjz\x00bkc\x00bkm\x00bkq\x00bku\x00bkv\x00blt" + + "\x00bmambmh\x00bmk\x00bmq\x00bmu\x00bnenbng\x00bnm\x00bnp\x00boodboj\x00" + + "bom\x00bon\x00bpy\x00bqc\x00bqi\x00bqp\x00bqv\x00brrebra\x00brh\x00brx" + + "\x00brz\x00bsosbsj\x00bsq\x00bss\x00bst\x00bto\x00btt\x00btv\x00bua\x00b" + + "uc\x00bud\x00bug\x00buk\x00bum\x00buo\x00bus\x00buu\x00bvb\x00bwd\x00bwr" + + "\x00bxh\x00bye\x00byn\x00byr\x00bys\x00byv\x00byx\x00bza\x00bze\x00bzf" + + "\x00bzh\x00bzw\x00caatcan\x00cbj\x00cch\x00ccp\x00ceheceb\x00cfa\x00cgg" + + "\x00chhachk\x00chm\x00cho\x00chp\x00chr\x00cja\x00cjm\x00cjv\x00ckb\x00c" + + "kl\x00cko\x00cky\x00cla\x00cme\x00cmg\x00cooscop\x00cps\x00crrecrh\x00cr" + + "j\x00crk\x00crl\x00crm\x00crs\x00csescsb\x00csw\x00ctd\x00cuhucvhvcyymda" + + "andad\x00daf\x00dag\x00dah\x00dak\x00dar\x00dav\x00dbd\x00dbq\x00dcc\x00" + + "ddn\x00deeuded\x00den\x00dga\x00dgh\x00dgi\x00dgl\x00dgr\x00dgz\x00dia" + + "\x00dje\x00dnj\x00dob\x00doi\x00dop\x00dow\x00dri\x00drs\x00dsb\x00dtm" + + "\x00dtp\x00dts\x00dty\x00dua\x00duc\x00dud\x00dug\x00dvivdva\x00dww\x00d" + + "yo\x00dyu\x00dzzodzg\x00ebu\x00eeweefi\x00egl\x00egy\x00eka\x00eky\x00el" + + "llema\x00emi\x00enngenn\x00enq\x00eopoeri\x00es\x00\x05esu\x00etstetr" + + "\x00ett\x00etu\x00etx\x00euusewo\x00ext\x00faasfaa\x00fab\x00fag\x00fai" + + "\x00fan\x00ffulffi\x00ffm\x00fiinfia\x00fil\x00fit\x00fjijflr\x00fmp\x00" + + "foaofod\x00fon\x00for\x00fpe\x00fqs\x00frrafrc\x00frp\x00frr\x00frs\x00f" + + "ub\x00fud\x00fue\x00fuf\x00fuh\x00fuq\x00fur\x00fuv\x00fuy\x00fvr\x00fyr" + + "ygalegaa\x00gaf\x00gag\x00gah\x00gaj\x00gam\x00gan\x00gaw\x00gay\x00gba" + + "\x00gbf\x00gbm\x00gby\x00gbz\x00gcr\x00gdlagde\x00gdn\x00gdr\x00geb\x00g" + + "ej\x00gel\x00gez\x00gfk\x00ggn\x00ghs\x00gil\x00gim\x00gjk\x00gjn\x00gju" + + "\x00gkn\x00gkp\x00gllgglk\x00gmm\x00gmv\x00gnrngnd\x00gng\x00god\x00gof" + + "\x00goi\x00gom\x00gon\x00gor\x00gos\x00got\x00grb\x00grc\x00grt\x00grw" + + "\x00gsw\x00guujgub\x00guc\x00gud\x00gur\x00guw\x00gux\x00guz\x00gvlvgvf" + + "\x00gvr\x00gvs\x00gwc\x00gwi\x00gwt\x00gyi\x00haauhag\x00hak\x00ham\x00h" + + "aw\x00haz\x00hbb\x00hdy\x00heebhhy\x00hiinhia\x00hif\x00hig\x00hih\x00hi" + + "l\x00hla\x00hlu\x00hmd\x00hmt\x00hnd\x00hne\x00hnj\x00hnn\x00hno\x00homo" + + "hoc\x00hoj\x00hot\x00hrrvhsb\x00hsn\x00htathuunhui\x00hyyehzerianaian" + + "\x00iar\x00iba\x00ibb\x00iby\x00ica\x00ich\x00idndidd\x00idi\x00idu\x00i" + + "eleife\x00igboigb\x00ige\x00iiiiijj\x00ikpkikk\x00ikt\x00ikw\x00ikx\x00i" + + "lo\x00imo\x00inndinh\x00iodoiou\x00iri\x00isslittaiukuiw\x00\x03iwm\x00i" + + "ws\x00izh\x00izi\x00japnjab\x00jam\x00jbo\x00jbu\x00jen\x00jgk\x00jgo" + + "\x00ji\x00\x06jib\x00jmc\x00jml\x00jra\x00jut\x00jvavjwavkaatkaa\x00kab" + + "\x00kac\x00kad\x00kai\x00kaj\x00kam\x00kao\x00kbd\x00kbm\x00kbp\x00kbq" + + "\x00kbx\x00kby\x00kcg\x00kck\x00kcl\x00kct\x00kde\x00kdh\x00kdl\x00kdt" + + "\x00kea\x00ken\x00kez\x00kfo\x00kfr\x00kfy\x00kgonkge\x00kgf\x00kgp\x00k" + + "ha\x00khb\x00khn\x00khq\x00khs\x00kht\x00khw\x00khz\x00kiikkij\x00kiu" + + "\x00kiw\x00kjuakjd\x00kjg\x00kjs\x00kjy\x00kkazkkc\x00kkj\x00klalkln\x00" + + "klq\x00klt\x00klx\x00kmhmkmb\x00kmh\x00kmo\x00kms\x00kmu\x00kmw\x00knank" + + "nf\x00knp\x00koorkoi\x00kok\x00kol\x00kos\x00koz\x00kpe\x00kpf\x00kpo" + + "\x00kpr\x00kpx\x00kqb\x00kqf\x00kqs\x00kqy\x00kraukrc\x00kri\x00krj\x00k" + + "rl\x00krs\x00kru\x00ksasksb\x00ksd\x00ksf\x00ksh\x00ksj\x00ksr\x00ktb" + + "\x00ktm\x00kto\x00kuurkub\x00kud\x00kue\x00kuj\x00kum\x00kun\x00kup\x00k" + + "us\x00kvomkvg\x00kvr\x00kvx\x00kw\x00\x01kwj\x00kwo\x00kxa\x00kxc\x00kxm" + + "\x00kxp\x00kxw\x00kxz\x00kyirkye\x00kyx\x00kzr\x00laatlab\x00lad\x00lag" + + "\x00lah\x00laj\x00las\x00lbtzlbe\x00lbu\x00lbw\x00lcm\x00lcp\x00ldb\x00l" + + "ed\x00lee\x00lem\x00lep\x00leq\x00leu\x00lez\x00lguglgg\x00liimlia\x00li" + + "d\x00lif\x00lig\x00lih\x00lij\x00lis\x00ljp\x00lki\x00lkt\x00lle\x00lln" + + "\x00lmn\x00lmo\x00lmp\x00lninlns\x00lnu\x00loaoloj\x00lok\x00lol\x00lor" + + "\x00los\x00loz\x00lrc\x00ltitltg\x00luublua\x00luo\x00luy\x00luz\x00lvav" + + "lwl\x00lzh\x00lzz\x00mad\x00maf\x00mag\x00mai\x00mak\x00man\x00mas\x00ma" + + "w\x00maz\x00mbh\x00mbo\x00mbq\x00mbu\x00mbw\x00mci\x00mcp\x00mcq\x00mcr" + + "\x00mcu\x00mda\x00mde\x00mdf\x00mdh\x00mdj\x00mdr\x00mdx\x00med\x00mee" + + "\x00mek\x00men\x00mer\x00met\x00meu\x00mfa\x00mfe\x00mfn\x00mfo\x00mfq" + + "\x00mglgmgh\x00mgl\x00mgo\x00mgp\x00mgy\x00mhahmhi\x00mhl\x00mirimif\x00" + + "min\x00mis\x00miw\x00mkkdmki\x00mkl\x00mkp\x00mkw\x00mlalmle\x00mlp\x00m" + + "ls\x00mmo\x00mmu\x00mmx\x00mnonmna\x00mnf\x00mni\x00mnw\x00moolmoa\x00mo" + + "e\x00moh\x00mos\x00mox\x00mpp\x00mps\x00mpt\x00mpx\x00mql\x00mrarmrd\x00" + + "mrj\x00mro\x00mssamtltmtc\x00mtf\x00mti\x00mtr\x00mua\x00mul\x00mur\x00m" + + "us\x00mva\x00mvn\x00mvy\x00mwk\x00mwr\x00mwv\x00mxc\x00mxm\x00myyamyk" + + "\x00mym\x00myv\x00myw\x00myx\x00myz\x00mzk\x00mzm\x00mzn\x00mzp\x00mzw" + + "\x00mzz\x00naaunac\x00naf\x00nah\x00nak\x00nan\x00nap\x00naq\x00nas\x00n" + + "bobnca\x00nce\x00ncf\x00nch\x00nco\x00ncu\x00nddendc\x00nds\x00neepneb" + + "\x00new\x00nex\x00nfr\x00ngdonga\x00ngb\x00ngl\x00nhb\x00nhe\x00nhw\x00n" + + "if\x00nii\x00nij\x00nin\x00niu\x00niy\x00niz\x00njo\x00nkg\x00nko\x00nll" + + "dnmg\x00nmz\x00nnnonnf\x00nnh\x00nnk\x00nnm\x00noornod\x00noe\x00non\x00" + + "nop\x00nou\x00nqo\x00nrblnrb\x00nsk\x00nsn\x00nso\x00nss\x00ntm\x00ntr" + + "\x00nui\x00nup\x00nus\x00nuv\x00nux\x00nvavnwb\x00nxq\x00nxr\x00nyyanym" + + "\x00nyn\x00nzi\x00occiogc\x00ojjiokr\x00okv\x00omrmong\x00onn\x00ons\x00" + + "opm\x00orrioro\x00oru\x00osssosa\x00ota\x00otk\x00ozm\x00paanpag\x00pal" + + "\x00pam\x00pap\x00pau\x00pbi\x00pcd\x00pcm\x00pdc\x00pdt\x00ped\x00peo" + + "\x00pex\x00pfl\x00phl\x00phn\x00pilipil\x00pip\x00pka\x00pko\x00plolpla" + + "\x00pms\x00png\x00pnn\x00pnt\x00pon\x00ppo\x00pra\x00prd\x00prg\x00psusp" + + "ss\x00ptorptp\x00puu\x00pwa\x00quuequc\x00qug\x00rai\x00raj\x00rao\x00rc" + + "f\x00rej\x00rel\x00res\x00rgn\x00rhg\x00ria\x00rif\x00rjs\x00rkt\x00rmoh" + + "rmf\x00rmo\x00rmt\x00rmu\x00rnunrna\x00rng\x00roonrob\x00rof\x00roo\x00r" + + "ro\x00rtm\x00ruusrue\x00rug\x00rw\x00\x04rwk\x00rwo\x00ryu\x00saansaf" + + "\x00sah\x00saq\x00sas\x00sat\x00sav\x00saz\x00sba\x00sbe\x00sbp\x00scrds" + + "ck\x00scl\x00scn\x00sco\x00scs\x00sdndsdc\x00sdh\x00semesef\x00seh\x00se" + + "i\x00ses\x00sgagsga\x00sgs\x00sgw\x00sgz\x00sh\x00\x02shi\x00shk\x00shn" + + "\x00shu\x00siinsid\x00sig\x00sil\x00sim\x00sjr\x00sklkskc\x00skr\x00sks" + + "\x00sllvsld\x00sli\x00sll\x00sly\x00smmosma\x00smi\x00smj\x00smn\x00smp" + + "\x00smq\x00sms\x00snnasnc\x00snk\x00snp\x00snx\x00sny\x00soomsok\x00soq" + + "\x00sou\x00soy\x00spd\x00spl\x00sps\x00sqqisrrpsrb\x00srn\x00srr\x00srx" + + "\x00ssswssd\x00ssg\x00ssy\x00stotstk\x00stq\x00suunsua\x00sue\x00suk\x00" + + "sur\x00sus\x00svweswwaswb\x00swc\x00swg\x00swp\x00swv\x00sxn\x00sxw\x00s" + + "yl\x00syr\x00szl\x00taamtaj\x00tal\x00tan\x00taq\x00tbc\x00tbd\x00tbf" + + "\x00tbg\x00tbo\x00tbw\x00tbz\x00tci\x00tcy\x00tdd\x00tdg\x00tdh\x00teelt" + + "ed\x00tem\x00teo\x00tet\x00tfi\x00tggktgc\x00tgo\x00tgu\x00thhathl\x00th" + + "q\x00thr\x00tiirtif\x00tig\x00tik\x00tim\x00tio\x00tiv\x00tkuktkl\x00tkr" + + "\x00tkt\x00tlgltlf\x00tlx\x00tly\x00tmh\x00tmy\x00tnsntnh\x00toontof\x00" + + "tog\x00toq\x00tpi\x00tpm\x00tpz\x00tqo\x00trurtru\x00trv\x00trw\x00tssot" + + "sd\x00tsf\x00tsg\x00tsj\x00tsw\x00ttatttd\x00tte\x00ttj\x00ttr\x00tts" + + "\x00ttt\x00tuh\x00tul\x00tum\x00tuq\x00tvd\x00tvl\x00tvu\x00twwitwh\x00t" + + "wq\x00txg\x00tyahtya\x00tyv\x00tzm\x00ubu\x00udm\x00ugiguga\x00ukkruli" + + "\x00umb\x00und\x00unr\x00unx\x00urrduri\x00urt\x00urw\x00usa\x00utr\x00u" + + "vh\x00uvl\x00uzzbvag\x00vai\x00van\x00veenvec\x00vep\x00viievic\x00viv" + + "\x00vls\x00vmf\x00vmw\x00voolvot\x00vro\x00vun\x00vut\x00walnwae\x00waj" + + "\x00wal\x00wan\x00war\x00wbp\x00wbq\x00wbr\x00wci\x00wer\x00wgi\x00whg" + + "\x00wib\x00wiu\x00wiv\x00wja\x00wji\x00wls\x00wmo\x00wnc\x00wni\x00wnu" + + "\x00woolwob\x00wos\x00wrs\x00wsk\x00wtm\x00wuu\x00wuv\x00wwa\x00xav\x00x" + + "bi\x00xcr\x00xes\x00xhhoxla\x00xlc\x00xld\x00xmf\x00xmn\x00xmr\x00xna" + + "\x00xnr\x00xog\x00xon\x00xpr\x00xrb\x00xsa\x00xsi\x00xsm\x00xsr\x00xwe" + + "\x00yam\x00yao\x00yap\x00yas\x00yat\x00yav\x00yay\x00yaz\x00yba\x00ybb" + + "\x00yby\x00yer\x00ygr\x00ygw\x00yiidyko\x00yle\x00ylg\x00yll\x00yml\x00y" + + "ooryon\x00yrb\x00yre\x00yrl\x00yss\x00yua\x00yue\x00yuj\x00yut\x00yuw" + + "\x00zahazag\x00zbl\x00zdj\x00zea\x00zgh\x00zhhozhx\x00zia\x00zlm\x00zmi" + + "\x00zne\x00zuulzxx\x00zza\x00\xff\xff\xff\xff" + +const langNoIndexOffset = 1330 + +// 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. +// Size: 2197 bytes, 2197 elements +var langNoIndex = [2197]uint8{ + // Entry 0 - 3F + 0xff, 0xf8, 0xed, 0xfe, 0xeb, 0xd3, 0x3b, 0xd2, + 0xfb, 0xbf, 0x7a, 0xfa, 0x37, 0x1d, 0x3c, 0x57, + 0x6e, 0x97, 0x73, 0x38, 0xfb, 0xea, 0xbf, 0x70, + 0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x62, + 0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77, + 0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2, + 0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xb8, 0x0a, 0x6a, + 0x7c, 0xea, 0xe3, 0xfa, 0x7a, 0xbf, 0x67, 0xff, + // Entry 40 - 7F + 0xff, 0xff, 0xff, 0xdf, 0x2a, 0x54, 0x91, 0xc0, + 0x5d, 0xe3, 0x97, 0x14, 0x07, 0x20, 0xdd, 0xed, + 0x9f, 0x3f, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0x35, + 0x7c, 0x5f, 0xff, 0x5f, 0x8e, 0x6e, 0xdf, 0xff, + 0xff, 0xff, 0x55, 0x7c, 0xd3, 0xfd, 0xbf, 0xb5, + 0x7b, 0xdf, 0x7f, 0xf7, 0xca, 0xfe, 0xdb, 0xa3, + 0xa8, 0xff, 0x1f, 0x67, 0x7d, 0xeb, 0xef, 0xce, + 0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf, + // Entry 80 - BF + 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x2f, 0xff, 0xff, + 0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7, + 0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba, + 0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff, + 0xfd, 0xdf, 0xfb, 0xfe, 0x9d, 0xb4, 0xd3, 0xff, + 0xef, 0xff, 0xdf, 0xf7, 0x7f, 0xb7, 0xfd, 0xd5, + 0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c, + 0x08, 0x20, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80, + // Entry C0 - FF + 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96, + 0x1b, 0x14, 0x08, 0xf2, 0x2b, 0xe7, 0x17, 0x56, + 0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x71, 0xf3, 0xef, + 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10, + 0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xf7, 0x73, 0x35, + 0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x00, 0x81, 0x00, + 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d, + // Entry 100 - 13F + 0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64, + 0x0d, 0x19, 0x41, 0xdf, 0x79, 0x22, 0x00, 0x00, + 0x00, 0x5e, 0x64, 0xdc, 0x24, 0xe5, 0xd9, 0xe3, + 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c, + 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc5, 0x67, 0x5f, + 0x56, 0x89, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56, + 0x90, 0x69, 0x01, 0x2c, 0x96, 0x69, 0x20, 0xfb, + // Entry 140 - 17F + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x16, + 0x01, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x06, + 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x09, + 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04, + 0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04, + 0x00, 0x00, 0x40, 0xd5, 0x2d, 0x00, 0x64, 0x35, + 0x24, 0x52, 0xf4, 0xd4, 0xbd, 0x62, 0xc9, 0x03, + // Entry 180 - 1BF + 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98, + 0x21, 0x18, 0x81, 0x00, 0x00, 0x01, 0x40, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0x80, 0xea, + 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + // Entry 1C0 - 1FF + 0x00, 0x01, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x20, 0x04, 0xa6, 0x00, 0x04, 0x00, 0x00, + 0x81, 0x50, 0x00, 0x00, 0x00, 0x11, 0x84, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x55, + 0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x40, + 0x30, 0x83, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0xcd, 0xbf, 0x7a, 0xbf, + // Entry 200 - 23F + 0xdf, 0xc3, 0x83, 0x82, 0xc0, 0xfb, 0x57, 0x27, + 0xcd, 0x55, 0xe7, 0x01, 0x00, 0x20, 0xb2, 0xc5, + 0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe0, 0xdf, + 0x03, 0x44, 0x08, 0x10, 0x01, 0x04, 0x01, 0xe3, + 0x92, 0x54, 0xdb, 0x28, 0xd1, 0x5f, 0xf6, 0x6d, + 0x79, 0xed, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01, + 0x21, 0x12, 0x64, 0x5f, 0xdd, 0x0e, 0x85, 0x4f, + 0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54, + // Entry 240 - 27F + 0xe8, 0x03, 0xb4, 0x27, 0x23, 0x0d, 0x00, 0x00, + 0x20, 0x7b, 0x38, 0x02, 0x05, 0x84, 0x00, 0xf0, + 0xbb, 0x7e, 0x5a, 0x00, 0x18, 0x04, 0x81, 0x00, + 0x00, 0x00, 0x80, 0x10, 0x90, 0x1c, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04, + 0x08, 0xa0, 0x70, 0xa5, 0x0c, 0x40, 0x00, 0x00, + 0x11, 0x04, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff, + 0x7b, 0x7f, 0x60, 0x00, 0x05, 0x9b, 0xdd, 0x66, + // Entry 280 - 2BF + 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05, + 0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51, + 0xe2, 0xef, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x60, + 0xe7, 0x48, 0x00, 0x81, 0x20, 0xc0, 0x05, 0x80, + 0x03, 0x00, 0x00, 0x00, 0x8c, 0x50, 0x40, 0x04, + 0x84, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20, + // Entry 2C0 - 2FF + 0x02, 0x50, 0x80, 0x11, 0x00, 0x91, 0x6c, 0xe2, + 0x50, 0x27, 0x1d, 0x11, 0x29, 0x06, 0x59, 0xe9, + 0x33, 0x08, 0x00, 0x20, 0x04, 0x40, 0x10, 0x00, + 0x00, 0x00, 0x50, 0x44, 0x92, 0x49, 0xd6, 0x5d, + 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00, + 0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01, + 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x00, 0x08, + 0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x89, 0x12, 0x00, + // Entry 300 - 33F + 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0, + 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x04, 0x10, 0xd0, 0x9d, 0x95, 0x13, 0x04, 0x80, + 0x00, 0x01, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0, + 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00, + 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0x80, + 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00, + // Entry 340 - 37F + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x00, 0xf0, 0x84, 0xe3, + 0xdd, 0xbf, 0xf9, 0xf9, 0x3b, 0x7f, 0x7f, 0xdb, + 0xfd, 0xfc, 0xfe, 0xdf, 0xff, 0xfd, 0xff, 0xf6, + 0xfb, 0xfc, 0xf7, 0x1f, 0xff, 0xb3, 0x6c, 0xff, + 0xd9, 0xad, 0xdf, 0xfe, 0xef, 0xba, 0xdf, 0xff, + 0xff, 0xff, 0xb7, 0xdd, 0x7d, 0xbf, 0xab, 0x7f, + 0xfd, 0xfd, 0xdf, 0x2f, 0x9c, 0xdf, 0xf3, 0x6f, + // Entry 380 - 3BF + 0xdf, 0xdd, 0xff, 0xfb, 0xee, 0xd2, 0xab, 0x5f, + 0xd5, 0xdf, 0x7f, 0xff, 0xeb, 0xff, 0xe4, 0x4d, + 0xf9, 0xff, 0xfe, 0xf7, 0xfd, 0xdf, 0xfb, 0xbf, + 0xee, 0xdb, 0x6f, 0xef, 0xff, 0x7f, 0xff, 0xff, + 0xf7, 0x5f, 0xd3, 0x3b, 0xfd, 0xd9, 0xdf, 0xeb, + 0xbc, 0x08, 0x05, 0x24, 0xff, 0x07, 0x70, 0xfe, + 0xe6, 0x5e, 0x00, 0x08, 0x00, 0x83, 0x3d, 0x1b, + 0x06, 0xe6, 0x72, 0x60, 0xd1, 0x3c, 0x7f, 0x44, + // Entry 3C0 - 3FF + 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57, + 0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7, + 0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00, + 0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xd9, 0x0e, 0x11, + 0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x00, 0x01, + 0x05, 0xd1, 0x50, 0x58, 0x00, 0x00, 0x00, 0x10, + 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2, + 0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe, + // Entry 400 - 43F + 0x53, 0x6f, 0xdf, 0xe7, 0xdb, 0x65, 0xbb, 0x7f, + 0xfa, 0xff, 0x77, 0xf3, 0xef, 0xbf, 0xfd, 0xf7, + 0xdf, 0xdf, 0x9b, 0x7f, 0xff, 0xff, 0x7f, 0x6f, + 0xf7, 0xfb, 0xeb, 0xdf, 0xbc, 0xff, 0xbf, 0x6b, + 0x7b, 0xfb, 0xff, 0xce, 0x76, 0xbd, 0xf7, 0xf7, + 0xdf, 0xdc, 0xf7, 0xf7, 0xff, 0xdf, 0xf3, 0xfe, + 0xef, 0xff, 0xff, 0xff, 0xb6, 0x7f, 0x7f, 0xde, + 0xf7, 0xb9, 0xeb, 0x77, 0xff, 0xfb, 0xbf, 0xdf, + // Entry 440 - 47F + 0xfd, 0xfe, 0xfb, 0xff, 0xfe, 0xeb, 0x1f, 0x7d, + 0x2f, 0xfd, 0xb6, 0xb5, 0xa5, 0xfc, 0xff, 0xfd, + 0x7f, 0x4e, 0xbf, 0x8f, 0xae, 0xff, 0xee, 0xdf, + 0x7f, 0xf7, 0x73, 0x02, 0x02, 0x04, 0xfc, 0xf7, + 0xff, 0xb7, 0xd7, 0xef, 0xfe, 0xcd, 0xf5, 0xce, + 0xe2, 0x8e, 0xe7, 0xbf, 0xb7, 0xff, 0x56, 0xbd, + 0xcd, 0xff, 0xfb, 0xff, 0xdf, 0xd7, 0xea, 0xff, + 0xe5, 0x5f, 0x6d, 0x0f, 0xa7, 0x51, 0x06, 0xc4, + // Entry 480 - 4BF + 0x13, 0x50, 0x5d, 0xaf, 0xa6, 0xfd, 0x99, 0xfb, + 0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20, + 0x14, 0x00, 0x55, 0x51, 0x82, 0x65, 0xf5, 0x41, + 0xe2, 0xff, 0xfc, 0xdf, 0x00, 0x05, 0xc5, 0x05, + 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04, + 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00, + 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1, + // Entry 4C0 - 4FF + 0xfd, 0x47, 0x49, 0x06, 0x95, 0x06, 0x57, 0xed, + 0xfb, 0x4c, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40, + 0x00, 0x11, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83, + 0xb8, 0x4f, 0x10, 0x8c, 0x89, 0x46, 0xde, 0xf7, + 0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00, + 0x01, 0x00, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x3d, + 0xba, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41, + // Entry 500 - 53F + 0x30, 0xff, 0x79, 0x72, 0x04, 0x00, 0x00, 0x49, + 0x2d, 0x14, 0x27, 0x57, 0xed, 0xf1, 0x3f, 0xe7, + 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xf8, + 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xe5, 0xf7, + 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7e, 0x10, + 0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9, + 0x5b, 0x05, 0x86, 0xed, 0xf5, 0x77, 0xbd, 0x3c, + 0x00, 0x00, 0x00, 0x42, 0x71, 0x42, 0x00, 0x40, + // Entry 540 - 57F + 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + // Entry 580 - 5BF + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d, + 0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xce, 0xfb, 0xbf, + 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x30, 0x15, 0xa3, 0x10, 0x00, 0x00, 0x00, + 0x11, 0x04, 0x16, 0x00, 0x00, 0x02, 0x00, 0x81, + 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40, + // Entry 5C0 - 5FF + 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x3e, 0x02, + 0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02, + 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, + 0x31, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x20, + 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00, + 0x00, 0x1f, 0xdf, 0xd2, 0xb9, 0xff, 0xfd, 0x3f, + 0x1f, 0x98, 0xcf, 0x9c, 0xbf, 0xaf, 0x5f, 0xfe, + // Entry 600 - 63F + 0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xd9, + 0xb7, 0xf6, 0xfb, 0xb3, 0xc7, 0xff, 0x6f, 0xf1, + 0x73, 0xb1, 0x7f, 0x9f, 0x7f, 0xbd, 0xfc, 0xb7, + 0xee, 0x1c, 0xfa, 0xcb, 0xef, 0xdd, 0xf9, 0xbd, + 0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x1f, + 0xd4, 0x77, 0xf5, 0x7d, 0xfb, 0xff, 0xeb, 0xfe, + 0xbe, 0x5f, 0x46, 0x1b, 0xe9, 0x5f, 0x50, 0x18, + 0x02, 0xfa, 0xf7, 0x9d, 0x15, 0x97, 0x05, 0x0f, + // Entry 640 - 67F + 0x75, 0xc4, 0x7d, 0x81, 0x92, 0xf1, 0x57, 0x6c, + 0xff, 0xe4, 0xef, 0x6f, 0xff, 0xfc, 0xdd, 0xde, + 0xfc, 0xfd, 0x76, 0x5f, 0x7a, 0x1f, 0x00, 0x98, + 0x02, 0xfb, 0xa3, 0xef, 0xf3, 0xd6, 0xf2, 0xff, + 0xb9, 0xda, 0x7d, 0x50, 0x1e, 0x15, 0x7b, 0xb4, + 0xf5, 0x3e, 0xff, 0xff, 0xf1, 0xf7, 0xff, 0xe7, + 0x5f, 0xff, 0xff, 0x9e, 0xdb, 0xf6, 0xd7, 0xb9, + 0xef, 0x27, 0x80, 0xbb, 0xc5, 0xff, 0xff, 0xe3, + // Entry 680 - 6BF + 0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37, + 0xce, 0x7f, 0x04, 0x1d, 0x53, 0x7f, 0xf8, 0xda, + 0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x69, 0xa0, + 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08, + 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06, + 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00, + 0x04, 0x00, 0x10, 0xcc, 0x58, 0xd5, 0x0d, 0x0f, + // Entry 6C0 - 6FF + 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08, + 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, + 0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x08, 0x41, + 0x04, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xab, + 0x6d, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00, + // Entry 700 - 73F + 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x80, 0x86, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79, + 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 740 - 77F + 0x00, 0x00, 0x00, 0xef, 0xd5, 0xfd, 0xcf, 0x7e, + 0xb0, 0x11, 0x00, 0x00, 0x00, 0x92, 0x01, 0x44, + 0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04, + 0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a, + 0x01, 0x00, 0x00, 0xb0, 0x80, 0x00, 0x55, 0x55, + 0x97, 0x7c, 0x9f, 0x31, 0xcc, 0x68, 0xd1, 0x03, + 0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60, + // Entry 780 - 7BF + 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0x8a, 0x01, + 0x00, 0x00, 0x20, 0x00, 0x24, 0x44, 0x00, 0x00, + 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0, + 0xf5, 0xff, 0xd5, 0x97, 0xbc, 0x70, 0xd6, 0x78, + 0x78, 0x15, 0x50, 0x01, 0xa4, 0x84, 0xa9, 0x41, + 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00, + 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02, + 0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed, + // Entry 7C0 - 7FF + 0xdd, 0xbf, 0x72, 0x19, 0xc7, 0x0c, 0xd5, 0x42, + 0x54, 0xdd, 0x77, 0x14, 0x00, 0x80, 0x40, 0x56, + 0xcc, 0x16, 0x9e, 0xea, 0x35, 0x7d, 0xef, 0xff, + 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d, + 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80, + 0x10, 0x20, 0x24, 0x00, 0xff, 0x2f, 0xd3, 0x60, + 0xfe, 0x01, 0x02, 0x88, 0x0a, 0x40, 0x16, 0x01, + 0x01, 0x15, 0x2b, 0x3c, 0x01, 0x00, 0x00, 0x10, + // Entry 800 - 83F + 0x90, 0x49, 0x41, 0x02, 0x02, 0x01, 0xe1, 0xbf, + 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa3, 0xd1, + 0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3, + 0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80, + 0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84, + 0x2e, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93, + 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10, + 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00, + // Entry 840 - 87F + 0xf0, 0xfb, 0xfd, 0x3f, 0x05, 0x00, 0x12, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28, + 0x84, 0x00, 0x21, 0xc0, 0x23, 0x24, 0x00, 0x00, + 0x00, 0xcb, 0xe4, 0x3a, 0x42, 0x88, 0x14, 0xf1, + 0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50, + 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40, + 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1, + // Entry 880 - 8BF + 0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, + 0x0a, 0x00, 0x80, 0x00, 0x00, +} + +// 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. +const altLangISO3 tag.Index = "---\x00cor\x00hbs\x01heb\x02kin\x03spa\x04yid\x05\xff\xff\xff\xff" + +// altLangIndex is used to convert indexes in altLangISO3 to langIDs. +// Size: 12 bytes, 6 elements +var altLangIndex = [6]uint16{ + 0x0281, 0x0407, 0x01fb, 0x03e5, 0x013e, 0x0208, +} + +// langAliasMap maps langIDs to their suggested replacements. +// Size: 656 bytes, 164 elements +var langAliasMap = [164]fromTo{ + 0: {from: 0x82, to: 0x88}, + 1: {from: 0x187, to: 0x1ae}, + 2: {from: 0x1f3, to: 0x1e1}, + 3: {from: 0x1fb, to: 0x1bc}, + 4: {from: 0x208, to: 0x512}, + 5: {from: 0x20f, to: 0x20e}, + 6: {from: 0x310, to: 0x3dc}, + 7: {from: 0x347, to: 0x36f}, + 8: {from: 0x407, to: 0x432}, + 9: {from: 0x47a, to: 0x153}, + 10: {from: 0x490, to: 0x451}, + 11: {from: 0x4a2, to: 0x21}, + 12: {from: 0x53e, to: 0x544}, + 13: {from: 0x58f, to: 0x12d}, + 14: {from: 0x630, to: 0x1eb1}, + 15: {from: 0x651, to: 0x431}, + 16: {from: 0x662, to: 0x431}, + 17: {from: 0x6ed, to: 0x3a}, + 18: {from: 0x6f8, to: 0x1d7}, + 19: {from: 0x73e, to: 0x21a1}, + 20: {from: 0x7b3, to: 0x56}, + 21: {from: 0x7b9, to: 0x299b}, + 22: {from: 0x7c5, to: 0x58}, + 23: {from: 0x7e6, to: 0x145}, + 24: {from: 0x80c, to: 0x5a}, + 25: {from: 0x815, to: 0x8d}, + 26: {from: 0x87e, to: 0x810}, + 27: {from: 0x8c3, to: 0xee3}, + 28: {from: 0x9ef, to: 0x331}, + 29: {from: 0xa36, to: 0x2c5}, + 30: {from: 0xa3d, to: 0xbf}, + 31: {from: 0xabe, to: 0x3322}, + 32: {from: 0xb38, to: 0x529}, + 33: {from: 0xb75, to: 0x265a}, + 34: {from: 0xb7e, to: 0xbc3}, + 35: {from: 0xb9b, to: 0x44e}, + 36: {from: 0xbbc, to: 0x4229}, + 37: {from: 0xbbf, to: 0x529}, + 38: {from: 0xbfe, to: 0x2da7}, + 39: {from: 0xc2e, to: 0x3181}, + 40: {from: 0xcb9, to: 0xf3}, + 41: {from: 0xd08, to: 0xfa}, + 42: {from: 0xdc8, to: 0x11a}, + 43: {from: 0xdd7, to: 0x32d}, + 44: {from: 0xdf8, to: 0xdfb}, + 45: {from: 0xdfe, to: 0x531}, + 46: {from: 0xedf, to: 0x205a}, + 47: {from: 0xeee, to: 0x2e9a}, + 48: {from: 0xf39, to: 0x367}, + 49: {from: 0x10d0, to: 0x140}, + 50: {from: 0x1104, to: 0x2d0}, + 51: {from: 0x11a0, to: 0x1ec}, + 52: {from: 0x1279, to: 0x21}, + 53: {from: 0x1424, to: 0x15e}, + 54: {from: 0x1470, to: 0x14e}, + 55: {from: 0x151f, to: 0xd9b}, + 56: {from: 0x1523, to: 0x390}, + 57: {from: 0x1532, to: 0x19f}, + 58: {from: 0x1580, to: 0x210}, + 59: {from: 0x1583, to: 0x10d}, + 60: {from: 0x15a3, to: 0x3caf}, + 61: {from: 0x166a, to: 0x19b}, + 62: {from: 0x16c8, to: 0x136}, + 63: {from: 0x1700, to: 0x29f8}, + 64: {from: 0x1718, to: 0x194}, + 65: {from: 0x1727, to: 0xf3f}, + 66: {from: 0x177a, to: 0x178}, + 67: {from: 0x1809, to: 0x17b6}, + 68: {from: 0x1816, to: 0x18f3}, + 69: {from: 0x188a, to: 0x436}, + 70: {from: 0x1979, to: 0x1d01}, + 71: {from: 0x1a74, to: 0x2bb0}, + 72: {from: 0x1a8a, to: 0x1f8}, + 73: {from: 0x1b5a, to: 0x1fa}, + 74: {from: 0x1b86, to: 0x1515}, + 75: {from: 0x1d64, to: 0x2c9b}, + 76: {from: 0x2038, to: 0x37b1}, + 77: {from: 0x203d, to: 0x20dd}, + 78: {from: 0x205a, to: 0x30b}, + 79: {from: 0x20e3, to: 0x274}, + 80: {from: 0x20ee, to: 0x263}, + 81: {from: 0x20f2, to: 0x22d}, + 82: {from: 0x20f9, to: 0x256}, + 83: {from: 0x210f, to: 0x21eb}, + 84: {from: 0x2135, to: 0x27d}, + 85: {from: 0x2160, to: 0x913}, + 86: {from: 0x2199, to: 0x121}, + 87: {from: 0x21ce, to: 0x1561}, + 88: {from: 0x21e6, to: 0x504}, + 89: {from: 0x21f4, to: 0x49f}, + 90: {from: 0x222d, to: 0x121}, + 91: {from: 0x2237, to: 0x121}, + 92: {from: 0x2262, to: 0x92a}, + 93: {from: 0x2316, to: 0x3226}, + 94: {from: 0x2382, to: 0x3365}, + 95: {from: 0x2472, to: 0x2c7}, + 96: {from: 0x24e4, to: 0x2ff}, + 97: {from: 0x24f0, to: 0x2fa}, + 98: {from: 0x24fa, to: 0x31f}, + 99: {from: 0x2550, to: 0xb5b}, + 100: {from: 0x25a9, to: 0xe2}, + 101: {from: 0x263e, to: 0x2d0}, + 102: {from: 0x26c9, to: 0x26b4}, + 103: {from: 0x26f9, to: 0x3c8}, + 104: {from: 0x2727, to: 0x3caf}, + 105: {from: 0x2765, to: 0x26b4}, + 106: {from: 0x2789, to: 0x4358}, + 107: {from: 0x28ef, to: 0x2837}, + 108: {from: 0x2914, to: 0x351}, + 109: {from: 0x2986, to: 0x2da7}, + 110: {from: 0x2b1a, to: 0x38d}, + 111: {from: 0x2bfc, to: 0x395}, + 112: {from: 0x2c3f, to: 0x3caf}, + 113: {from: 0x2cfc, to: 0x3be}, + 114: {from: 0x2d13, to: 0x597}, + 115: {from: 0x2d47, to: 0x148}, + 116: {from: 0x2d48, to: 0x148}, + 117: {from: 0x2dff, to: 0x2f1}, + 118: {from: 0x2e08, to: 0x19cc}, + 119: {from: 0x2e1a, to: 0x2d95}, + 120: {from: 0x2e21, to: 0x292}, + 121: {from: 0x2e54, to: 0x7d}, + 122: {from: 0x2e65, to: 0x2282}, + 123: {from: 0x2ea0, to: 0x2e9b}, + 124: {from: 0x2eef, to: 0x2ed7}, + 125: {from: 0x3193, to: 0x3c4}, + 126: {from: 0x3366, to: 0x338e}, + 127: {from: 0x342a, to: 0x3dc}, + 128: {from: 0x34ee, to: 0x18d0}, + 129: {from: 0x35c8, to: 0x2c9b}, + 130: {from: 0x35e6, to: 0x412}, + 131: {from: 0x3658, to: 0x246}, + 132: {from: 0x3676, to: 0x3f4}, + 133: {from: 0x36fd, to: 0x445}, + 134: {from: 0x37c0, to: 0x121}, + 135: {from: 0x3816, to: 0x38f2}, + 136: {from: 0x382b, to: 0x2c9b}, + 137: {from: 0x382f, to: 0xa9}, + 138: {from: 0x3832, to: 0x3228}, + 139: {from: 0x386c, to: 0x39a6}, + 140: {from: 0x3892, to: 0x3fc0}, + 141: {from: 0x38a5, to: 0x39d7}, + 142: {from: 0x38b4, to: 0x1fa4}, + 143: {from: 0x38b5, to: 0x2e9a}, + 144: {from: 0x395c, to: 0x47e}, + 145: {from: 0x3b4e, to: 0xd91}, + 146: {from: 0x3b78, to: 0x137}, + 147: {from: 0x3c99, to: 0x4bc}, + 148: {from: 0x3fbd, to: 0x100}, + 149: {from: 0x4208, to: 0xa91}, + 150: {from: 0x42be, to: 0x573}, + 151: {from: 0x42f9, to: 0x3f60}, + 152: {from: 0x4378, to: 0x25a}, + 153: {from: 0x43cb, to: 0x36cb}, + 154: {from: 0x43cd, to: 0x10f}, + 155: {from: 0x44af, to: 0x3322}, + 156: {from: 0x44e3, to: 0x512}, + 157: {from: 0x45ca, to: 0x2409}, + 158: {from: 0x45dd, to: 0x26dc}, + 159: {from: 0x4610, to: 0x48ae}, + 160: {from: 0x46ae, to: 0x46a0}, + 161: {from: 0x473e, to: 0x4745}, + 162: {from: 0x4916, to: 0x31f}, + 163: {from: 0x49a7, to: 0x523}, +} + +// Size: 164 bytes, 164 elements +var langAliasTypes = [164]langAliasType{ + // Entry 0 - 3F + 1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, + 1, 1, 2, 0, 1, 0, 1, 2, 1, 1, 0, 0, 2, 1, 1, 0, + 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, + 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0, 1, 2, 0, + // Entry 40 - 7F + 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, + 2, 2, 2, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, + 0, 1, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, + // Entry 80 - BF + 0, 0, 2, 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 1, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, + 0, 1, 1, 1, +} + +const ( + _Latn = 87 + _Hani = 54 + _Hans = 56 + _Hant = 57 + _Qaaa = 139 + _Qaai = 147 + _Qabx = 188 + _Zinh = 236 + _Zyyy = 241 + _Zzzz = 242 +) + +// 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. +const script tag.Index = "" + // Size: 976 bytes + "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" + + "BrahBraiBugiBuhdCakmCansCariChamCherCirtCoptCpmnCprtCyrlCyrsDevaDogrDsrt" + + "DuplEgydEgyhEgypElbaEthiGeokGeorGlagGongGonmGothGranGrekGujrGuruHanbHang" + + "HaniHanoHansHantHatrHebrHiraHluwHmngHmnpHrktHungIndsItalJamoJavaJpanJurc" + + "KaliKanaKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatfLatgLatnLekeLepc" + + "LimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedfMendMercMeroMlym" + + "ModiMongMoonMrooMteiMultMymrNarbNbatNewaNkdbNkgbNkooNshuOgamOlckOrkhOrya" + + "OsgeOsmaPalmPaucPermPhagPhliPhlpPhlvPhnxPiqdPlrdPrtiQaaaQaabQaacQaadQaae" + + "QaafQaagQaahQaaiQaajQaakQaalQaamQaanQaaoQaapQaaqQaarQaasQaatQaauQaavQaaw" + + "QaaxQaayQaazQabaQabbQabcQabdQabeQabfQabgQabhQabiQabjQabkQablQabmQabnQabo" + + "QabpQabqQabrQabsQabtQabuQabvQabwQabxRjngRoroRunrSamrSaraSarbSaurSgnwShaw" + + "ShrdShuiSiddSindSinhSoraSoyoSundSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTaml" + + "TangTavtTeluTengTfngTglgThaaThaiTibtTirhUgarVaiiVispWaraWchoWoleXpeoXsux" + + "YiiiZanbZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff\xff" + +// 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. +// Size: 1330 bytes, 1330 elements +var suppressScript = [1330]uint8{ + // Entry 0 - 3F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 40 - 7F + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + // Entry 80 - BF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry C0 - FF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 100 - 13F + 0x57, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x57, 0x00, + // Entry 140 - 17F + 0x57, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x57, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 180 - 1BF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x57, 0x32, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x21, 0x00, + // Entry 1C0 - 1FF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x57, 0x00, 0x57, 0x57, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, + 0x57, 0x57, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, + // Entry 200 - 23F + 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 240 - 27F + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4f, 0x00, 0x00, 0x50, 0x00, 0x21, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 280 - 2BF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 2C0 - 2FF + 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + // Entry 300 - 33F + 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x57, + 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + // Entry 340 - 37F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x57, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x57, 0x00, + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 380 - 3BF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, + // Entry 3C0 - 3FF + 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 400 - 43F + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, + // Entry 440 - 47F + 0x00, 0x00, 0x00, 0x00, 0x57, 0x57, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xda, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, + // Entry 480 - 4BF + 0x57, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 4C0 - 4FF + 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 500 - 53F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x00, 0x00, +} + const ( _001 = 1 _419 = 31 @@ -34,20 +1009,2290 @@ const ( _XC = 325 _XK = 333 ) -const ( - _Latn = 87 - _Hani = 54 - _Hans = 56 - _Hant = 57 - _Qaaa = 139 - _Qaai = 147 - _Qabx = 188 - _Zinh = 236 - _Zyyy = 241 - _Zzzz = 242 -) -var regionToGroups = []uint8{ // 357 elements +// 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.) +const isoRegionOffset = 32 + +// regionTypes defines the status of a region for various standards. +// Size: 358 bytes, 358 elements +var regionTypes = [358]uint8{ + // Entry 0 - 3F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry 40 - 7F + 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, + 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, + 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry 80 - BF + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry C0 - FF + 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, + 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + 0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + // Entry 100 - 13F + 0x05, 0x05, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x02, 0x06, 0x04, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry 140 - 17F + 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x06, 0x06, + 0x04, 0x06, 0x06, 0x04, 0x06, 0x05, +} + +// 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. +const regionISO tag.Index = "" + // Size: 1308 bytes + "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" + + "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" + + "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" + + "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" + + "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03EZ FIINFJJIFKLKFMSMFORO" + + "FQ\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGR" + + "RCGS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSR" + + "IMMNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00" + + "\x09KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTU" + + "LUUXLVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQ" + + "MRRTMSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOOR" + + "NPPLNQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00" + + "\x12PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTT" + + "QU\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYC" + + "SDDNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYR" + + "SZWZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTV" + + "UVTWWNTZZAUAKRUGGAUK UMMIUN USSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVU" + + "UTWFLFWKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXO" + + "OOXPPPXQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAF" + + "ZMMBZRARZWWEZZZZ\xff\xff\xff\xff" + +// 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. +const altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN" + +// altRegionIDs holds a list of regionIDs the positions of which match those +// of the 3-letter ISO codes in altRegionISO3. +// Size: 22 bytes, 11 elements +var altRegionIDs = [11]uint16{ + 0x0057, 0x0070, 0x0088, 0x00a8, 0x00aa, 0x00ad, 0x00ea, 0x0105, + 0x0121, 0x015f, 0x00dc, +} + +// Size: 80 bytes, 20 elements +var regionOldMap = [20]fromTo{ + 0: {from: 0x44, to: 0xc4}, + 1: {from: 0x58, to: 0xa7}, + 2: {from: 0x5f, to: 0x60}, + 3: {from: 0x66, to: 0x3b}, + 4: {from: 0x79, to: 0x78}, + 5: {from: 0x93, to: 0x37}, + 6: {from: 0xa3, to: 0x133}, + 7: {from: 0xc1, to: 0x133}, + 8: {from: 0xd7, to: 0x13f}, + 9: {from: 0xdc, to: 0x2b}, + 10: {from: 0xef, to: 0x133}, + 11: {from: 0xf2, to: 0xe2}, + 12: {from: 0xfc, to: 0x70}, + 13: {from: 0x103, to: 0x164}, + 14: {from: 0x12a, to: 0x126}, + 15: {from: 0x132, to: 0x7b}, + 16: {from: 0x13a, to: 0x13e}, + 17: {from: 0x141, to: 0x133}, + 18: {from: 0x15d, to: 0x15e}, + 19: {from: 0x163, to: 0x4b}, +} + +// m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are +// codes indicating collections of regions. +// Size: 716 bytes, 358 elements +var m49 = [358]int16{ + // Entry 0 - 3F + 0, 1, 2, 3, 5, 9, 11, 13, + 14, 15, 17, 18, 19, 21, 29, 30, + 34, 35, 39, 53, 54, 57, 61, 142, + 143, 145, 150, 151, 154, 155, 202, 419, + 958, 0, 20, 784, 4, 28, 660, 8, + 51, 530, 24, 10, 32, 16, 40, 36, + 533, 248, 31, 70, 52, 50, 56, 854, + 100, 48, 108, 204, 652, 60, 96, 68, + // Entry 40 - 7F + 535, 76, 44, 64, 104, 74, 72, 112, + 84, 124, 166, 180, 140, 178, 756, 384, + 184, 152, 120, 156, 170, 0, 188, 891, + 296, 192, 132, 531, 162, 196, 203, 278, + 276, 0, 262, 208, 212, 214, 204, 12, + 0, 218, 233, 818, 732, 232, 724, 231, + 967, 0, 246, 242, 238, 583, 234, 0, + 250, 249, 266, 826, 308, 268, 254, 831, + // Entry 80 - BF + 288, 292, 304, 270, 324, 312, 226, 300, + 239, 320, 316, 624, 328, 344, 334, 340, + 191, 332, 348, 854, 0, 360, 372, 376, + 833, 356, 86, 368, 364, 352, 380, 832, + 388, 400, 392, 581, 404, 417, 116, 296, + 174, 659, 408, 410, 414, 136, 398, 418, + 422, 662, 438, 144, 430, 426, 440, 442, + 428, 434, 504, 492, 498, 499, 663, 450, + // Entry C0 - FF + 584, 581, 807, 466, 104, 496, 446, 580, + 474, 478, 500, 470, 480, 462, 454, 484, + 458, 508, 516, 540, 562, 574, 566, 548, + 558, 528, 578, 524, 10, 520, 536, 570, + 554, 512, 591, 0, 604, 258, 598, 608, + 586, 616, 666, 612, 630, 275, 620, 581, + 585, 600, 591, 634, 959, 960, 961, 962, + 963, 964, 965, 966, 967, 968, 969, 970, + // Entry 100 - 13F + 971, 972, 638, 716, 642, 688, 643, 646, + 682, 90, 690, 729, 752, 702, 654, 705, + 744, 703, 694, 674, 686, 706, 740, 728, + 678, 810, 222, 534, 760, 748, 0, 796, + 148, 260, 768, 764, 762, 772, 626, 795, + 788, 776, 626, 792, 780, 798, 158, 834, + 804, 800, 826, 581, 0, 840, 858, 860, + 336, 670, 704, 862, 92, 850, 704, 548, + // Entry 140 - 17F + 876, 581, 882, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, + 986, 987, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 720, 887, 175, + 891, 710, 894, 180, 716, 999, +} + +// 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. +// Size: 18 bytes, 9 elements +var m49Index = [9]int16{ + 0, 59, 108, 143, 181, 220, 259, 291, + 333, +} + +// fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details. +// Size: 666 bytes, 333 elements +var fromM49 = [333]uint16{ + // Entry 0 - 3F + 0x0201, 0x0402, 0x0603, 0x0824, 0x0a04, 0x1027, 0x1205, 0x142b, + 0x1606, 0x1867, 0x1a07, 0x1c08, 0x1e09, 0x202d, 0x220a, 0x240b, + 0x260c, 0x2822, 0x2a0d, 0x302a, 0x3825, 0x3a0e, 0x3c0f, 0x3e32, + 0x402c, 0x4410, 0x4611, 0x482f, 0x4e12, 0x502e, 0x5842, 0x6039, + 0x6435, 0x6628, 0x6834, 0x6a13, 0x6c14, 0x7036, 0x7215, 0x783d, + 0x7a16, 0x8043, 0x883f, 0x8c33, 0x9046, 0x9445, 0x9841, 0xa848, + 0xac9a, 0xb509, 0xb93c, 0xc03e, 0xc838, 0xd0c4, 0xd83a, 0xe047, + 0xe8a6, 0xf052, 0xf849, 0x085a, 0x10ad, 0x184c, 0x1c17, 0x1e18, + // Entry 40 - 7F + 0x20b3, 0x2219, 0x2920, 0x2c1a, 0x2e1b, 0x3051, 0x341c, 0x361d, + 0x3853, 0x3d2e, 0x445c, 0x4c4a, 0x5454, 0x5ca8, 0x5f5f, 0x644d, + 0x684b, 0x7050, 0x7856, 0x7e90, 0x8059, 0x885d, 0x941e, 0x965e, + 0x983b, 0xa063, 0xa864, 0xac65, 0xb469, 0xbd1a, 0xc486, 0xcc6f, + 0xce6f, 0xd06d, 0xd26a, 0xd476, 0xdc74, 0xde88, 0xe473, 0xec72, + 0xf031, 0xf279, 0xf478, 0xfc7e, 0x04e5, 0x0921, 0x0c62, 0x147a, + 0x187d, 0x1c83, 0x26ed, 0x2860, 0x2c5f, 0x3060, 0x4080, 0x4881, + 0x50a7, 0x5887, 0x6082, 0x687c, 0x7085, 0x788a, 0x8089, 0x8884, + // Entry 80 - BF + 0x908c, 0x9891, 0x9c8e, 0xa138, 0xa88f, 0xb08d, 0xb892, 0xc09d, + 0xc899, 0xd095, 0xd89c, 0xe09b, 0xe896, 0xf097, 0xf89e, 0x004f, + 0x08a0, 0x10a2, 0x1cae, 0x20a1, 0x28a4, 0x30aa, 0x34ab, 0x3cac, + 0x42a5, 0x44af, 0x461f, 0x4cb0, 0x54b5, 0x58b8, 0x5cb4, 0x64b9, + 0x6cb2, 0x70b6, 0x74b7, 0x7cc6, 0x84bf, 0x8cce, 0x94d0, 0x9ccd, + 0xa4c3, 0xaccb, 0xb4c8, 0xbcc9, 0xc0cc, 0xc8cf, 0xd8bb, 0xe0c5, + 0xe4bc, 0xe6bd, 0xe8ca, 0xf0ba, 0xf8d1, 0x00e1, 0x08d2, 0x10dd, + 0x18db, 0x20d9, 0x2429, 0x265b, 0x2a30, 0x2d1b, 0x2e40, 0x30de, + // Entry C0 - FF + 0x38d3, 0x493f, 0x54e0, 0x5cd8, 0x64d4, 0x6cd6, 0x74df, 0x7cd5, + 0x84da, 0x88c7, 0x8b33, 0x8e75, 0x90c0, 0x92f0, 0x94e8, 0x9ee2, + 0xace6, 0xb0f1, 0xb8e4, 0xc0e7, 0xc8eb, 0xd0e9, 0xd8ee, 0xe08b, + 0xe526, 0xecec, 0xf4f3, 0xfd02, 0x0504, 0x0706, 0x0d07, 0x183c, + 0x1d0e, 0x26a9, 0x2826, 0x2cb1, 0x2ebe, 0x34ea, 0x3d39, 0x4513, + 0x4d18, 0x5508, 0x5d14, 0x6105, 0x650a, 0x6d12, 0x7d0d, 0x7f11, + 0x813e, 0x830f, 0x8515, 0x8d61, 0x9964, 0xa15d, 0xa86e, 0xb117, + 0xb30b, 0xb86c, 0xc10b, 0xc916, 0xd110, 0xd91d, 0xe10c, 0xe84e, + // Entry 100 - 13F + 0xf11c, 0xf524, 0xf923, 0x0122, 0x0925, 0x1129, 0x192c, 0x2023, + 0x2928, 0x312b, 0x3727, 0x391f, 0x3d2d, 0x4131, 0x4930, 0x4ec2, + 0x5519, 0x646b, 0x747b, 0x7e7f, 0x809f, 0x8298, 0x852f, 0x9135, + 0xa53d, 0xac37, 0xb536, 0xb937, 0xbd3b, 0xd940, 0xe542, 0xed5e, + 0xef5e, 0xf657, 0xfd62, 0x7c20, 0x7ef4, 0x80f5, 0x82f6, 0x84f7, + 0x86f8, 0x88f9, 0x8afa, 0x8cfb, 0x8e70, 0x90fd, 0x92fe, 0x94ff, + 0x9700, 0x9901, 0x9b43, 0x9d44, 0x9f45, 0xa146, 0xa347, 0xa548, + 0xa749, 0xa94a, 0xab4b, 0xad4c, 0xaf4d, 0xb14e, 0xb34f, 0xb550, + // Entry 140 - 17F + 0xb751, 0xb952, 0xbb53, 0xbd54, 0xbf55, 0xc156, 0xc357, 0xc558, + 0xc759, 0xc95a, 0xcb5b, 0xcd5c, 0xcf65, +} + +// Size: 1615 bytes +var variantIndex = map[string]uint8{ + "1606nict": 0x0, + "1694acad": 0x1, + "1901": 0x2, + "1959acad": 0x3, + "1994": 0x4d, + "1996": 0x4, + "abl1943": 0x5, + "akuapem": 0x6, + "alalc97": 0x4f, + "aluku": 0x7, + "ao1990": 0x8, + "arevela": 0x9, + "arevmda": 0xa, + "asante": 0xb, + "baku1926": 0xc, + "balanka": 0xd, + "barla": 0xe, + "basiceng": 0xf, + "bauddha": 0x10, + "biscayan": 0x11, + "biske": 0x48, + "bohoric": 0x12, + "boont": 0x13, + "colb1945": 0x14, + "cornu": 0x15, + "dajnko": 0x16, + "ekavsk": 0x17, + "emodeng": 0x18, + "fonipa": 0x50, + "fonnapa": 0x51, + "fonupa": 0x52, + "fonxsamp": 0x53, + "hepburn": 0x19, + "heploc": 0x4e, + "hognorsk": 0x1a, + "hsistemo": 0x1b, + "ijekavsk": 0x1c, + "itihasa": 0x1d, + "jauer": 0x1e, + "jyutping": 0x1f, + "kkcor": 0x20, + "kociewie": 0x21, + "kscor": 0x22, + "laukika": 0x23, + "lipaw": 0x49, + "luna1918": 0x24, + "metelko": 0x25, + "monoton": 0x26, + "ndyuka": 0x27, + "nedis": 0x28, + "newfound": 0x29, + "njiva": 0x4a, + "nulik": 0x2a, + "osojs": 0x4b, + "oxendict": 0x2b, + "pahawh2": 0x2c, + "pahawh3": 0x2d, + "pahawh4": 0x2e, + "pamaka": 0x2f, + "petr1708": 0x30, + "pinyin": 0x31, + "polyton": 0x32, + "puter": 0x33, + "rigik": 0x34, + "rozaj": 0x35, + "rumgr": 0x36, + "scotland": 0x37, + "scouse": 0x38, + "simple": 0x54, + "solba": 0x4c, + "sotav": 0x39, + "spanglis": 0x3a, + "surmiran": 0x3b, + "sursilv": 0x3c, + "sutsilv": 0x3d, + "tarask": 0x3e, + "uccor": 0x3f, + "ucrcor": 0x40, + "ulster": 0x41, + "unifon": 0x42, + "vaidika": 0x43, + "valencia": 0x44, + "vallader": 0x45, + "wadegile": 0x46, + "xsistemo": 0x47, +} + +// variantNumSpecialized is the number of specialized variants in variants. +const variantNumSpecialized = 79 + +// nRegionGroups is the number of region groups. +const nRegionGroups = 33 + +type likelyLangRegion struct { + lang uint16 + region uint16 +} + +// likelyScript is a lookup table, indexed by scriptID, for the most likely +// languages and regions given a script. +// Size: 976 bytes, 244 elements +var likelyScript = [244]likelyLangRegion{ + 1: {lang: 0x14e, region: 0x84}, + 3: {lang: 0x2a2, region: 0x106}, + 4: {lang: 0x1f, region: 0x99}, + 5: {lang: 0x3a, region: 0x6b}, + 7: {lang: 0x3b, region: 0x9c}, + 8: {lang: 0x1d7, region: 0x28}, + 9: {lang: 0x13, region: 0x9c}, + 10: {lang: 0x5b, region: 0x95}, + 11: {lang: 0x60, region: 0x52}, + 12: {lang: 0xb9, region: 0xb4}, + 13: {lang: 0x63, region: 0x95}, + 14: {lang: 0xa5, region: 0x35}, + 15: {lang: 0x3e9, region: 0x99}, + 17: {lang: 0x529, region: 0x12e}, + 18: {lang: 0x3b1, region: 0x99}, + 19: {lang: 0x15e, region: 0x78}, + 20: {lang: 0xc2, region: 0x95}, + 21: {lang: 0x9d, region: 0xe7}, + 22: {lang: 0xdb, region: 0x35}, + 23: {lang: 0xf3, region: 0x49}, + 24: {lang: 0x4f0, region: 0x12b}, + 25: {lang: 0xe7, region: 0x13e}, + 26: {lang: 0xe5, region: 0x135}, + 28: {lang: 0xf1, region: 0x6b}, + 30: {lang: 0x1a0, region: 0x5d}, + 31: {lang: 0x3e2, region: 0x106}, + 33: {lang: 0x1be, region: 0x99}, + 36: {lang: 0x15e, region: 0x78}, + 39: {lang: 0x133, region: 0x6b}, + 40: {lang: 0x431, region: 0x27}, + 41: {lang: 0x27, region: 0x6f}, + 43: {lang: 0x210, region: 0x7d}, + 44: {lang: 0xfe, region: 0x38}, + 46: {lang: 0x19b, region: 0x99}, + 47: {lang: 0x19e, region: 0x130}, + 48: {lang: 0x3e9, region: 0x99}, + 49: {lang: 0x136, region: 0x87}, + 50: {lang: 0x1a4, region: 0x99}, + 51: {lang: 0x39d, region: 0x99}, + 52: {lang: 0x529, region: 0x12e}, + 53: {lang: 0x254, region: 0xab}, + 54: {lang: 0x529, region: 0x53}, + 55: {lang: 0x1cb, region: 0xe7}, + 56: {lang: 0x529, region: 0x53}, + 57: {lang: 0x529, region: 0x12e}, + 58: {lang: 0x2fd, region: 0x9b}, + 59: {lang: 0x1bc, region: 0x97}, + 60: {lang: 0x200, region: 0xa2}, + 61: {lang: 0x1c5, region: 0x12b}, + 62: {lang: 0x1ca, region: 0xaf}, + 65: {lang: 0x1d5, region: 0x92}, + 67: {lang: 0x142, region: 0x9e}, + 68: {lang: 0x254, region: 0xab}, + 69: {lang: 0x20e, region: 0x95}, + 70: {lang: 0x200, region: 0xa2}, + 72: {lang: 0x135, region: 0xc4}, + 73: {lang: 0x200, region: 0xa2}, + 74: {lang: 0x3bb, region: 0xe8}, + 75: {lang: 0x24a, region: 0xa6}, + 76: {lang: 0x3fa, region: 0x99}, + 79: {lang: 0x251, region: 0x99}, + 80: {lang: 0x254, region: 0xab}, + 82: {lang: 0x88, region: 0x99}, + 83: {lang: 0x370, region: 0x123}, + 84: {lang: 0x2b8, region: 0xaf}, + 89: {lang: 0x29f, region: 0x99}, + 90: {lang: 0x2a8, region: 0x99}, + 91: {lang: 0x28f, region: 0x87}, + 92: {lang: 0x1a0, region: 0x87}, + 93: {lang: 0x2ac, region: 0x53}, + 95: {lang: 0x4f4, region: 0x12b}, + 96: {lang: 0x4f5, region: 0x12b}, + 97: {lang: 0x1be, region: 0x99}, + 99: {lang: 0x337, region: 0x9c}, + 100: {lang: 0x4f7, region: 0x53}, + 101: {lang: 0xa9, region: 0x53}, + 104: {lang: 0x2e8, region: 0x112}, + 105: {lang: 0x4f8, region: 0x10b}, + 106: {lang: 0x4f8, region: 0x10b}, + 107: {lang: 0x304, region: 0x99}, + 108: {lang: 0x31b, region: 0x99}, + 109: {lang: 0x30b, region: 0x53}, + 111: {lang: 0x31e, region: 0x35}, + 112: {lang: 0x30e, region: 0x99}, + 113: {lang: 0x414, region: 0xe8}, + 114: {lang: 0x331, region: 0xc4}, + 115: {lang: 0x4f9, region: 0x108}, + 116: {lang: 0x3b, region: 0xa1}, + 117: {lang: 0x353, region: 0xdb}, + 120: {lang: 0x2d0, region: 0x84}, + 121: {lang: 0x52a, region: 0x53}, + 122: {lang: 0x403, region: 0x96}, + 123: {lang: 0x3ee, region: 0x99}, + 124: {lang: 0x39b, region: 0xc5}, + 125: {lang: 0x395, region: 0x99}, + 126: {lang: 0x399, region: 0x135}, + 127: {lang: 0x429, region: 0x115}, + 128: {lang: 0x3b, region: 0x11c}, + 129: {lang: 0xfd, region: 0xc4}, + 130: {lang: 0x27d, region: 0x106}, + 131: {lang: 0x2c9, region: 0x53}, + 132: {lang: 0x39f, region: 0x9c}, + 133: {lang: 0x39f, region: 0x53}, + 135: {lang: 0x3ad, region: 0xb0}, + 137: {lang: 0x1c6, region: 0x53}, + 138: {lang: 0x4fd, region: 0x9c}, + 189: {lang: 0x3cb, region: 0x95}, + 191: {lang: 0x372, region: 0x10c}, + 192: {lang: 0x420, region: 0x97}, + 194: {lang: 0x4ff, region: 0x15e}, + 195: {lang: 0x3f0, region: 0x99}, + 196: {lang: 0x45, region: 0x135}, + 197: {lang: 0x139, region: 0x7b}, + 198: {lang: 0x3e9, region: 0x99}, + 200: {lang: 0x3e9, region: 0x99}, + 201: {lang: 0x3fa, region: 0x99}, + 202: {lang: 0x40c, region: 0xb3}, + 203: {lang: 0x433, region: 0x99}, + 204: {lang: 0xef, region: 0xc5}, + 205: {lang: 0x43e, region: 0x95}, + 206: {lang: 0x44d, region: 0x35}, + 207: {lang: 0x44e, region: 0x9b}, + 211: {lang: 0x45a, region: 0xe7}, + 212: {lang: 0x11a, region: 0x99}, + 213: {lang: 0x45e, region: 0x53}, + 214: {lang: 0x232, region: 0x53}, + 215: {lang: 0x450, region: 0x99}, + 216: {lang: 0x4a5, region: 0x53}, + 217: {lang: 0x9f, region: 0x13e}, + 218: {lang: 0x461, region: 0x99}, + 220: {lang: 0x528, region: 0xba}, + 221: {lang: 0x153, region: 0xe7}, + 222: {lang: 0x128, region: 0xcd}, + 223: {lang: 0x46b, region: 0x123}, + 224: {lang: 0xa9, region: 0x53}, + 225: {lang: 0x2ce, region: 0x99}, + 226: {lang: 0x4ad, region: 0x11c}, + 227: {lang: 0x4be, region: 0xb4}, + 229: {lang: 0x1ce, region: 0x99}, + 232: {lang: 0x3a9, region: 0x9c}, + 233: {lang: 0x22, region: 0x9b}, + 234: {lang: 0x1ea, region: 0x53}, + 235: {lang: 0xef, region: 0xc5}, +} + +type likelyScriptRegion struct { + region uint16 + script uint8 + flags uint8 +} + +// 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. +// Size: 5320 bytes, 1330 elements +var likelyLang = [1330]likelyScriptRegion{ + 0: {region: 0x135, script: 0x57, flags: 0x0}, + 1: {region: 0x6f, script: 0x57, flags: 0x0}, + 2: {region: 0x165, script: 0x57, flags: 0x0}, + 3: {region: 0x165, script: 0x57, flags: 0x0}, + 4: {region: 0x165, script: 0x57, flags: 0x0}, + 5: {region: 0x7d, script: 0x1f, flags: 0x0}, + 6: {region: 0x165, script: 0x57, flags: 0x0}, + 7: {region: 0x165, script: 0x1f, flags: 0x0}, + 8: {region: 0x80, script: 0x57, flags: 0x0}, + 9: {region: 0x165, script: 0x57, flags: 0x0}, + 10: {region: 0x165, script: 0x57, flags: 0x0}, + 11: {region: 0x165, script: 0x57, flags: 0x0}, + 12: {region: 0x95, script: 0x57, flags: 0x0}, + 13: {region: 0x131, script: 0x57, flags: 0x0}, + 14: {region: 0x80, script: 0x57, flags: 0x0}, + 15: {region: 0x165, script: 0x57, flags: 0x0}, + 16: {region: 0x165, script: 0x57, flags: 0x0}, + 17: {region: 0x106, script: 0x1f, flags: 0x0}, + 18: {region: 0x165, script: 0x57, flags: 0x0}, + 19: {region: 0x9c, script: 0x9, flags: 0x0}, + 20: {region: 0x128, script: 0x5, flags: 0x0}, + 21: {region: 0x165, script: 0x57, flags: 0x0}, + 22: {region: 0x161, script: 0x57, flags: 0x0}, + 23: {region: 0x165, script: 0x57, flags: 0x0}, + 24: {region: 0x165, script: 0x57, flags: 0x0}, + 25: {region: 0x165, script: 0x57, flags: 0x0}, + 26: {region: 0x165, script: 0x57, flags: 0x0}, + 27: {region: 0x165, script: 0x57, flags: 0x0}, + 28: {region: 0x52, script: 0x57, flags: 0x0}, + 29: {region: 0x165, script: 0x57, flags: 0x0}, + 30: {region: 0x165, script: 0x57, flags: 0x0}, + 31: {region: 0x99, script: 0x4, flags: 0x0}, + 32: {region: 0x165, script: 0x57, flags: 0x0}, + 33: {region: 0x80, script: 0x57, flags: 0x0}, + 34: {region: 0x9b, script: 0xe9, flags: 0x0}, + 35: {region: 0x165, script: 0x57, flags: 0x0}, + 36: {region: 0x165, script: 0x57, flags: 0x0}, + 37: {region: 0x14d, script: 0x57, flags: 0x0}, + 38: {region: 0x106, script: 0x1f, flags: 0x0}, + 39: {region: 0x6f, script: 0x29, flags: 0x0}, + 40: {region: 0x165, script: 0x57, flags: 0x0}, + 41: {region: 0x165, script: 0x57, flags: 0x0}, + 42: {region: 0xd6, script: 0x57, flags: 0x0}, + 43: {region: 0x165, script: 0x57, flags: 0x0}, + 45: {region: 0x165, script: 0x57, flags: 0x0}, + 46: {region: 0x165, script: 0x57, flags: 0x0}, + 47: {region: 0x165, script: 0x57, flags: 0x0}, + 48: {region: 0x165, script: 0x57, flags: 0x0}, + 49: {region: 0x165, script: 0x57, flags: 0x0}, + 50: {region: 0x165, script: 0x57, flags: 0x0}, + 51: {region: 0x95, script: 0x57, flags: 0x0}, + 52: {region: 0x165, script: 0x5, flags: 0x0}, + 53: {region: 0x122, script: 0x5, flags: 0x0}, + 54: {region: 0x165, script: 0x57, flags: 0x0}, + 55: {region: 0x165, script: 0x57, flags: 0x0}, + 56: {region: 0x165, script: 0x57, flags: 0x0}, + 57: {region: 0x165, script: 0x57, flags: 0x0}, + 58: {region: 0x6b, script: 0x5, flags: 0x0}, + 59: {region: 0x0, script: 0x3, flags: 0x1}, + 60: {region: 0x165, script: 0x57, flags: 0x0}, + 61: {region: 0x51, script: 0x57, flags: 0x0}, + 62: {region: 0x3f, script: 0x57, flags: 0x0}, + 63: {region: 0x67, script: 0x5, flags: 0x0}, + 65: {region: 0xba, script: 0x5, flags: 0x0}, + 66: {region: 0x6b, script: 0x5, flags: 0x0}, + 67: {region: 0x99, script: 0xe, flags: 0x0}, + 68: {region: 0x12f, script: 0x57, flags: 0x0}, + 69: {region: 0x135, script: 0xc4, flags: 0x0}, + 70: {region: 0x165, script: 0x57, flags: 0x0}, + 71: {region: 0x165, script: 0x57, flags: 0x0}, + 72: {region: 0x6e, script: 0x57, flags: 0x0}, + 73: {region: 0x165, script: 0x57, flags: 0x0}, + 74: {region: 0x165, script: 0x57, flags: 0x0}, + 75: {region: 0x49, script: 0x57, flags: 0x0}, + 76: {region: 0x165, script: 0x57, flags: 0x0}, + 77: {region: 0x106, script: 0x1f, flags: 0x0}, + 78: {region: 0x165, script: 0x5, flags: 0x0}, + 79: {region: 0x165, script: 0x57, flags: 0x0}, + 80: {region: 0x165, script: 0x57, flags: 0x0}, + 81: {region: 0x165, script: 0x57, flags: 0x0}, + 82: {region: 0x99, script: 0x21, flags: 0x0}, + 83: {region: 0x165, script: 0x57, flags: 0x0}, + 84: {region: 0x165, script: 0x57, flags: 0x0}, + 85: {region: 0x165, script: 0x57, flags: 0x0}, + 86: {region: 0x3f, script: 0x57, flags: 0x0}, + 87: {region: 0x165, script: 0x57, flags: 0x0}, + 88: {region: 0x3, script: 0x5, flags: 0x1}, + 89: {region: 0x106, script: 0x1f, flags: 0x0}, + 90: {region: 0xe8, script: 0x5, flags: 0x0}, + 91: {region: 0x95, script: 0x57, flags: 0x0}, + 92: {region: 0xdb, script: 0x21, flags: 0x0}, + 93: {region: 0x2e, script: 0x57, flags: 0x0}, + 94: {region: 0x52, script: 0x57, flags: 0x0}, + 95: {region: 0x165, script: 0x57, flags: 0x0}, + 96: {region: 0x52, script: 0xb, flags: 0x0}, + 97: {region: 0x165, script: 0x57, flags: 0x0}, + 98: {region: 0x165, script: 0x57, flags: 0x0}, + 99: {region: 0x95, script: 0x57, flags: 0x0}, + 100: {region: 0x165, script: 0x57, flags: 0x0}, + 101: {region: 0x52, script: 0x57, flags: 0x0}, + 102: {region: 0x165, script: 0x57, flags: 0x0}, + 103: {region: 0x165, script: 0x57, flags: 0x0}, + 104: {region: 0x165, script: 0x57, flags: 0x0}, + 105: {region: 0x165, script: 0x57, flags: 0x0}, + 106: {region: 0x4f, script: 0x57, flags: 0x0}, + 107: {region: 0x165, script: 0x57, flags: 0x0}, + 108: {region: 0x165, script: 0x57, flags: 0x0}, + 109: {region: 0x165, script: 0x57, flags: 0x0}, + 110: {region: 0x165, script: 0x29, flags: 0x0}, + 111: {region: 0x165, script: 0x57, flags: 0x0}, + 112: {region: 0x165, script: 0x57, flags: 0x0}, + 113: {region: 0x47, script: 0x1f, flags: 0x0}, + 114: {region: 0x165, script: 0x57, flags: 0x0}, + 115: {region: 0x165, script: 0x57, flags: 0x0}, + 116: {region: 0x10b, script: 0x5, flags: 0x0}, + 117: {region: 0x162, script: 0x57, flags: 0x0}, + 118: {region: 0x165, script: 0x57, flags: 0x0}, + 119: {region: 0x95, script: 0x57, flags: 0x0}, + 120: {region: 0x165, script: 0x57, flags: 0x0}, + 121: {region: 0x12f, script: 0x57, flags: 0x0}, + 122: {region: 0x52, script: 0x57, flags: 0x0}, + 123: {region: 0x99, script: 0xd7, flags: 0x0}, + 124: {region: 0xe8, script: 0x5, flags: 0x0}, + 125: {region: 0x99, script: 0x21, flags: 0x0}, + 126: {region: 0x38, script: 0x1f, flags: 0x0}, + 127: {region: 0x99, script: 0x21, flags: 0x0}, + 128: {region: 0xe8, script: 0x5, flags: 0x0}, + 129: {region: 0x12b, script: 0x31, flags: 0x0}, + 131: {region: 0x99, script: 0x21, flags: 0x0}, + 132: {region: 0x165, script: 0x57, flags: 0x0}, + 133: {region: 0x99, script: 0x21, flags: 0x0}, + 134: {region: 0xe7, script: 0x57, flags: 0x0}, + 135: {region: 0x165, script: 0x57, flags: 0x0}, + 136: {region: 0x99, script: 0x21, flags: 0x0}, + 137: {region: 0x165, script: 0x57, flags: 0x0}, + 138: {region: 0x13f, script: 0x57, flags: 0x0}, + 139: {region: 0x165, script: 0x57, flags: 0x0}, + 140: {region: 0x165, script: 0x57, flags: 0x0}, + 141: {region: 0xe7, script: 0x57, flags: 0x0}, + 142: {region: 0x165, script: 0x57, flags: 0x0}, + 143: {region: 0xd6, script: 0x57, flags: 0x0}, + 144: {region: 0x165, script: 0x57, flags: 0x0}, + 145: {region: 0x165, script: 0x57, flags: 0x0}, + 146: {region: 0x165, script: 0x57, flags: 0x0}, + 147: {region: 0x165, script: 0x29, flags: 0x0}, + 148: {region: 0x99, script: 0x21, flags: 0x0}, + 149: {region: 0x95, script: 0x57, flags: 0x0}, + 150: {region: 0x165, script: 0x57, flags: 0x0}, + 151: {region: 0x165, script: 0x57, flags: 0x0}, + 152: {region: 0x114, script: 0x57, flags: 0x0}, + 153: {region: 0x165, script: 0x57, flags: 0x0}, + 154: {region: 0x165, script: 0x57, flags: 0x0}, + 155: {region: 0x52, script: 0x57, flags: 0x0}, + 156: {region: 0x165, script: 0x57, flags: 0x0}, + 157: {region: 0xe7, script: 0x57, flags: 0x0}, + 158: {region: 0x165, script: 0x57, flags: 0x0}, + 159: {region: 0x13e, script: 0xd9, flags: 0x0}, + 160: {region: 0xc3, script: 0x57, flags: 0x0}, + 161: {region: 0x165, script: 0x57, flags: 0x0}, + 162: {region: 0x165, script: 0x57, flags: 0x0}, + 163: {region: 0xc3, script: 0x57, flags: 0x0}, + 164: {region: 0x165, script: 0x57, flags: 0x0}, + 165: {region: 0x35, script: 0xe, flags: 0x0}, + 166: {region: 0x165, script: 0x57, flags: 0x0}, + 167: {region: 0x165, script: 0x57, flags: 0x0}, + 168: {region: 0x165, script: 0x57, flags: 0x0}, + 169: {region: 0x53, script: 0xe0, flags: 0x0}, + 170: {region: 0x165, script: 0x57, flags: 0x0}, + 171: {region: 0x165, script: 0x57, flags: 0x0}, + 172: {region: 0x165, script: 0x57, flags: 0x0}, + 173: {region: 0x99, script: 0xe, flags: 0x0}, + 174: {region: 0x165, script: 0x57, flags: 0x0}, + 175: {region: 0x9c, script: 0x5, flags: 0x0}, + 176: {region: 0x165, script: 0x57, flags: 0x0}, + 177: {region: 0x4f, script: 0x57, flags: 0x0}, + 178: {region: 0x78, script: 0x57, flags: 0x0}, + 179: {region: 0x99, script: 0x21, flags: 0x0}, + 180: {region: 0xe8, script: 0x5, flags: 0x0}, + 181: {region: 0x99, script: 0x21, flags: 0x0}, + 182: {region: 0x165, script: 0x57, flags: 0x0}, + 183: {region: 0x33, script: 0x57, flags: 0x0}, + 184: {region: 0x165, script: 0x57, flags: 0x0}, + 185: {region: 0xb4, script: 0xc, flags: 0x0}, + 186: {region: 0x52, script: 0x57, flags: 0x0}, + 187: {region: 0x165, script: 0x29, flags: 0x0}, + 188: {region: 0xe7, script: 0x57, flags: 0x0}, + 189: {region: 0x165, script: 0x57, flags: 0x0}, + 190: {region: 0xe8, script: 0x21, flags: 0x0}, + 191: {region: 0x106, script: 0x1f, flags: 0x0}, + 192: {region: 0x15f, script: 0x57, flags: 0x0}, + 193: {region: 0x165, script: 0x57, flags: 0x0}, + 194: {region: 0x95, script: 0x57, flags: 0x0}, + 195: {region: 0x165, script: 0x57, flags: 0x0}, + 196: {region: 0x52, script: 0x57, flags: 0x0}, + 197: {region: 0x165, script: 0x57, flags: 0x0}, + 198: {region: 0x165, script: 0x57, flags: 0x0}, + 199: {region: 0x165, script: 0x57, flags: 0x0}, + 200: {region: 0x86, script: 0x57, flags: 0x0}, + 201: {region: 0x165, script: 0x57, flags: 0x0}, + 202: {region: 0x165, script: 0x57, flags: 0x0}, + 203: {region: 0x165, script: 0x57, flags: 0x0}, + 204: {region: 0x165, script: 0x57, flags: 0x0}, + 205: {region: 0x6d, script: 0x29, flags: 0x0}, + 206: {region: 0x165, script: 0x57, flags: 0x0}, + 207: {region: 0x165, script: 0x57, flags: 0x0}, + 208: {region: 0x52, script: 0x57, flags: 0x0}, + 209: {region: 0x165, script: 0x57, flags: 0x0}, + 210: {region: 0x165, script: 0x57, flags: 0x0}, + 211: {region: 0xc3, script: 0x57, flags: 0x0}, + 212: {region: 0x165, script: 0x57, flags: 0x0}, + 213: {region: 0x165, script: 0x57, flags: 0x0}, + 214: {region: 0x165, script: 0x57, flags: 0x0}, + 215: {region: 0x6e, script: 0x57, flags: 0x0}, + 216: {region: 0x165, script: 0x57, flags: 0x0}, + 217: {region: 0x165, script: 0x57, flags: 0x0}, + 218: {region: 0xd6, script: 0x57, flags: 0x0}, + 219: {region: 0x35, script: 0x16, flags: 0x0}, + 220: {region: 0x106, script: 0x1f, flags: 0x0}, + 221: {region: 0xe7, script: 0x57, flags: 0x0}, + 222: {region: 0x165, script: 0x57, flags: 0x0}, + 223: {region: 0x131, script: 0x57, flags: 0x0}, + 224: {region: 0x8a, script: 0x57, flags: 0x0}, + 225: {region: 0x75, script: 0x57, flags: 0x0}, + 226: {region: 0x106, script: 0x1f, flags: 0x0}, + 227: {region: 0x135, script: 0x57, flags: 0x0}, + 228: {region: 0x49, script: 0x57, flags: 0x0}, + 229: {region: 0x135, script: 0x1a, flags: 0x0}, + 230: {region: 0xa6, script: 0x5, flags: 0x0}, + 231: {region: 0x13e, script: 0x19, flags: 0x0}, + 232: {region: 0x165, script: 0x57, flags: 0x0}, + 233: {region: 0x9b, script: 0x5, flags: 0x0}, + 234: {region: 0x165, script: 0x57, flags: 0x0}, + 235: {region: 0x165, script: 0x57, flags: 0x0}, + 236: {region: 0x165, script: 0x57, flags: 0x0}, + 237: {region: 0x165, script: 0x57, flags: 0x0}, + 238: {region: 0x165, script: 0x57, flags: 0x0}, + 239: {region: 0xc5, script: 0xcc, flags: 0x0}, + 240: {region: 0x78, script: 0x57, flags: 0x0}, + 241: {region: 0x6b, script: 0x1c, flags: 0x0}, + 242: {region: 0xe7, script: 0x57, flags: 0x0}, + 243: {region: 0x49, script: 0x17, flags: 0x0}, + 244: {region: 0x130, script: 0x1f, flags: 0x0}, + 245: {region: 0x49, script: 0x17, flags: 0x0}, + 246: {region: 0x49, script: 0x17, flags: 0x0}, + 247: {region: 0x49, script: 0x17, flags: 0x0}, + 248: {region: 0x49, script: 0x17, flags: 0x0}, + 249: {region: 0x10a, script: 0x57, flags: 0x0}, + 250: {region: 0x5e, script: 0x57, flags: 0x0}, + 251: {region: 0xe9, script: 0x57, flags: 0x0}, + 252: {region: 0x49, script: 0x17, flags: 0x0}, + 253: {region: 0xc4, script: 0x81, flags: 0x0}, + 254: {region: 0x8, script: 0x2, flags: 0x1}, + 255: {region: 0x106, script: 0x1f, flags: 0x0}, + 256: {region: 0x7b, script: 0x57, flags: 0x0}, + 257: {region: 0x63, script: 0x57, flags: 0x0}, + 258: {region: 0x165, script: 0x57, flags: 0x0}, + 259: {region: 0x165, script: 0x57, flags: 0x0}, + 260: {region: 0x165, script: 0x57, flags: 0x0}, + 261: {region: 0x165, script: 0x57, flags: 0x0}, + 262: {region: 0x135, script: 0x57, flags: 0x0}, + 263: {region: 0x106, script: 0x1f, flags: 0x0}, + 264: {region: 0xa4, script: 0x57, flags: 0x0}, + 265: {region: 0x165, script: 0x57, flags: 0x0}, + 266: {region: 0x165, script: 0x57, flags: 0x0}, + 267: {region: 0x99, script: 0x5, flags: 0x0}, + 268: {region: 0x165, script: 0x57, flags: 0x0}, + 269: {region: 0x60, script: 0x57, flags: 0x0}, + 270: {region: 0x165, script: 0x57, flags: 0x0}, + 271: {region: 0x49, script: 0x57, flags: 0x0}, + 272: {region: 0x165, script: 0x57, flags: 0x0}, + 273: {region: 0x165, script: 0x57, flags: 0x0}, + 274: {region: 0x165, script: 0x57, flags: 0x0}, + 275: {region: 0x165, script: 0x5, flags: 0x0}, + 276: {region: 0x49, script: 0x57, flags: 0x0}, + 277: {region: 0x165, script: 0x57, flags: 0x0}, + 278: {region: 0x165, script: 0x57, flags: 0x0}, + 279: {region: 0xd4, script: 0x57, flags: 0x0}, + 280: {region: 0x4f, script: 0x57, flags: 0x0}, + 281: {region: 0x165, script: 0x57, flags: 0x0}, + 282: {region: 0x99, script: 0x5, flags: 0x0}, + 283: {region: 0x165, script: 0x57, flags: 0x0}, + 284: {region: 0x165, script: 0x57, flags: 0x0}, + 285: {region: 0x165, script: 0x57, flags: 0x0}, + 286: {region: 0x165, script: 0x29, flags: 0x0}, + 287: {region: 0x60, script: 0x57, flags: 0x0}, + 288: {region: 0xc3, script: 0x57, flags: 0x0}, + 289: {region: 0xd0, script: 0x57, flags: 0x0}, + 290: {region: 0x165, script: 0x57, flags: 0x0}, + 291: {region: 0xdb, script: 0x21, flags: 0x0}, + 292: {region: 0x52, script: 0x57, flags: 0x0}, + 293: {region: 0x165, script: 0x57, flags: 0x0}, + 294: {region: 0x165, script: 0x57, flags: 0x0}, + 295: {region: 0x165, script: 0x57, flags: 0x0}, + 296: {region: 0xcd, script: 0xde, flags: 0x0}, + 297: {region: 0x165, script: 0x57, flags: 0x0}, + 298: {region: 0x165, script: 0x57, flags: 0x0}, + 299: {region: 0x114, script: 0x57, flags: 0x0}, + 300: {region: 0x37, script: 0x57, flags: 0x0}, + 301: {region: 0x43, script: 0xe0, flags: 0x0}, + 302: {region: 0x165, script: 0x57, flags: 0x0}, + 303: {region: 0xa4, script: 0x57, flags: 0x0}, + 304: {region: 0x80, script: 0x57, flags: 0x0}, + 305: {region: 0xd6, script: 0x57, flags: 0x0}, + 306: {region: 0x9e, script: 0x57, flags: 0x0}, + 307: {region: 0x6b, script: 0x27, flags: 0x0}, + 308: {region: 0x165, script: 0x57, flags: 0x0}, + 309: {region: 0xc4, script: 0x48, flags: 0x0}, + 310: {region: 0x87, script: 0x31, flags: 0x0}, + 311: {region: 0x165, script: 0x57, flags: 0x0}, + 312: {region: 0x165, script: 0x57, flags: 0x0}, + 313: {region: 0xa, script: 0x2, flags: 0x1}, + 314: {region: 0x165, script: 0x57, flags: 0x0}, + 315: {region: 0x165, script: 0x57, flags: 0x0}, + 316: {region: 0x1, script: 0x57, flags: 0x0}, + 317: {region: 0x165, script: 0x57, flags: 0x0}, + 318: {region: 0x6e, script: 0x57, flags: 0x0}, + 319: {region: 0x135, script: 0x57, flags: 0x0}, + 320: {region: 0x6a, script: 0x57, flags: 0x0}, + 321: {region: 0x165, script: 0x57, flags: 0x0}, + 322: {region: 0x9e, script: 0x43, flags: 0x0}, + 323: {region: 0x165, script: 0x57, flags: 0x0}, + 324: {region: 0x165, script: 0x57, flags: 0x0}, + 325: {region: 0x6e, script: 0x57, flags: 0x0}, + 326: {region: 0x52, script: 0x57, flags: 0x0}, + 327: {region: 0x6e, script: 0x57, flags: 0x0}, + 328: {region: 0x9c, script: 0x5, flags: 0x0}, + 329: {region: 0x165, script: 0x57, flags: 0x0}, + 330: {region: 0x165, script: 0x57, flags: 0x0}, + 331: {region: 0x165, script: 0x57, flags: 0x0}, + 332: {region: 0x165, script: 0x57, flags: 0x0}, + 333: {region: 0x86, script: 0x57, flags: 0x0}, + 334: {region: 0xc, script: 0x2, flags: 0x1}, + 335: {region: 0x165, script: 0x57, flags: 0x0}, + 336: {region: 0xc3, script: 0x57, flags: 0x0}, + 337: {region: 0x72, script: 0x57, flags: 0x0}, + 338: {region: 0x10b, script: 0x5, flags: 0x0}, + 339: {region: 0xe7, script: 0x57, flags: 0x0}, + 340: {region: 0x10c, script: 0x57, flags: 0x0}, + 341: {region: 0x73, script: 0x57, flags: 0x0}, + 342: {region: 0x165, script: 0x57, flags: 0x0}, + 343: {region: 0x165, script: 0x57, flags: 0x0}, + 344: {region: 0x76, script: 0x57, flags: 0x0}, + 345: {region: 0x165, script: 0x57, flags: 0x0}, + 346: {region: 0x3b, script: 0x57, flags: 0x0}, + 347: {region: 0x165, script: 0x57, flags: 0x0}, + 348: {region: 0x165, script: 0x57, flags: 0x0}, + 349: {region: 0x165, script: 0x57, flags: 0x0}, + 350: {region: 0x78, script: 0x57, flags: 0x0}, + 351: {region: 0x135, script: 0x57, flags: 0x0}, + 352: {region: 0x78, script: 0x57, flags: 0x0}, + 353: {region: 0x60, script: 0x57, flags: 0x0}, + 354: {region: 0x60, script: 0x57, flags: 0x0}, + 355: {region: 0x52, script: 0x5, flags: 0x0}, + 356: {region: 0x140, script: 0x57, flags: 0x0}, + 357: {region: 0x165, script: 0x57, flags: 0x0}, + 358: {region: 0x84, script: 0x57, flags: 0x0}, + 359: {region: 0x165, script: 0x57, flags: 0x0}, + 360: {region: 0xd4, script: 0x57, flags: 0x0}, + 361: {region: 0x9e, script: 0x57, flags: 0x0}, + 362: {region: 0xd6, script: 0x57, flags: 0x0}, + 363: {region: 0x165, script: 0x57, flags: 0x0}, + 364: {region: 0x10b, script: 0x57, flags: 0x0}, + 365: {region: 0xd9, script: 0x57, flags: 0x0}, + 366: {region: 0x96, script: 0x57, flags: 0x0}, + 367: {region: 0x80, script: 0x57, flags: 0x0}, + 368: {region: 0x165, script: 0x57, flags: 0x0}, + 369: {region: 0xbc, script: 0x57, flags: 0x0}, + 370: {region: 0x165, script: 0x57, flags: 0x0}, + 371: {region: 0x165, script: 0x57, flags: 0x0}, + 372: {region: 0x165, script: 0x57, flags: 0x0}, + 373: {region: 0x53, script: 0x38, flags: 0x0}, + 374: {region: 0x165, script: 0x57, flags: 0x0}, + 375: {region: 0x95, script: 0x57, flags: 0x0}, + 376: {region: 0x165, script: 0x57, flags: 0x0}, + 377: {region: 0x165, script: 0x57, flags: 0x0}, + 378: {region: 0x99, script: 0x21, flags: 0x0}, + 379: {region: 0x165, script: 0x57, flags: 0x0}, + 380: {region: 0x9c, script: 0x5, flags: 0x0}, + 381: {region: 0x7e, script: 0x57, flags: 0x0}, + 382: {region: 0x7b, script: 0x57, flags: 0x0}, + 383: {region: 0x165, script: 0x57, flags: 0x0}, + 384: {region: 0x165, script: 0x57, flags: 0x0}, + 385: {region: 0x165, script: 0x57, flags: 0x0}, + 386: {region: 0x165, script: 0x57, flags: 0x0}, + 387: {region: 0x165, script: 0x57, flags: 0x0}, + 388: {region: 0x165, script: 0x57, flags: 0x0}, + 389: {region: 0x6f, script: 0x29, flags: 0x0}, + 390: {region: 0x165, script: 0x57, flags: 0x0}, + 391: {region: 0xdb, script: 0x21, flags: 0x0}, + 392: {region: 0x165, script: 0x57, flags: 0x0}, + 393: {region: 0xa7, script: 0x57, flags: 0x0}, + 394: {region: 0x165, script: 0x57, flags: 0x0}, + 395: {region: 0xe8, script: 0x5, flags: 0x0}, + 396: {region: 0x165, script: 0x57, flags: 0x0}, + 397: {region: 0xe8, script: 0x5, flags: 0x0}, + 398: {region: 0x165, script: 0x57, flags: 0x0}, + 399: {region: 0x165, script: 0x57, flags: 0x0}, + 400: {region: 0x6e, script: 0x57, flags: 0x0}, + 401: {region: 0x9c, script: 0x5, flags: 0x0}, + 402: {region: 0x165, script: 0x57, flags: 0x0}, + 403: {region: 0x165, script: 0x29, flags: 0x0}, + 404: {region: 0xf1, script: 0x57, flags: 0x0}, + 405: {region: 0x165, script: 0x57, flags: 0x0}, + 406: {region: 0x165, script: 0x57, flags: 0x0}, + 407: {region: 0x165, script: 0x57, flags: 0x0}, + 408: {region: 0x165, script: 0x29, flags: 0x0}, + 409: {region: 0x165, script: 0x57, flags: 0x0}, + 410: {region: 0x99, script: 0x21, flags: 0x0}, + 411: {region: 0x99, script: 0xda, flags: 0x0}, + 412: {region: 0x95, script: 0x57, flags: 0x0}, + 413: {region: 0xd9, script: 0x57, flags: 0x0}, + 414: {region: 0x130, script: 0x2f, flags: 0x0}, + 415: {region: 0x165, script: 0x57, flags: 0x0}, + 416: {region: 0xe, script: 0x2, flags: 0x1}, + 417: {region: 0x99, script: 0xe, flags: 0x0}, + 418: {region: 0x165, script: 0x57, flags: 0x0}, + 419: {region: 0x4e, script: 0x57, flags: 0x0}, + 420: {region: 0x99, script: 0x32, flags: 0x0}, + 421: {region: 0x41, script: 0x57, flags: 0x0}, + 422: {region: 0x54, script: 0x57, flags: 0x0}, + 423: {region: 0x165, script: 0x57, flags: 0x0}, + 424: {region: 0x80, script: 0x57, flags: 0x0}, + 425: {region: 0x165, script: 0x57, flags: 0x0}, + 426: {region: 0x165, script: 0x57, flags: 0x0}, + 427: {region: 0xa4, script: 0x57, flags: 0x0}, + 428: {region: 0x98, script: 0x57, flags: 0x0}, + 429: {region: 0x165, script: 0x57, flags: 0x0}, + 430: {region: 0xdb, script: 0x21, flags: 0x0}, + 431: {region: 0x165, script: 0x57, flags: 0x0}, + 432: {region: 0x165, script: 0x5, flags: 0x0}, + 433: {region: 0x49, script: 0x57, flags: 0x0}, + 434: {region: 0x165, script: 0x5, flags: 0x0}, + 435: {region: 0x165, script: 0x57, flags: 0x0}, + 436: {region: 0x10, script: 0x3, flags: 0x1}, + 437: {region: 0x165, script: 0x57, flags: 0x0}, + 438: {region: 0x53, script: 0x38, flags: 0x0}, + 439: {region: 0x165, script: 0x57, flags: 0x0}, + 440: {region: 0x135, script: 0x57, flags: 0x0}, + 441: {region: 0x24, script: 0x5, flags: 0x0}, + 442: {region: 0x165, script: 0x57, flags: 0x0}, + 443: {region: 0x165, script: 0x29, flags: 0x0}, + 444: {region: 0x97, script: 0x3b, flags: 0x0}, + 445: {region: 0x165, script: 0x57, flags: 0x0}, + 446: {region: 0x99, script: 0x21, flags: 0x0}, + 447: {region: 0x165, script: 0x57, flags: 0x0}, + 448: {region: 0x73, script: 0x57, flags: 0x0}, + 449: {region: 0x165, script: 0x57, flags: 0x0}, + 450: {region: 0x165, script: 0x57, flags: 0x0}, + 451: {region: 0xe7, script: 0x57, flags: 0x0}, + 452: {region: 0x165, script: 0x57, flags: 0x0}, + 453: {region: 0x12b, script: 0x3d, flags: 0x0}, + 454: {region: 0x53, script: 0x89, flags: 0x0}, + 455: {region: 0x165, script: 0x57, flags: 0x0}, + 456: {region: 0xe8, script: 0x5, flags: 0x0}, + 457: {region: 0x99, script: 0x21, flags: 0x0}, + 458: {region: 0xaf, script: 0x3e, flags: 0x0}, + 459: {region: 0xe7, script: 0x57, flags: 0x0}, + 460: {region: 0xe8, script: 0x5, flags: 0x0}, + 461: {region: 0xe6, script: 0x57, flags: 0x0}, + 462: {region: 0x99, script: 0x21, flags: 0x0}, + 463: {region: 0x99, script: 0x21, flags: 0x0}, + 464: {region: 0x165, script: 0x57, flags: 0x0}, + 465: {region: 0x90, script: 0x57, flags: 0x0}, + 466: {region: 0x60, script: 0x57, flags: 0x0}, + 467: {region: 0x53, script: 0x38, flags: 0x0}, + 468: {region: 0x91, script: 0x57, flags: 0x0}, + 469: {region: 0x92, script: 0x57, flags: 0x0}, + 470: {region: 0x165, script: 0x57, flags: 0x0}, + 471: {region: 0x28, script: 0x8, flags: 0x0}, + 472: {region: 0xd2, script: 0x57, flags: 0x0}, + 473: {region: 0x78, script: 0x57, flags: 0x0}, + 474: {region: 0x165, script: 0x57, flags: 0x0}, + 475: {region: 0x165, script: 0x57, flags: 0x0}, + 476: {region: 0xd0, script: 0x57, flags: 0x0}, + 477: {region: 0xd6, script: 0x57, flags: 0x0}, + 478: {region: 0x165, script: 0x57, flags: 0x0}, + 479: {region: 0x165, script: 0x57, flags: 0x0}, + 480: {region: 0x165, script: 0x57, flags: 0x0}, + 481: {region: 0x95, script: 0x57, flags: 0x0}, + 482: {region: 0x165, script: 0x57, flags: 0x0}, + 483: {region: 0x165, script: 0x57, flags: 0x0}, + 484: {region: 0x165, script: 0x57, flags: 0x0}, + 486: {region: 0x122, script: 0x57, flags: 0x0}, + 487: {region: 0xd6, script: 0x57, flags: 0x0}, + 488: {region: 0x165, script: 0x57, flags: 0x0}, + 489: {region: 0x165, script: 0x57, flags: 0x0}, + 490: {region: 0x53, script: 0xea, flags: 0x0}, + 491: {region: 0x165, script: 0x57, flags: 0x0}, + 492: {region: 0x135, script: 0x57, flags: 0x0}, + 493: {region: 0x165, script: 0x57, flags: 0x0}, + 494: {region: 0x49, script: 0x57, flags: 0x0}, + 495: {region: 0x165, script: 0x57, flags: 0x0}, + 496: {region: 0x165, script: 0x57, flags: 0x0}, + 497: {region: 0xe7, script: 0x57, flags: 0x0}, + 498: {region: 0x165, script: 0x57, flags: 0x0}, + 499: {region: 0x95, script: 0x57, flags: 0x0}, + 500: {region: 0x106, script: 0x1f, flags: 0x0}, + 501: {region: 0x1, script: 0x57, flags: 0x0}, + 502: {region: 0x165, script: 0x57, flags: 0x0}, + 503: {region: 0x165, script: 0x57, flags: 0x0}, + 504: {region: 0x9d, script: 0x57, flags: 0x0}, + 505: {region: 0x9e, script: 0x57, flags: 0x0}, + 506: {region: 0x49, script: 0x17, flags: 0x0}, + 507: {region: 0x97, script: 0x3b, flags: 0x0}, + 508: {region: 0x165, script: 0x57, flags: 0x0}, + 509: {region: 0x165, script: 0x57, flags: 0x0}, + 510: {region: 0x106, script: 0x57, flags: 0x0}, + 511: {region: 0x165, script: 0x57, flags: 0x0}, + 512: {region: 0xa2, script: 0x46, flags: 0x0}, + 513: {region: 0x165, script: 0x57, flags: 0x0}, + 514: {region: 0xa0, script: 0x57, flags: 0x0}, + 515: {region: 0x1, script: 0x57, flags: 0x0}, + 516: {region: 0x165, script: 0x57, flags: 0x0}, + 517: {region: 0x165, script: 0x57, flags: 0x0}, + 518: {region: 0x165, script: 0x57, flags: 0x0}, + 519: {region: 0x52, script: 0x57, flags: 0x0}, + 520: {region: 0x130, script: 0x3b, flags: 0x0}, + 521: {region: 0x165, script: 0x57, flags: 0x0}, + 522: {region: 0x12f, script: 0x57, flags: 0x0}, + 523: {region: 0xdb, script: 0x21, flags: 0x0}, + 524: {region: 0x165, script: 0x57, flags: 0x0}, + 525: {region: 0x63, script: 0x57, flags: 0x0}, + 526: {region: 0x95, script: 0x57, flags: 0x0}, + 527: {region: 0x95, script: 0x57, flags: 0x0}, + 528: {region: 0x7d, script: 0x2b, flags: 0x0}, + 529: {region: 0x137, script: 0x1f, flags: 0x0}, + 530: {region: 0x67, script: 0x57, flags: 0x0}, + 531: {region: 0xc4, script: 0x57, flags: 0x0}, + 532: {region: 0x165, script: 0x57, flags: 0x0}, + 533: {region: 0x165, script: 0x57, flags: 0x0}, + 534: {region: 0xd6, script: 0x57, flags: 0x0}, + 535: {region: 0xa4, script: 0x57, flags: 0x0}, + 536: {region: 0xc3, script: 0x57, flags: 0x0}, + 537: {region: 0x106, script: 0x1f, flags: 0x0}, + 538: {region: 0x165, script: 0x57, flags: 0x0}, + 539: {region: 0x165, script: 0x57, flags: 0x0}, + 540: {region: 0x165, script: 0x57, flags: 0x0}, + 541: {region: 0x165, script: 0x57, flags: 0x0}, + 542: {region: 0xd4, script: 0x5, flags: 0x0}, + 543: {region: 0xd6, script: 0x57, flags: 0x0}, + 544: {region: 0x164, script: 0x57, flags: 0x0}, + 545: {region: 0x165, script: 0x57, flags: 0x0}, + 546: {region: 0x165, script: 0x57, flags: 0x0}, + 547: {region: 0x12f, script: 0x57, flags: 0x0}, + 548: {region: 0x122, script: 0x5, flags: 0x0}, + 549: {region: 0x165, script: 0x57, flags: 0x0}, + 550: {region: 0x123, script: 0xdf, flags: 0x0}, + 551: {region: 0x5a, script: 0x57, flags: 0x0}, + 552: {region: 0x52, script: 0x57, flags: 0x0}, + 553: {region: 0x165, script: 0x57, flags: 0x0}, + 554: {region: 0x4f, script: 0x57, flags: 0x0}, + 555: {region: 0x99, script: 0x21, flags: 0x0}, + 556: {region: 0x99, script: 0x21, flags: 0x0}, + 557: {region: 0x4b, script: 0x57, flags: 0x0}, + 558: {region: 0x95, script: 0x57, flags: 0x0}, + 559: {region: 0x165, script: 0x57, flags: 0x0}, + 560: {region: 0x41, script: 0x57, flags: 0x0}, + 561: {region: 0x99, script: 0x57, flags: 0x0}, + 562: {region: 0x53, script: 0xd6, flags: 0x0}, + 563: {region: 0x99, script: 0x21, flags: 0x0}, + 564: {region: 0xc3, script: 0x57, flags: 0x0}, + 565: {region: 0x165, script: 0x57, flags: 0x0}, + 566: {region: 0x99, script: 0x72, flags: 0x0}, + 567: {region: 0xe8, script: 0x5, flags: 0x0}, + 568: {region: 0x165, script: 0x57, flags: 0x0}, + 569: {region: 0xa4, script: 0x57, flags: 0x0}, + 570: {region: 0x165, script: 0x57, flags: 0x0}, + 571: {region: 0x12b, script: 0x57, flags: 0x0}, + 572: {region: 0x165, script: 0x57, flags: 0x0}, + 573: {region: 0xd2, script: 0x57, flags: 0x0}, + 574: {region: 0x165, script: 0x57, flags: 0x0}, + 575: {region: 0xaf, script: 0x54, flags: 0x0}, + 576: {region: 0x165, script: 0x57, flags: 0x0}, + 577: {region: 0x165, script: 0x57, flags: 0x0}, + 578: {region: 0x13, script: 0x6, flags: 0x1}, + 579: {region: 0x165, script: 0x57, flags: 0x0}, + 580: {region: 0x52, script: 0x57, flags: 0x0}, + 581: {region: 0x82, script: 0x57, flags: 0x0}, + 582: {region: 0xa4, script: 0x57, flags: 0x0}, + 583: {region: 0x165, script: 0x57, flags: 0x0}, + 584: {region: 0x165, script: 0x57, flags: 0x0}, + 585: {region: 0x165, script: 0x57, flags: 0x0}, + 586: {region: 0xa6, script: 0x4b, flags: 0x0}, + 587: {region: 0x2a, script: 0x57, flags: 0x0}, + 588: {region: 0x165, script: 0x57, flags: 0x0}, + 589: {region: 0x165, script: 0x57, flags: 0x0}, + 590: {region: 0x165, script: 0x57, flags: 0x0}, + 591: {region: 0x165, script: 0x57, flags: 0x0}, + 592: {region: 0x165, script: 0x57, flags: 0x0}, + 593: {region: 0x99, script: 0x4f, flags: 0x0}, + 594: {region: 0x8b, script: 0x57, flags: 0x0}, + 595: {region: 0x165, script: 0x57, flags: 0x0}, + 596: {region: 0xab, script: 0x50, flags: 0x0}, + 597: {region: 0x106, script: 0x1f, flags: 0x0}, + 598: {region: 0x99, script: 0x21, flags: 0x0}, + 599: {region: 0x165, script: 0x57, flags: 0x0}, + 600: {region: 0x75, script: 0x57, flags: 0x0}, + 601: {region: 0x165, script: 0x57, flags: 0x0}, + 602: {region: 0xb4, script: 0x57, flags: 0x0}, + 603: {region: 0x165, script: 0x57, flags: 0x0}, + 604: {region: 0x165, script: 0x57, flags: 0x0}, + 605: {region: 0x165, script: 0x57, flags: 0x0}, + 606: {region: 0x165, script: 0x57, flags: 0x0}, + 607: {region: 0x165, script: 0x57, flags: 0x0}, + 608: {region: 0x165, script: 0x57, flags: 0x0}, + 609: {region: 0x165, script: 0x57, flags: 0x0}, + 610: {region: 0x165, script: 0x29, flags: 0x0}, + 611: {region: 0x165, script: 0x57, flags: 0x0}, + 612: {region: 0x106, script: 0x1f, flags: 0x0}, + 613: {region: 0x112, script: 0x57, flags: 0x0}, + 614: {region: 0xe7, script: 0x57, flags: 0x0}, + 615: {region: 0x106, script: 0x57, flags: 0x0}, + 616: {region: 0x165, script: 0x57, flags: 0x0}, + 617: {region: 0x99, script: 0x21, flags: 0x0}, + 618: {region: 0x99, script: 0x5, flags: 0x0}, + 619: {region: 0x12f, script: 0x57, flags: 0x0}, + 620: {region: 0x165, script: 0x57, flags: 0x0}, + 621: {region: 0x52, script: 0x57, flags: 0x0}, + 622: {region: 0x60, script: 0x57, flags: 0x0}, + 623: {region: 0x165, script: 0x57, flags: 0x0}, + 624: {region: 0x165, script: 0x57, flags: 0x0}, + 625: {region: 0x165, script: 0x29, flags: 0x0}, + 626: {region: 0x165, script: 0x57, flags: 0x0}, + 627: {region: 0x165, script: 0x57, flags: 0x0}, + 628: {region: 0x19, script: 0x3, flags: 0x1}, + 629: {region: 0x165, script: 0x57, flags: 0x0}, + 630: {region: 0x165, script: 0x57, flags: 0x0}, + 631: {region: 0x165, script: 0x57, flags: 0x0}, + 632: {region: 0x165, script: 0x57, flags: 0x0}, + 633: {region: 0x106, script: 0x1f, flags: 0x0}, + 634: {region: 0x165, script: 0x57, flags: 0x0}, + 635: {region: 0x165, script: 0x57, flags: 0x0}, + 636: {region: 0x165, script: 0x57, flags: 0x0}, + 637: {region: 0x106, script: 0x1f, flags: 0x0}, + 638: {region: 0x165, script: 0x57, flags: 0x0}, + 639: {region: 0x95, script: 0x57, flags: 0x0}, + 640: {region: 0xe8, script: 0x5, flags: 0x0}, + 641: {region: 0x7b, script: 0x57, flags: 0x0}, + 642: {region: 0x165, script: 0x57, flags: 0x0}, + 643: {region: 0x165, script: 0x57, flags: 0x0}, + 644: {region: 0x165, script: 0x57, flags: 0x0}, + 645: {region: 0x165, script: 0x29, flags: 0x0}, + 646: {region: 0x123, script: 0xdf, flags: 0x0}, + 647: {region: 0xe8, script: 0x5, flags: 0x0}, + 648: {region: 0x165, script: 0x57, flags: 0x0}, + 649: {region: 0x165, script: 0x57, flags: 0x0}, + 650: {region: 0x1c, script: 0x5, flags: 0x1}, + 651: {region: 0x165, script: 0x57, flags: 0x0}, + 652: {region: 0x165, script: 0x57, flags: 0x0}, + 653: {region: 0x165, script: 0x57, flags: 0x0}, + 654: {region: 0x138, script: 0x57, flags: 0x0}, + 655: {region: 0x87, script: 0x5b, flags: 0x0}, + 656: {region: 0x97, script: 0x3b, flags: 0x0}, + 657: {region: 0x12f, script: 0x57, flags: 0x0}, + 658: {region: 0xe8, script: 0x5, flags: 0x0}, + 659: {region: 0x131, script: 0x57, flags: 0x0}, + 660: {region: 0x165, script: 0x57, flags: 0x0}, + 661: {region: 0xb7, script: 0x57, flags: 0x0}, + 662: {region: 0x106, script: 0x1f, flags: 0x0}, + 663: {region: 0x165, script: 0x57, flags: 0x0}, + 664: {region: 0x95, script: 0x57, flags: 0x0}, + 665: {region: 0x165, script: 0x57, flags: 0x0}, + 666: {region: 0x53, script: 0xdf, flags: 0x0}, + 667: {region: 0x165, script: 0x57, flags: 0x0}, + 668: {region: 0x165, script: 0x57, flags: 0x0}, + 669: {region: 0x165, script: 0x57, flags: 0x0}, + 670: {region: 0x165, script: 0x57, flags: 0x0}, + 671: {region: 0x99, script: 0x59, flags: 0x0}, + 672: {region: 0x165, script: 0x57, flags: 0x0}, + 673: {region: 0x165, script: 0x57, flags: 0x0}, + 674: {region: 0x106, script: 0x1f, flags: 0x0}, + 675: {region: 0x131, script: 0x57, flags: 0x0}, + 676: {region: 0x165, script: 0x57, flags: 0x0}, + 677: {region: 0xd9, script: 0x57, flags: 0x0}, + 678: {region: 0x165, script: 0x57, flags: 0x0}, + 679: {region: 0x165, script: 0x57, flags: 0x0}, + 680: {region: 0x21, script: 0x2, flags: 0x1}, + 681: {region: 0x165, script: 0x57, flags: 0x0}, + 682: {region: 0x165, script: 0x57, flags: 0x0}, + 683: {region: 0x9e, script: 0x57, flags: 0x0}, + 684: {region: 0x53, script: 0x5d, flags: 0x0}, + 685: {region: 0x95, script: 0x57, flags: 0x0}, + 686: {region: 0x9c, script: 0x5, flags: 0x0}, + 687: {region: 0x135, script: 0x57, flags: 0x0}, + 688: {region: 0x165, script: 0x57, flags: 0x0}, + 689: {region: 0x165, script: 0x57, flags: 0x0}, + 690: {region: 0x99, script: 0xda, flags: 0x0}, + 691: {region: 0x9e, script: 0x57, flags: 0x0}, + 692: {region: 0x165, script: 0x57, flags: 0x0}, + 693: {region: 0x4b, script: 0x57, flags: 0x0}, + 694: {region: 0x165, script: 0x57, flags: 0x0}, + 695: {region: 0x165, script: 0x57, flags: 0x0}, + 696: {region: 0xaf, script: 0x54, flags: 0x0}, + 697: {region: 0x165, script: 0x57, flags: 0x0}, + 698: {region: 0x165, script: 0x57, flags: 0x0}, + 699: {region: 0x4b, script: 0x57, flags: 0x0}, + 700: {region: 0x165, script: 0x57, flags: 0x0}, + 701: {region: 0x165, script: 0x57, flags: 0x0}, + 702: {region: 0x162, script: 0x57, flags: 0x0}, + 703: {region: 0x9c, script: 0x5, flags: 0x0}, + 704: {region: 0xb6, script: 0x57, flags: 0x0}, + 705: {region: 0xb8, script: 0x57, flags: 0x0}, + 706: {region: 0x4b, script: 0x57, flags: 0x0}, + 707: {region: 0x4b, script: 0x57, flags: 0x0}, + 708: {region: 0xa4, script: 0x57, flags: 0x0}, + 709: {region: 0xa4, script: 0x57, flags: 0x0}, + 710: {region: 0x9c, script: 0x5, flags: 0x0}, + 711: {region: 0xb8, script: 0x57, flags: 0x0}, + 712: {region: 0x123, script: 0xdf, flags: 0x0}, + 713: {region: 0x53, script: 0x38, flags: 0x0}, + 714: {region: 0x12b, script: 0x57, flags: 0x0}, + 715: {region: 0x95, script: 0x57, flags: 0x0}, + 716: {region: 0x52, script: 0x57, flags: 0x0}, + 717: {region: 0x99, script: 0x21, flags: 0x0}, + 718: {region: 0x99, script: 0x21, flags: 0x0}, + 719: {region: 0x95, script: 0x57, flags: 0x0}, + 720: {region: 0x23, script: 0x3, flags: 0x1}, + 721: {region: 0xa4, script: 0x57, flags: 0x0}, + 722: {region: 0x165, script: 0x57, flags: 0x0}, + 723: {region: 0xcf, script: 0x57, flags: 0x0}, + 724: {region: 0x165, script: 0x57, flags: 0x0}, + 725: {region: 0x165, script: 0x57, flags: 0x0}, + 726: {region: 0x165, script: 0x57, flags: 0x0}, + 727: {region: 0x165, script: 0x57, flags: 0x0}, + 728: {region: 0x165, script: 0x57, flags: 0x0}, + 729: {region: 0x165, script: 0x57, flags: 0x0}, + 730: {region: 0x165, script: 0x57, flags: 0x0}, + 731: {region: 0x165, script: 0x57, flags: 0x0}, + 732: {region: 0x165, script: 0x57, flags: 0x0}, + 733: {region: 0x165, script: 0x57, flags: 0x0}, + 734: {region: 0x165, script: 0x57, flags: 0x0}, + 735: {region: 0x165, script: 0x5, flags: 0x0}, + 736: {region: 0x106, script: 0x1f, flags: 0x0}, + 737: {region: 0xe7, script: 0x57, flags: 0x0}, + 738: {region: 0x165, script: 0x57, flags: 0x0}, + 739: {region: 0x95, script: 0x57, flags: 0x0}, + 740: {region: 0x165, script: 0x29, flags: 0x0}, + 741: {region: 0x165, script: 0x57, flags: 0x0}, + 742: {region: 0x165, script: 0x57, flags: 0x0}, + 743: {region: 0x165, script: 0x57, flags: 0x0}, + 744: {region: 0x112, script: 0x57, flags: 0x0}, + 745: {region: 0xa4, script: 0x57, flags: 0x0}, + 746: {region: 0x165, script: 0x57, flags: 0x0}, + 747: {region: 0x165, script: 0x57, flags: 0x0}, + 748: {region: 0x123, script: 0x5, flags: 0x0}, + 749: {region: 0xcc, script: 0x57, flags: 0x0}, + 750: {region: 0x165, script: 0x57, flags: 0x0}, + 751: {region: 0x165, script: 0x57, flags: 0x0}, + 752: {region: 0x165, script: 0x57, flags: 0x0}, + 753: {region: 0xbf, script: 0x57, flags: 0x0}, + 754: {region: 0xd1, script: 0x57, flags: 0x0}, + 755: {region: 0x165, script: 0x57, flags: 0x0}, + 756: {region: 0x52, script: 0x57, flags: 0x0}, + 757: {region: 0xdb, script: 0x21, flags: 0x0}, + 758: {region: 0x12f, script: 0x57, flags: 0x0}, + 759: {region: 0xc0, script: 0x57, flags: 0x0}, + 760: {region: 0x165, script: 0x57, flags: 0x0}, + 761: {region: 0x165, script: 0x57, flags: 0x0}, + 762: {region: 0xe0, script: 0x57, flags: 0x0}, + 763: {region: 0x165, script: 0x57, flags: 0x0}, + 764: {region: 0x95, script: 0x57, flags: 0x0}, + 765: {region: 0x9b, script: 0x3a, flags: 0x0}, + 766: {region: 0x165, script: 0x57, flags: 0x0}, + 767: {region: 0xc2, script: 0x1f, flags: 0x0}, + 768: {region: 0x165, script: 0x5, flags: 0x0}, + 769: {region: 0x165, script: 0x57, flags: 0x0}, + 770: {region: 0x165, script: 0x57, flags: 0x0}, + 771: {region: 0x165, script: 0x57, flags: 0x0}, + 772: {region: 0x99, script: 0x6b, flags: 0x0}, + 773: {region: 0x165, script: 0x57, flags: 0x0}, + 774: {region: 0x165, script: 0x57, flags: 0x0}, + 775: {region: 0x10b, script: 0x57, flags: 0x0}, + 776: {region: 0x165, script: 0x57, flags: 0x0}, + 777: {region: 0x165, script: 0x57, flags: 0x0}, + 778: {region: 0x165, script: 0x57, flags: 0x0}, + 779: {region: 0x26, script: 0x3, flags: 0x1}, + 780: {region: 0x165, script: 0x57, flags: 0x0}, + 781: {region: 0x165, script: 0x57, flags: 0x0}, + 782: {region: 0x99, script: 0xe, flags: 0x0}, + 783: {region: 0xc4, script: 0x72, flags: 0x0}, + 785: {region: 0x165, script: 0x57, flags: 0x0}, + 786: {region: 0x49, script: 0x57, flags: 0x0}, + 787: {region: 0x49, script: 0x57, flags: 0x0}, + 788: {region: 0x37, script: 0x57, flags: 0x0}, + 789: {region: 0x165, script: 0x57, flags: 0x0}, + 790: {region: 0x165, script: 0x57, flags: 0x0}, + 791: {region: 0x165, script: 0x57, flags: 0x0}, + 792: {region: 0x165, script: 0x57, flags: 0x0}, + 793: {region: 0x165, script: 0x57, flags: 0x0}, + 794: {region: 0x165, script: 0x57, flags: 0x0}, + 795: {region: 0x99, script: 0x21, flags: 0x0}, + 796: {region: 0xdb, script: 0x21, flags: 0x0}, + 797: {region: 0x106, script: 0x1f, flags: 0x0}, + 798: {region: 0x35, script: 0x6f, flags: 0x0}, + 799: {region: 0x29, script: 0x3, flags: 0x1}, + 800: {region: 0xcb, script: 0x57, flags: 0x0}, + 801: {region: 0x165, script: 0x57, flags: 0x0}, + 802: {region: 0x165, script: 0x57, flags: 0x0}, + 803: {region: 0x165, script: 0x57, flags: 0x0}, + 804: {region: 0x99, script: 0x21, flags: 0x0}, + 805: {region: 0x52, script: 0x57, flags: 0x0}, + 807: {region: 0x165, script: 0x57, flags: 0x0}, + 808: {region: 0x135, script: 0x57, flags: 0x0}, + 809: {region: 0x165, script: 0x57, flags: 0x0}, + 810: {region: 0x165, script: 0x57, flags: 0x0}, + 811: {region: 0xe8, script: 0x5, flags: 0x0}, + 812: {region: 0xc3, script: 0x57, flags: 0x0}, + 813: {region: 0x99, script: 0x21, flags: 0x0}, + 814: {region: 0x95, script: 0x57, flags: 0x0}, + 815: {region: 0x164, script: 0x57, flags: 0x0}, + 816: {region: 0x165, script: 0x57, flags: 0x0}, + 817: {region: 0xc4, script: 0x72, flags: 0x0}, + 818: {region: 0x165, script: 0x57, flags: 0x0}, + 819: {region: 0x165, script: 0x29, flags: 0x0}, + 820: {region: 0x106, script: 0x1f, flags: 0x0}, + 821: {region: 0x165, script: 0x57, flags: 0x0}, + 822: {region: 0x131, script: 0x57, flags: 0x0}, + 823: {region: 0x9c, script: 0x63, flags: 0x0}, + 824: {region: 0x165, script: 0x57, flags: 0x0}, + 825: {region: 0x165, script: 0x57, flags: 0x0}, + 826: {region: 0x9c, script: 0x5, flags: 0x0}, + 827: {region: 0x165, script: 0x57, flags: 0x0}, + 828: {region: 0x165, script: 0x57, flags: 0x0}, + 829: {region: 0x165, script: 0x57, flags: 0x0}, + 830: {region: 0xdd, script: 0x57, flags: 0x0}, + 831: {region: 0x165, script: 0x57, flags: 0x0}, + 832: {region: 0x165, script: 0x57, flags: 0x0}, + 834: {region: 0x165, script: 0x57, flags: 0x0}, + 835: {region: 0x53, script: 0x38, flags: 0x0}, + 836: {region: 0x9e, script: 0x57, flags: 0x0}, + 837: {region: 0xd2, script: 0x57, flags: 0x0}, + 838: {region: 0x165, script: 0x57, flags: 0x0}, + 839: {region: 0xda, script: 0x57, flags: 0x0}, + 840: {region: 0x165, script: 0x57, flags: 0x0}, + 841: {region: 0x165, script: 0x57, flags: 0x0}, + 842: {region: 0x165, script: 0x57, flags: 0x0}, + 843: {region: 0xcf, script: 0x57, flags: 0x0}, + 844: {region: 0x165, script: 0x57, flags: 0x0}, + 845: {region: 0x165, script: 0x57, flags: 0x0}, + 846: {region: 0x164, script: 0x57, flags: 0x0}, + 847: {region: 0xd1, script: 0x57, flags: 0x0}, + 848: {region: 0x60, script: 0x57, flags: 0x0}, + 849: {region: 0xdb, script: 0x21, flags: 0x0}, + 850: {region: 0x165, script: 0x57, flags: 0x0}, + 851: {region: 0xdb, script: 0x21, flags: 0x0}, + 852: {region: 0x165, script: 0x57, flags: 0x0}, + 853: {region: 0x165, script: 0x57, flags: 0x0}, + 854: {region: 0xd2, script: 0x57, flags: 0x0}, + 855: {region: 0x165, script: 0x57, flags: 0x0}, + 856: {region: 0x165, script: 0x57, flags: 0x0}, + 857: {region: 0xd1, script: 0x57, flags: 0x0}, + 858: {region: 0x165, script: 0x57, flags: 0x0}, + 859: {region: 0xcf, script: 0x57, flags: 0x0}, + 860: {region: 0xcf, script: 0x57, flags: 0x0}, + 861: {region: 0x165, script: 0x57, flags: 0x0}, + 862: {region: 0x165, script: 0x57, flags: 0x0}, + 863: {region: 0x95, script: 0x57, flags: 0x0}, + 864: {region: 0x165, script: 0x57, flags: 0x0}, + 865: {region: 0xdf, script: 0x57, flags: 0x0}, + 866: {region: 0x165, script: 0x57, flags: 0x0}, + 867: {region: 0x165, script: 0x57, flags: 0x0}, + 868: {region: 0x99, script: 0x57, flags: 0x0}, + 869: {region: 0x165, script: 0x57, flags: 0x0}, + 870: {region: 0x165, script: 0x57, flags: 0x0}, + 871: {region: 0xd9, script: 0x57, flags: 0x0}, + 872: {region: 0x52, script: 0x57, flags: 0x0}, + 873: {region: 0x165, script: 0x57, flags: 0x0}, + 874: {region: 0xda, script: 0x57, flags: 0x0}, + 875: {region: 0x165, script: 0x57, flags: 0x0}, + 876: {region: 0x52, script: 0x57, flags: 0x0}, + 877: {region: 0x165, script: 0x57, flags: 0x0}, + 878: {region: 0x165, script: 0x57, flags: 0x0}, + 879: {region: 0xda, script: 0x57, flags: 0x0}, + 880: {region: 0x123, script: 0x53, flags: 0x0}, + 881: {region: 0x99, script: 0x21, flags: 0x0}, + 882: {region: 0x10c, script: 0xbf, flags: 0x0}, + 883: {region: 0x165, script: 0x57, flags: 0x0}, + 884: {region: 0x165, script: 0x57, flags: 0x0}, + 885: {region: 0x84, script: 0x78, flags: 0x0}, + 886: {region: 0x161, script: 0x57, flags: 0x0}, + 887: {region: 0x165, script: 0x57, flags: 0x0}, + 888: {region: 0x49, script: 0x17, flags: 0x0}, + 889: {region: 0x165, script: 0x57, flags: 0x0}, + 890: {region: 0x161, script: 0x57, flags: 0x0}, + 891: {region: 0x165, script: 0x57, flags: 0x0}, + 892: {region: 0x165, script: 0x57, flags: 0x0}, + 893: {region: 0x165, script: 0x57, flags: 0x0}, + 894: {region: 0x165, script: 0x57, flags: 0x0}, + 895: {region: 0x165, script: 0x57, flags: 0x0}, + 896: {region: 0x117, script: 0x57, flags: 0x0}, + 897: {region: 0x165, script: 0x57, flags: 0x0}, + 898: {region: 0x165, script: 0x57, flags: 0x0}, + 899: {region: 0x135, script: 0x57, flags: 0x0}, + 900: {region: 0x165, script: 0x57, flags: 0x0}, + 901: {region: 0x53, script: 0x57, flags: 0x0}, + 902: {region: 0x165, script: 0x57, flags: 0x0}, + 903: {region: 0xce, script: 0x57, flags: 0x0}, + 904: {region: 0x12f, script: 0x57, flags: 0x0}, + 905: {region: 0x131, script: 0x57, flags: 0x0}, + 906: {region: 0x80, script: 0x57, flags: 0x0}, + 907: {region: 0x78, script: 0x57, flags: 0x0}, + 908: {region: 0x165, script: 0x57, flags: 0x0}, + 910: {region: 0x165, script: 0x57, flags: 0x0}, + 911: {region: 0x165, script: 0x57, flags: 0x0}, + 912: {region: 0x6f, script: 0x57, flags: 0x0}, + 913: {region: 0x165, script: 0x57, flags: 0x0}, + 914: {region: 0x165, script: 0x57, flags: 0x0}, + 915: {region: 0x165, script: 0x57, flags: 0x0}, + 916: {region: 0x165, script: 0x57, flags: 0x0}, + 917: {region: 0x99, script: 0x7d, flags: 0x0}, + 918: {region: 0x165, script: 0x57, flags: 0x0}, + 919: {region: 0x165, script: 0x5, flags: 0x0}, + 920: {region: 0x7d, script: 0x1f, flags: 0x0}, + 921: {region: 0x135, script: 0x7e, flags: 0x0}, + 922: {region: 0x165, script: 0x5, flags: 0x0}, + 923: {region: 0xc5, script: 0x7c, flags: 0x0}, + 924: {region: 0x165, script: 0x57, flags: 0x0}, + 925: {region: 0x2c, script: 0x3, flags: 0x1}, + 926: {region: 0xe7, script: 0x57, flags: 0x0}, + 927: {region: 0x2f, script: 0x2, flags: 0x1}, + 928: {region: 0xe7, script: 0x57, flags: 0x0}, + 929: {region: 0x30, script: 0x57, flags: 0x0}, + 930: {region: 0xf0, script: 0x57, flags: 0x0}, + 931: {region: 0x165, script: 0x57, flags: 0x0}, + 932: {region: 0x78, script: 0x57, flags: 0x0}, + 933: {region: 0xd6, script: 0x57, flags: 0x0}, + 934: {region: 0x135, script: 0x57, flags: 0x0}, + 935: {region: 0x49, script: 0x57, flags: 0x0}, + 936: {region: 0x165, script: 0x57, flags: 0x0}, + 937: {region: 0x9c, script: 0xe8, flags: 0x0}, + 938: {region: 0x165, script: 0x57, flags: 0x0}, + 939: {region: 0x60, script: 0x57, flags: 0x0}, + 940: {region: 0x165, script: 0x5, flags: 0x0}, + 941: {region: 0xb0, script: 0x87, flags: 0x0}, + 943: {region: 0x165, script: 0x57, flags: 0x0}, + 944: {region: 0x165, script: 0x57, flags: 0x0}, + 945: {region: 0x99, script: 0x12, flags: 0x0}, + 946: {region: 0xa4, script: 0x57, flags: 0x0}, + 947: {region: 0xe9, script: 0x57, flags: 0x0}, + 948: {region: 0x165, script: 0x57, flags: 0x0}, + 949: {region: 0x9e, script: 0x57, flags: 0x0}, + 950: {region: 0x165, script: 0x57, flags: 0x0}, + 951: {region: 0x165, script: 0x57, flags: 0x0}, + 952: {region: 0x87, script: 0x31, flags: 0x0}, + 953: {region: 0x75, script: 0x57, flags: 0x0}, + 954: {region: 0x165, script: 0x57, flags: 0x0}, + 955: {region: 0xe8, script: 0x4a, flags: 0x0}, + 956: {region: 0x9c, script: 0x5, flags: 0x0}, + 957: {region: 0x1, script: 0x57, flags: 0x0}, + 958: {region: 0x24, script: 0x5, flags: 0x0}, + 959: {region: 0x165, script: 0x57, flags: 0x0}, + 960: {region: 0x41, script: 0x57, flags: 0x0}, + 961: {region: 0x165, script: 0x57, flags: 0x0}, + 962: {region: 0x7a, script: 0x57, flags: 0x0}, + 963: {region: 0x165, script: 0x57, flags: 0x0}, + 964: {region: 0xe4, script: 0x57, flags: 0x0}, + 965: {region: 0x89, script: 0x57, flags: 0x0}, + 966: {region: 0x69, script: 0x57, flags: 0x0}, + 967: {region: 0x165, script: 0x57, flags: 0x0}, + 968: {region: 0x99, script: 0x21, flags: 0x0}, + 969: {region: 0x165, script: 0x57, flags: 0x0}, + 970: {region: 0x102, script: 0x57, flags: 0x0}, + 971: {region: 0x95, script: 0x57, flags: 0x0}, + 972: {region: 0x165, script: 0x57, flags: 0x0}, + 973: {region: 0x165, script: 0x57, flags: 0x0}, + 974: {region: 0x9e, script: 0x57, flags: 0x0}, + 975: {region: 0x165, script: 0x5, flags: 0x0}, + 976: {region: 0x99, script: 0x57, flags: 0x0}, + 977: {region: 0x31, script: 0x2, flags: 0x1}, + 978: {region: 0xdb, script: 0x21, flags: 0x0}, + 979: {region: 0x35, script: 0xe, flags: 0x0}, + 980: {region: 0x4e, script: 0x57, flags: 0x0}, + 981: {region: 0x72, script: 0x57, flags: 0x0}, + 982: {region: 0x4e, script: 0x57, flags: 0x0}, + 983: {region: 0x9c, script: 0x5, flags: 0x0}, + 984: {region: 0x10c, script: 0x57, flags: 0x0}, + 985: {region: 0x3a, script: 0x57, flags: 0x0}, + 986: {region: 0x165, script: 0x57, flags: 0x0}, + 987: {region: 0xd1, script: 0x57, flags: 0x0}, + 988: {region: 0x104, script: 0x57, flags: 0x0}, + 989: {region: 0x95, script: 0x57, flags: 0x0}, + 990: {region: 0x12f, script: 0x57, flags: 0x0}, + 991: {region: 0x165, script: 0x57, flags: 0x0}, + 992: {region: 0x165, script: 0x57, flags: 0x0}, + 993: {region: 0x73, script: 0x57, flags: 0x0}, + 994: {region: 0x106, script: 0x1f, flags: 0x0}, + 995: {region: 0x130, script: 0x1f, flags: 0x0}, + 996: {region: 0x109, script: 0x57, flags: 0x0}, + 997: {region: 0x107, script: 0x57, flags: 0x0}, + 998: {region: 0x12f, script: 0x57, flags: 0x0}, + 999: {region: 0x165, script: 0x57, flags: 0x0}, + 1000: {region: 0xa2, script: 0x49, flags: 0x0}, + 1001: {region: 0x99, script: 0x21, flags: 0x0}, + 1002: {region: 0x80, script: 0x57, flags: 0x0}, + 1003: {region: 0x106, script: 0x1f, flags: 0x0}, + 1004: {region: 0xa4, script: 0x57, flags: 0x0}, + 1005: {region: 0x95, script: 0x57, flags: 0x0}, + 1006: {region: 0x99, script: 0x57, flags: 0x0}, + 1007: {region: 0x114, script: 0x57, flags: 0x0}, + 1008: {region: 0x99, script: 0xc3, flags: 0x0}, + 1009: {region: 0x165, script: 0x57, flags: 0x0}, + 1010: {region: 0x165, script: 0x57, flags: 0x0}, + 1011: {region: 0x12f, script: 0x57, flags: 0x0}, + 1012: {region: 0x9e, script: 0x57, flags: 0x0}, + 1013: {region: 0x99, script: 0x21, flags: 0x0}, + 1014: {region: 0x165, script: 0x5, flags: 0x0}, + 1015: {region: 0x9e, script: 0x57, flags: 0x0}, + 1016: {region: 0x7b, script: 0x57, flags: 0x0}, + 1017: {region: 0x49, script: 0x57, flags: 0x0}, + 1018: {region: 0x33, script: 0x4, flags: 0x1}, + 1019: {region: 0x9e, script: 0x57, flags: 0x0}, + 1020: {region: 0x9c, script: 0x5, flags: 0x0}, + 1021: {region: 0xda, script: 0x57, flags: 0x0}, + 1022: {region: 0x4f, script: 0x57, flags: 0x0}, + 1023: {region: 0xd1, script: 0x57, flags: 0x0}, + 1024: {region: 0xcf, script: 0x57, flags: 0x0}, + 1025: {region: 0xc3, script: 0x57, flags: 0x0}, + 1026: {region: 0x4c, script: 0x57, flags: 0x0}, + 1027: {region: 0x96, script: 0x7a, flags: 0x0}, + 1028: {region: 0xb6, script: 0x57, flags: 0x0}, + 1029: {region: 0x165, script: 0x29, flags: 0x0}, + 1030: {region: 0x165, script: 0x57, flags: 0x0}, + 1032: {region: 0xba, script: 0xdc, flags: 0x0}, + 1033: {region: 0x165, script: 0x57, flags: 0x0}, + 1034: {region: 0xc4, script: 0x72, flags: 0x0}, + 1035: {region: 0x165, script: 0x5, flags: 0x0}, + 1036: {region: 0xb3, script: 0xca, flags: 0x0}, + 1037: {region: 0x6f, script: 0x57, flags: 0x0}, + 1038: {region: 0x165, script: 0x57, flags: 0x0}, + 1039: {region: 0x165, script: 0x57, flags: 0x0}, + 1040: {region: 0x165, script: 0x57, flags: 0x0}, + 1041: {region: 0x165, script: 0x57, flags: 0x0}, + 1042: {region: 0x111, script: 0x57, flags: 0x0}, + 1043: {region: 0x165, script: 0x57, flags: 0x0}, + 1044: {region: 0xe8, script: 0x5, flags: 0x0}, + 1045: {region: 0x165, script: 0x57, flags: 0x0}, + 1046: {region: 0x10f, script: 0x57, flags: 0x0}, + 1047: {region: 0x165, script: 0x57, flags: 0x0}, + 1048: {region: 0xe9, script: 0x57, flags: 0x0}, + 1049: {region: 0x165, script: 0x57, flags: 0x0}, + 1050: {region: 0x95, script: 0x57, flags: 0x0}, + 1051: {region: 0x142, script: 0x57, flags: 0x0}, + 1052: {region: 0x10c, script: 0x57, flags: 0x0}, + 1054: {region: 0x10c, script: 0x57, flags: 0x0}, + 1055: {region: 0x72, script: 0x57, flags: 0x0}, + 1056: {region: 0x97, script: 0xc0, flags: 0x0}, + 1057: {region: 0x165, script: 0x57, flags: 0x0}, + 1058: {region: 0x72, script: 0x57, flags: 0x0}, + 1059: {region: 0x164, script: 0x57, flags: 0x0}, + 1060: {region: 0x165, script: 0x57, flags: 0x0}, + 1061: {region: 0xc3, script: 0x57, flags: 0x0}, + 1062: {region: 0x165, script: 0x57, flags: 0x0}, + 1063: {region: 0x165, script: 0x57, flags: 0x0}, + 1064: {region: 0x165, script: 0x57, flags: 0x0}, + 1065: {region: 0x115, script: 0x57, flags: 0x0}, + 1066: {region: 0x165, script: 0x57, flags: 0x0}, + 1067: {region: 0x165, script: 0x57, flags: 0x0}, + 1068: {region: 0x123, script: 0xdf, flags: 0x0}, + 1069: {region: 0x165, script: 0x57, flags: 0x0}, + 1070: {region: 0x165, script: 0x57, flags: 0x0}, + 1071: {region: 0x165, script: 0x57, flags: 0x0}, + 1072: {region: 0x165, script: 0x57, flags: 0x0}, + 1073: {region: 0x27, script: 0x57, flags: 0x0}, + 1074: {region: 0x37, script: 0x5, flags: 0x1}, + 1075: {region: 0x99, script: 0xcb, flags: 0x0}, + 1076: {region: 0x116, script: 0x57, flags: 0x0}, + 1077: {region: 0x114, script: 0x57, flags: 0x0}, + 1078: {region: 0x99, script: 0x21, flags: 0x0}, + 1079: {region: 0x161, script: 0x57, flags: 0x0}, + 1080: {region: 0x165, script: 0x57, flags: 0x0}, + 1081: {region: 0x165, script: 0x57, flags: 0x0}, + 1082: {region: 0x6d, script: 0x57, flags: 0x0}, + 1083: {region: 0x161, script: 0x57, flags: 0x0}, + 1084: {region: 0x165, script: 0x57, flags: 0x0}, + 1085: {region: 0x60, script: 0x57, flags: 0x0}, + 1086: {region: 0x95, script: 0x57, flags: 0x0}, + 1087: {region: 0x165, script: 0x57, flags: 0x0}, + 1088: {region: 0x165, script: 0x57, flags: 0x0}, + 1089: {region: 0x12f, script: 0x57, flags: 0x0}, + 1090: {region: 0x165, script: 0x57, flags: 0x0}, + 1091: {region: 0x84, script: 0x57, flags: 0x0}, + 1092: {region: 0x10c, script: 0x57, flags: 0x0}, + 1093: {region: 0x12f, script: 0x57, flags: 0x0}, + 1094: {region: 0x15f, script: 0x5, flags: 0x0}, + 1095: {region: 0x4b, script: 0x57, flags: 0x0}, + 1096: {region: 0x60, script: 0x57, flags: 0x0}, + 1097: {region: 0x165, script: 0x57, flags: 0x0}, + 1098: {region: 0x99, script: 0x21, flags: 0x0}, + 1099: {region: 0x95, script: 0x57, flags: 0x0}, + 1100: {region: 0x165, script: 0x57, flags: 0x0}, + 1101: {region: 0x35, script: 0xe, flags: 0x0}, + 1102: {region: 0x9b, script: 0xcf, flags: 0x0}, + 1103: {region: 0xe9, script: 0x57, flags: 0x0}, + 1104: {region: 0x99, script: 0xd7, flags: 0x0}, + 1105: {region: 0xdb, script: 0x21, flags: 0x0}, + 1106: {region: 0x165, script: 0x57, flags: 0x0}, + 1107: {region: 0x165, script: 0x57, flags: 0x0}, + 1108: {region: 0x165, script: 0x57, flags: 0x0}, + 1109: {region: 0x165, script: 0x57, flags: 0x0}, + 1110: {region: 0x165, script: 0x57, flags: 0x0}, + 1111: {region: 0x165, script: 0x57, flags: 0x0}, + 1112: {region: 0x165, script: 0x57, flags: 0x0}, + 1113: {region: 0x165, script: 0x57, flags: 0x0}, + 1114: {region: 0xe7, script: 0x57, flags: 0x0}, + 1115: {region: 0x165, script: 0x57, flags: 0x0}, + 1116: {region: 0x165, script: 0x57, flags: 0x0}, + 1117: {region: 0x99, script: 0x4f, flags: 0x0}, + 1118: {region: 0x53, script: 0xd5, flags: 0x0}, + 1119: {region: 0xdb, script: 0x21, flags: 0x0}, + 1120: {region: 0xdb, script: 0x21, flags: 0x0}, + 1121: {region: 0x99, script: 0xda, flags: 0x0}, + 1122: {region: 0x165, script: 0x57, flags: 0x0}, + 1123: {region: 0x112, script: 0x57, flags: 0x0}, + 1124: {region: 0x131, script: 0x57, flags: 0x0}, + 1125: {region: 0x126, script: 0x57, flags: 0x0}, + 1126: {region: 0x165, script: 0x57, flags: 0x0}, + 1127: {region: 0x3c, script: 0x3, flags: 0x1}, + 1128: {region: 0x165, script: 0x57, flags: 0x0}, + 1129: {region: 0x165, script: 0x57, flags: 0x0}, + 1130: {region: 0x165, script: 0x57, flags: 0x0}, + 1131: {region: 0x123, script: 0xdf, flags: 0x0}, + 1132: {region: 0xdb, script: 0x21, flags: 0x0}, + 1133: {region: 0xdb, script: 0x21, flags: 0x0}, + 1134: {region: 0xdb, script: 0x21, flags: 0x0}, + 1135: {region: 0x6f, script: 0x29, flags: 0x0}, + 1136: {region: 0x165, script: 0x57, flags: 0x0}, + 1137: {region: 0x6d, script: 0x29, flags: 0x0}, + 1138: {region: 0x165, script: 0x57, flags: 0x0}, + 1139: {region: 0x165, script: 0x57, flags: 0x0}, + 1140: {region: 0x165, script: 0x57, flags: 0x0}, + 1141: {region: 0xd6, script: 0x57, flags: 0x0}, + 1142: {region: 0x127, script: 0x57, flags: 0x0}, + 1143: {region: 0x125, script: 0x57, flags: 0x0}, + 1144: {region: 0x32, script: 0x57, flags: 0x0}, + 1145: {region: 0xdb, script: 0x21, flags: 0x0}, + 1146: {region: 0xe7, script: 0x57, flags: 0x0}, + 1147: {region: 0x165, script: 0x57, flags: 0x0}, + 1148: {region: 0x165, script: 0x57, flags: 0x0}, + 1149: {region: 0x32, script: 0x57, flags: 0x0}, + 1150: {region: 0xd4, script: 0x57, flags: 0x0}, + 1151: {region: 0x165, script: 0x57, flags: 0x0}, + 1152: {region: 0x161, script: 0x57, flags: 0x0}, + 1153: {region: 0x165, script: 0x57, flags: 0x0}, + 1154: {region: 0x129, script: 0x57, flags: 0x0}, + 1155: {region: 0x165, script: 0x57, flags: 0x0}, + 1156: {region: 0xce, script: 0x57, flags: 0x0}, + 1157: {region: 0x165, script: 0x57, flags: 0x0}, + 1158: {region: 0xe6, script: 0x57, flags: 0x0}, + 1159: {region: 0x165, script: 0x57, flags: 0x0}, + 1160: {region: 0x165, script: 0x57, flags: 0x0}, + 1161: {region: 0x165, script: 0x57, flags: 0x0}, + 1162: {region: 0x12b, script: 0x57, flags: 0x0}, + 1163: {region: 0x12b, script: 0x57, flags: 0x0}, + 1164: {region: 0x12e, script: 0x57, flags: 0x0}, + 1165: {region: 0x165, script: 0x5, flags: 0x0}, + 1166: {region: 0x161, script: 0x57, flags: 0x0}, + 1167: {region: 0x87, script: 0x31, flags: 0x0}, + 1168: {region: 0xdb, script: 0x21, flags: 0x0}, + 1169: {region: 0xe7, script: 0x57, flags: 0x0}, + 1170: {region: 0x43, script: 0xe0, flags: 0x0}, + 1171: {region: 0x165, script: 0x57, flags: 0x0}, + 1172: {region: 0x106, script: 0x1f, flags: 0x0}, + 1173: {region: 0x165, script: 0x57, flags: 0x0}, + 1174: {region: 0x165, script: 0x57, flags: 0x0}, + 1175: {region: 0x131, script: 0x57, flags: 0x0}, + 1176: {region: 0x165, script: 0x57, flags: 0x0}, + 1177: {region: 0x123, script: 0xdf, flags: 0x0}, + 1178: {region: 0x32, script: 0x57, flags: 0x0}, + 1179: {region: 0x165, script: 0x57, flags: 0x0}, + 1180: {region: 0x165, script: 0x57, flags: 0x0}, + 1181: {region: 0xce, script: 0x57, flags: 0x0}, + 1182: {region: 0x165, script: 0x57, flags: 0x0}, + 1183: {region: 0x165, script: 0x57, flags: 0x0}, + 1184: {region: 0x12d, script: 0x57, flags: 0x0}, + 1185: {region: 0x165, script: 0x57, flags: 0x0}, + 1187: {region: 0x165, script: 0x57, flags: 0x0}, + 1188: {region: 0xd4, script: 0x57, flags: 0x0}, + 1189: {region: 0x53, script: 0xd8, flags: 0x0}, + 1190: {region: 0xe5, script: 0x57, flags: 0x0}, + 1191: {region: 0x165, script: 0x57, flags: 0x0}, + 1192: {region: 0x106, script: 0x1f, flags: 0x0}, + 1193: {region: 0xba, script: 0x57, flags: 0x0}, + 1194: {region: 0x165, script: 0x57, flags: 0x0}, + 1195: {region: 0x106, script: 0x1f, flags: 0x0}, + 1196: {region: 0x3f, script: 0x4, flags: 0x1}, + 1197: {region: 0x11c, script: 0xe2, flags: 0x0}, + 1198: {region: 0x130, script: 0x1f, flags: 0x0}, + 1199: {region: 0x75, script: 0x57, flags: 0x0}, + 1200: {region: 0x2a, script: 0x57, flags: 0x0}, + 1202: {region: 0x43, script: 0x3, flags: 0x1}, + 1203: {region: 0x99, script: 0xe, flags: 0x0}, + 1204: {region: 0xe8, script: 0x5, flags: 0x0}, + 1205: {region: 0x165, script: 0x57, flags: 0x0}, + 1206: {region: 0x165, script: 0x57, flags: 0x0}, + 1207: {region: 0x165, script: 0x57, flags: 0x0}, + 1208: {region: 0x165, script: 0x57, flags: 0x0}, + 1209: {region: 0x165, script: 0x57, flags: 0x0}, + 1210: {region: 0x165, script: 0x57, flags: 0x0}, + 1211: {region: 0x165, script: 0x57, flags: 0x0}, + 1212: {region: 0x46, script: 0x4, flags: 0x1}, + 1213: {region: 0x165, script: 0x57, flags: 0x0}, + 1214: {region: 0xb4, script: 0xe3, flags: 0x0}, + 1215: {region: 0x165, script: 0x57, flags: 0x0}, + 1216: {region: 0x161, script: 0x57, flags: 0x0}, + 1217: {region: 0x9e, script: 0x57, flags: 0x0}, + 1218: {region: 0x106, script: 0x57, flags: 0x0}, + 1219: {region: 0x13e, script: 0x57, flags: 0x0}, + 1220: {region: 0x11b, script: 0x57, flags: 0x0}, + 1221: {region: 0x165, script: 0x57, flags: 0x0}, + 1222: {region: 0x36, script: 0x57, flags: 0x0}, + 1223: {region: 0x60, script: 0x57, flags: 0x0}, + 1224: {region: 0xd1, script: 0x57, flags: 0x0}, + 1225: {region: 0x1, script: 0x57, flags: 0x0}, + 1226: {region: 0x106, script: 0x57, flags: 0x0}, + 1227: {region: 0x6a, script: 0x57, flags: 0x0}, + 1228: {region: 0x12f, script: 0x57, flags: 0x0}, + 1229: {region: 0x165, script: 0x57, flags: 0x0}, + 1230: {region: 0x36, script: 0x57, flags: 0x0}, + 1231: {region: 0x4e, script: 0x57, flags: 0x0}, + 1232: {region: 0x165, script: 0x57, flags: 0x0}, + 1233: {region: 0x6f, script: 0x29, flags: 0x0}, + 1234: {region: 0x165, script: 0x57, flags: 0x0}, + 1235: {region: 0xe7, script: 0x57, flags: 0x0}, + 1236: {region: 0x2f, script: 0x57, flags: 0x0}, + 1237: {region: 0x99, script: 0xda, flags: 0x0}, + 1238: {region: 0x99, script: 0x21, flags: 0x0}, + 1239: {region: 0x165, script: 0x57, flags: 0x0}, + 1240: {region: 0x165, script: 0x57, flags: 0x0}, + 1241: {region: 0x165, script: 0x57, flags: 0x0}, + 1242: {region: 0x165, script: 0x57, flags: 0x0}, + 1243: {region: 0x165, script: 0x57, flags: 0x0}, + 1244: {region: 0x165, script: 0x57, flags: 0x0}, + 1245: {region: 0x165, script: 0x57, flags: 0x0}, + 1246: {region: 0x165, script: 0x57, flags: 0x0}, + 1247: {region: 0x165, script: 0x57, flags: 0x0}, + 1248: {region: 0x140, script: 0x57, flags: 0x0}, + 1249: {region: 0x165, script: 0x57, flags: 0x0}, + 1250: {region: 0x165, script: 0x57, flags: 0x0}, + 1251: {region: 0xa8, script: 0x5, flags: 0x0}, + 1252: {region: 0x165, script: 0x57, flags: 0x0}, + 1253: {region: 0x114, script: 0x57, flags: 0x0}, + 1254: {region: 0x165, script: 0x57, flags: 0x0}, + 1255: {region: 0x165, script: 0x57, flags: 0x0}, + 1256: {region: 0x165, script: 0x57, flags: 0x0}, + 1257: {region: 0x165, script: 0x57, flags: 0x0}, + 1258: {region: 0x99, script: 0x21, flags: 0x0}, + 1259: {region: 0x53, script: 0x38, flags: 0x0}, + 1260: {region: 0x165, script: 0x57, flags: 0x0}, + 1261: {region: 0x165, script: 0x57, flags: 0x0}, + 1262: {region: 0x41, script: 0x57, flags: 0x0}, + 1263: {region: 0x165, script: 0x57, flags: 0x0}, + 1264: {region: 0x12b, script: 0x18, flags: 0x0}, + 1265: {region: 0x165, script: 0x57, flags: 0x0}, + 1266: {region: 0x161, script: 0x57, flags: 0x0}, + 1267: {region: 0x165, script: 0x57, flags: 0x0}, + 1268: {region: 0x12b, script: 0x5f, flags: 0x0}, + 1269: {region: 0x12b, script: 0x60, flags: 0x0}, + 1270: {region: 0x7d, script: 0x2b, flags: 0x0}, + 1271: {region: 0x53, script: 0x64, flags: 0x0}, + 1272: {region: 0x10b, script: 0x69, flags: 0x0}, + 1273: {region: 0x108, script: 0x73, flags: 0x0}, + 1274: {region: 0x99, script: 0x21, flags: 0x0}, + 1275: {region: 0x131, script: 0x57, flags: 0x0}, + 1276: {region: 0x165, script: 0x57, flags: 0x0}, + 1277: {region: 0x9c, script: 0x8a, flags: 0x0}, + 1278: {region: 0x165, script: 0x57, flags: 0x0}, + 1279: {region: 0x15e, script: 0xc2, flags: 0x0}, + 1280: {region: 0x165, script: 0x57, flags: 0x0}, + 1281: {region: 0x165, script: 0x57, flags: 0x0}, + 1282: {region: 0xdb, script: 0x21, flags: 0x0}, + 1283: {region: 0x165, script: 0x57, flags: 0x0}, + 1284: {region: 0x165, script: 0x57, flags: 0x0}, + 1285: {region: 0xd1, script: 0x57, flags: 0x0}, + 1286: {region: 0x75, script: 0x57, flags: 0x0}, + 1287: {region: 0x165, script: 0x57, flags: 0x0}, + 1288: {region: 0x165, script: 0x57, flags: 0x0}, + 1289: {region: 0x52, script: 0x57, flags: 0x0}, + 1290: {region: 0x165, script: 0x57, flags: 0x0}, + 1291: {region: 0x165, script: 0x57, flags: 0x0}, + 1292: {region: 0x165, script: 0x57, flags: 0x0}, + 1293: {region: 0x52, script: 0x57, flags: 0x0}, + 1294: {region: 0x165, script: 0x57, flags: 0x0}, + 1295: {region: 0x165, script: 0x57, flags: 0x0}, + 1296: {region: 0x165, script: 0x57, flags: 0x0}, + 1297: {region: 0x165, script: 0x57, flags: 0x0}, + 1298: {region: 0x1, script: 0x3b, flags: 0x0}, + 1299: {region: 0x165, script: 0x57, flags: 0x0}, + 1300: {region: 0x165, script: 0x57, flags: 0x0}, + 1301: {region: 0x165, script: 0x57, flags: 0x0}, + 1302: {region: 0x165, script: 0x57, flags: 0x0}, + 1303: {region: 0x165, script: 0x57, flags: 0x0}, + 1304: {region: 0xd6, script: 0x57, flags: 0x0}, + 1305: {region: 0x165, script: 0x57, flags: 0x0}, + 1306: {region: 0x165, script: 0x57, flags: 0x0}, + 1307: {region: 0x165, script: 0x57, flags: 0x0}, + 1308: {region: 0x41, script: 0x57, flags: 0x0}, + 1309: {region: 0x165, script: 0x57, flags: 0x0}, + 1310: {region: 0xcf, script: 0x57, flags: 0x0}, + 1311: {region: 0x4a, script: 0x3, flags: 0x1}, + 1312: {region: 0x165, script: 0x57, flags: 0x0}, + 1313: {region: 0x165, script: 0x57, flags: 0x0}, + 1314: {region: 0x165, script: 0x57, flags: 0x0}, + 1315: {region: 0x53, script: 0x57, flags: 0x0}, + 1316: {region: 0x10b, script: 0x57, flags: 0x0}, + 1318: {region: 0xa8, script: 0x5, flags: 0x0}, + 1319: {region: 0xd9, script: 0x57, flags: 0x0}, + 1320: {region: 0xba, script: 0xdc, flags: 0x0}, + 1321: {region: 0x4d, script: 0x14, flags: 0x1}, + 1322: {region: 0x53, script: 0x79, flags: 0x0}, + 1323: {region: 0x165, script: 0x57, flags: 0x0}, + 1324: {region: 0x122, script: 0x57, flags: 0x0}, + 1325: {region: 0xd0, script: 0x57, flags: 0x0}, + 1326: {region: 0x165, script: 0x57, flags: 0x0}, + 1327: {region: 0x161, script: 0x57, flags: 0x0}, + 1329: {region: 0x12b, script: 0x57, flags: 0x0}, +} + +// likelyLangList holds lists info associated with likelyLang. +// Size: 388 bytes, 97 elements +var likelyLangList = [97]likelyScriptRegion{ + 0: {region: 0x9c, script: 0x7, flags: 0x0}, + 1: {region: 0xa1, script: 0x74, flags: 0x2}, + 2: {region: 0x11c, script: 0x80, flags: 0x2}, + 3: {region: 0x32, script: 0x57, flags: 0x0}, + 4: {region: 0x9b, script: 0x5, flags: 0x4}, + 5: {region: 0x9c, script: 0x5, flags: 0x4}, + 6: {region: 0x106, script: 0x1f, flags: 0x4}, + 7: {region: 0x9c, script: 0x5, flags: 0x2}, + 8: {region: 0x106, script: 0x1f, flags: 0x0}, + 9: {region: 0x38, script: 0x2c, flags: 0x2}, + 10: {region: 0x135, script: 0x57, flags: 0x0}, + 11: {region: 0x7b, script: 0xc5, flags: 0x2}, + 12: {region: 0x114, script: 0x57, flags: 0x0}, + 13: {region: 0x84, script: 0x1, flags: 0x2}, + 14: {region: 0x5d, script: 0x1e, flags: 0x0}, + 15: {region: 0x87, script: 0x5c, flags: 0x2}, + 16: {region: 0xd6, script: 0x57, flags: 0x0}, + 17: {region: 0x52, script: 0x5, flags: 0x4}, + 18: {region: 0x10b, script: 0x5, flags: 0x4}, + 19: {region: 0xae, script: 0x1f, flags: 0x0}, + 20: {region: 0x24, script: 0x5, flags: 0x4}, + 21: {region: 0x53, script: 0x5, flags: 0x4}, + 22: {region: 0x9c, script: 0x5, flags: 0x4}, + 23: {region: 0xc5, script: 0x5, flags: 0x4}, + 24: {region: 0x53, script: 0x5, flags: 0x2}, + 25: {region: 0x12b, script: 0x57, flags: 0x0}, + 26: {region: 0xb0, script: 0x5, flags: 0x4}, + 27: {region: 0x9b, script: 0x5, flags: 0x2}, + 28: {region: 0xa5, script: 0x1f, flags: 0x0}, + 29: {region: 0x53, script: 0x5, flags: 0x4}, + 30: {region: 0x12b, script: 0x57, flags: 0x4}, + 31: {region: 0x53, script: 0x5, flags: 0x2}, + 32: {region: 0x12b, script: 0x57, flags: 0x2}, + 33: {region: 0xdb, script: 0x21, flags: 0x0}, + 34: {region: 0x99, script: 0x5a, flags: 0x2}, + 35: {region: 0x83, script: 0x57, flags: 0x0}, + 36: {region: 0x84, script: 0x78, flags: 0x4}, + 37: {region: 0x84, script: 0x78, flags: 0x2}, + 38: {region: 0xc5, script: 0x1f, flags: 0x0}, + 39: {region: 0x53, script: 0x6d, flags: 0x4}, + 40: {region: 0x53, script: 0x6d, flags: 0x2}, + 41: {region: 0xd0, script: 0x57, flags: 0x0}, + 42: {region: 0x4a, script: 0x5, flags: 0x4}, + 43: {region: 0x95, script: 0x5, flags: 0x4}, + 44: {region: 0x99, script: 0x33, flags: 0x0}, + 45: {region: 0xe8, script: 0x5, flags: 0x4}, + 46: {region: 0xe8, script: 0x5, flags: 0x2}, + 47: {region: 0x9c, script: 0x84, flags: 0x0}, + 48: {region: 0x53, script: 0x85, flags: 0x2}, + 49: {region: 0xba, script: 0xdc, flags: 0x0}, + 50: {region: 0xd9, script: 0x57, flags: 0x4}, + 51: {region: 0xe8, script: 0x5, flags: 0x0}, + 52: {region: 0x99, script: 0x21, flags: 0x2}, + 53: {region: 0x99, script: 0x4c, flags: 0x2}, + 54: {region: 0x99, script: 0xc9, flags: 0x2}, + 55: {region: 0x105, script: 0x1f, flags: 0x0}, + 56: {region: 0xbd, script: 0x57, flags: 0x4}, + 57: {region: 0x104, script: 0x57, flags: 0x4}, + 58: {region: 0x106, script: 0x57, flags: 0x4}, + 59: {region: 0x12b, script: 0x57, flags: 0x4}, + 60: {region: 0x124, script: 0x1f, flags: 0x0}, + 61: {region: 0xe8, script: 0x5, flags: 0x4}, + 62: {region: 0xe8, script: 0x5, flags: 0x2}, + 63: {region: 0x53, script: 0x5, flags: 0x0}, + 64: {region: 0xae, script: 0x1f, flags: 0x4}, + 65: {region: 0xc5, script: 0x1f, flags: 0x4}, + 66: {region: 0xae, script: 0x1f, flags: 0x2}, + 67: {region: 0x99, script: 0xe, flags: 0x0}, + 68: {region: 0xdb, script: 0x21, flags: 0x4}, + 69: {region: 0xdb, script: 0x21, flags: 0x2}, + 70: {region: 0x137, script: 0x57, flags: 0x0}, + 71: {region: 0x24, script: 0x5, flags: 0x4}, + 72: {region: 0x53, script: 0x1f, flags: 0x4}, + 73: {region: 0x24, script: 0x5, flags: 0x2}, + 74: {region: 0x8d, script: 0x39, flags: 0x0}, + 75: {region: 0x53, script: 0x38, flags: 0x4}, + 76: {region: 0x53, script: 0x38, flags: 0x2}, + 77: {region: 0x53, script: 0x38, flags: 0x0}, + 78: {region: 0x2f, script: 0x39, flags: 0x4}, + 79: {region: 0x3e, script: 0x39, flags: 0x4}, + 80: {region: 0x7b, script: 0x39, flags: 0x4}, + 81: {region: 0x7e, script: 0x39, flags: 0x4}, + 82: {region: 0x8d, script: 0x39, flags: 0x4}, + 83: {region: 0x95, script: 0x39, flags: 0x4}, + 84: {region: 0xc6, script: 0x39, flags: 0x4}, + 85: {region: 0xd0, script: 0x39, flags: 0x4}, + 86: {region: 0xe2, script: 0x39, flags: 0x4}, + 87: {region: 0xe5, script: 0x39, flags: 0x4}, + 88: {region: 0xe7, script: 0x39, flags: 0x4}, + 89: {region: 0x116, script: 0x39, flags: 0x4}, + 90: {region: 0x123, script: 0x39, flags: 0x4}, + 91: {region: 0x12e, script: 0x39, flags: 0x4}, + 92: {region: 0x135, script: 0x39, flags: 0x4}, + 93: {region: 0x13e, script: 0x39, flags: 0x4}, + 94: {region: 0x12e, script: 0x11, flags: 0x2}, + 95: {region: 0x12e, script: 0x34, flags: 0x2}, + 96: {region: 0x12e, script: 0x39, flags: 0x2}, +} + +type likelyLangScript struct { + lang uint16 + script uint8 + flags uint8 +} + +// 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. +// Size: 1432 bytes, 358 elements +var likelyRegion = [358]likelyLangScript{ + 34: {lang: 0xd7, script: 0x57, flags: 0x0}, + 35: {lang: 0x3a, script: 0x5, flags: 0x0}, + 36: {lang: 0x0, script: 0x2, flags: 0x1}, + 39: {lang: 0x2, script: 0x2, flags: 0x1}, + 40: {lang: 0x4, script: 0x2, flags: 0x1}, + 42: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 43: {lang: 0x0, script: 0x57, flags: 0x0}, + 44: {lang: 0x13e, script: 0x57, flags: 0x0}, + 45: {lang: 0x41b, script: 0x57, flags: 0x0}, + 46: {lang: 0x10d, script: 0x57, flags: 0x0}, + 48: {lang: 0x367, script: 0x57, flags: 0x0}, + 49: {lang: 0x444, script: 0x57, flags: 0x0}, + 50: {lang: 0x58, script: 0x57, flags: 0x0}, + 51: {lang: 0x6, script: 0x2, flags: 0x1}, + 53: {lang: 0xa5, script: 0xe, flags: 0x0}, + 54: {lang: 0x367, script: 0x57, flags: 0x0}, + 55: {lang: 0x15e, script: 0x57, flags: 0x0}, + 56: {lang: 0x7e, script: 0x1f, flags: 0x0}, + 57: {lang: 0x3a, script: 0x5, flags: 0x0}, + 58: {lang: 0x3d9, script: 0x57, flags: 0x0}, + 59: {lang: 0x15e, script: 0x57, flags: 0x0}, + 60: {lang: 0x15e, script: 0x57, flags: 0x0}, + 62: {lang: 0x31f, script: 0x57, flags: 0x0}, + 63: {lang: 0x13e, script: 0x57, flags: 0x0}, + 64: {lang: 0x3a1, script: 0x57, flags: 0x0}, + 65: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 67: {lang: 0x8, script: 0x2, flags: 0x1}, + 69: {lang: 0x0, script: 0x57, flags: 0x0}, + 71: {lang: 0x71, script: 0x1f, flags: 0x0}, + 73: {lang: 0x512, script: 0x3b, flags: 0x2}, + 74: {lang: 0x31f, script: 0x5, flags: 0x2}, + 75: {lang: 0x445, script: 0x57, flags: 0x0}, + 76: {lang: 0x15e, script: 0x57, flags: 0x0}, + 77: {lang: 0x15e, script: 0x57, flags: 0x0}, + 78: {lang: 0x10d, script: 0x57, flags: 0x0}, + 79: {lang: 0x15e, script: 0x57, flags: 0x0}, + 81: {lang: 0x13e, script: 0x57, flags: 0x0}, + 82: {lang: 0x15e, script: 0x57, flags: 0x0}, + 83: {lang: 0xa, script: 0x4, flags: 0x1}, + 84: {lang: 0x13e, script: 0x57, flags: 0x0}, + 85: {lang: 0x0, script: 0x57, flags: 0x0}, + 86: {lang: 0x13e, script: 0x57, flags: 0x0}, + 89: {lang: 0x13e, script: 0x57, flags: 0x0}, + 90: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 91: {lang: 0x3a1, script: 0x57, flags: 0x0}, + 93: {lang: 0xe, script: 0x2, flags: 0x1}, + 94: {lang: 0xfa, script: 0x57, flags: 0x0}, + 96: {lang: 0x10d, script: 0x57, flags: 0x0}, + 98: {lang: 0x1, script: 0x57, flags: 0x0}, + 99: {lang: 0x101, script: 0x57, flags: 0x0}, + 101: {lang: 0x13e, script: 0x57, flags: 0x0}, + 103: {lang: 0x10, script: 0x2, flags: 0x1}, + 104: {lang: 0x13e, script: 0x57, flags: 0x0}, + 105: {lang: 0x13e, script: 0x57, flags: 0x0}, + 106: {lang: 0x140, script: 0x57, flags: 0x0}, + 107: {lang: 0x3a, script: 0x5, flags: 0x0}, + 108: {lang: 0x3a, script: 0x5, flags: 0x0}, + 109: {lang: 0x46f, script: 0x29, flags: 0x0}, + 110: {lang: 0x13e, script: 0x57, flags: 0x0}, + 111: {lang: 0x12, script: 0x2, flags: 0x1}, + 113: {lang: 0x10d, script: 0x57, flags: 0x0}, + 114: {lang: 0x151, script: 0x57, flags: 0x0}, + 115: {lang: 0x1c0, script: 0x21, flags: 0x2}, + 118: {lang: 0x158, script: 0x57, flags: 0x0}, + 120: {lang: 0x15e, script: 0x57, flags: 0x0}, + 122: {lang: 0x15e, script: 0x57, flags: 0x0}, + 123: {lang: 0x14, script: 0x2, flags: 0x1}, + 125: {lang: 0x16, script: 0x3, flags: 0x1}, + 126: {lang: 0x15e, script: 0x57, flags: 0x0}, + 128: {lang: 0x21, script: 0x57, flags: 0x0}, + 130: {lang: 0x245, script: 0x57, flags: 0x0}, + 132: {lang: 0x15e, script: 0x57, flags: 0x0}, + 133: {lang: 0x15e, script: 0x57, flags: 0x0}, + 134: {lang: 0x13e, script: 0x57, flags: 0x0}, + 135: {lang: 0x19, script: 0x2, flags: 0x1}, + 136: {lang: 0x0, script: 0x57, flags: 0x0}, + 137: {lang: 0x13e, script: 0x57, flags: 0x0}, + 139: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 141: {lang: 0x529, script: 0x39, flags: 0x0}, + 142: {lang: 0x0, script: 0x57, flags: 0x0}, + 143: {lang: 0x13e, script: 0x57, flags: 0x0}, + 144: {lang: 0x1d1, script: 0x57, flags: 0x0}, + 145: {lang: 0x1d4, script: 0x57, flags: 0x0}, + 146: {lang: 0x1d5, script: 0x57, flags: 0x0}, + 148: {lang: 0x13e, script: 0x57, flags: 0x0}, + 149: {lang: 0x1b, script: 0x2, flags: 0x1}, + 151: {lang: 0x1bc, script: 0x3b, flags: 0x0}, + 153: {lang: 0x1d, script: 0x3, flags: 0x1}, + 155: {lang: 0x3a, script: 0x5, flags: 0x0}, + 156: {lang: 0x20, script: 0x2, flags: 0x1}, + 157: {lang: 0x1f8, script: 0x57, flags: 0x0}, + 158: {lang: 0x1f9, script: 0x57, flags: 0x0}, + 161: {lang: 0x3a, script: 0x5, flags: 0x0}, + 162: {lang: 0x200, script: 0x46, flags: 0x0}, + 164: {lang: 0x445, script: 0x57, flags: 0x0}, + 165: {lang: 0x28a, script: 0x1f, flags: 0x0}, + 166: {lang: 0x22, script: 0x3, flags: 0x1}, + 168: {lang: 0x25, script: 0x2, flags: 0x1}, + 170: {lang: 0x254, script: 0x50, flags: 0x0}, + 171: {lang: 0x254, script: 0x50, flags: 0x0}, + 172: {lang: 0x3a, script: 0x5, flags: 0x0}, + 174: {lang: 0x3e2, script: 0x1f, flags: 0x0}, + 175: {lang: 0x27, script: 0x2, flags: 0x1}, + 176: {lang: 0x3a, script: 0x5, flags: 0x0}, + 178: {lang: 0x10d, script: 0x57, flags: 0x0}, + 179: {lang: 0x40c, script: 0xca, flags: 0x0}, + 181: {lang: 0x43b, script: 0x57, flags: 0x0}, + 182: {lang: 0x2c0, script: 0x57, flags: 0x0}, + 183: {lang: 0x15e, script: 0x57, flags: 0x0}, + 184: {lang: 0x2c7, script: 0x57, flags: 0x0}, + 185: {lang: 0x3a, script: 0x5, flags: 0x0}, + 186: {lang: 0x29, script: 0x2, flags: 0x1}, + 187: {lang: 0x15e, script: 0x57, flags: 0x0}, + 188: {lang: 0x2b, script: 0x2, flags: 0x1}, + 189: {lang: 0x432, script: 0x57, flags: 0x0}, + 190: {lang: 0x15e, script: 0x57, flags: 0x0}, + 191: {lang: 0x2f1, script: 0x57, flags: 0x0}, + 194: {lang: 0x2d, script: 0x2, flags: 0x1}, + 195: {lang: 0xa0, script: 0x57, flags: 0x0}, + 196: {lang: 0x2f, script: 0x2, flags: 0x1}, + 197: {lang: 0x31, script: 0x2, flags: 0x1}, + 198: {lang: 0x33, script: 0x2, flags: 0x1}, + 200: {lang: 0x15e, script: 0x57, flags: 0x0}, + 201: {lang: 0x35, script: 0x2, flags: 0x1}, + 203: {lang: 0x320, script: 0x57, flags: 0x0}, + 204: {lang: 0x37, script: 0x3, flags: 0x1}, + 205: {lang: 0x128, script: 0xde, flags: 0x0}, + 207: {lang: 0x13e, script: 0x57, flags: 0x0}, + 208: {lang: 0x31f, script: 0x57, flags: 0x0}, + 209: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 210: {lang: 0x16, script: 0x57, flags: 0x0}, + 211: {lang: 0x15e, script: 0x57, flags: 0x0}, + 212: {lang: 0x1b4, script: 0x57, flags: 0x0}, + 214: {lang: 0x1b4, script: 0x5, flags: 0x2}, + 216: {lang: 0x13e, script: 0x57, flags: 0x0}, + 217: {lang: 0x367, script: 0x57, flags: 0x0}, + 218: {lang: 0x347, script: 0x57, flags: 0x0}, + 219: {lang: 0x351, script: 0x21, flags: 0x0}, + 225: {lang: 0x3a, script: 0x5, flags: 0x0}, + 226: {lang: 0x13e, script: 0x57, flags: 0x0}, + 228: {lang: 0x13e, script: 0x57, flags: 0x0}, + 229: {lang: 0x15e, script: 0x57, flags: 0x0}, + 230: {lang: 0x486, script: 0x57, flags: 0x0}, + 231: {lang: 0x153, script: 0x57, flags: 0x0}, + 232: {lang: 0x3a, script: 0x3, flags: 0x1}, + 233: {lang: 0x3b3, script: 0x57, flags: 0x0}, + 234: {lang: 0x15e, script: 0x57, flags: 0x0}, + 236: {lang: 0x13e, script: 0x57, flags: 0x0}, + 237: {lang: 0x3a, script: 0x5, flags: 0x0}, + 238: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 240: {lang: 0x3a2, script: 0x57, flags: 0x0}, + 241: {lang: 0x194, script: 0x57, flags: 0x0}, + 243: {lang: 0x3a, script: 0x5, flags: 0x0}, + 258: {lang: 0x15e, script: 0x57, flags: 0x0}, + 260: {lang: 0x3d, script: 0x2, flags: 0x1}, + 261: {lang: 0x432, script: 0x1f, flags: 0x0}, + 262: {lang: 0x3f, script: 0x2, flags: 0x1}, + 263: {lang: 0x3e5, script: 0x57, flags: 0x0}, + 264: {lang: 0x3a, script: 0x5, flags: 0x0}, + 266: {lang: 0x15e, script: 0x57, flags: 0x0}, + 267: {lang: 0x3a, script: 0x5, flags: 0x0}, + 268: {lang: 0x41, script: 0x2, flags: 0x1}, + 271: {lang: 0x416, script: 0x57, flags: 0x0}, + 272: {lang: 0x347, script: 0x57, flags: 0x0}, + 273: {lang: 0x43, script: 0x2, flags: 0x1}, + 275: {lang: 0x1f9, script: 0x57, flags: 0x0}, + 276: {lang: 0x15e, script: 0x57, flags: 0x0}, + 277: {lang: 0x429, script: 0x57, flags: 0x0}, + 278: {lang: 0x367, script: 0x57, flags: 0x0}, + 280: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 282: {lang: 0x13e, script: 0x57, flags: 0x0}, + 284: {lang: 0x45, script: 0x2, flags: 0x1}, + 288: {lang: 0x15e, script: 0x57, flags: 0x0}, + 289: {lang: 0x15e, script: 0x57, flags: 0x0}, + 290: {lang: 0x47, script: 0x2, flags: 0x1}, + 291: {lang: 0x49, script: 0x3, flags: 0x1}, + 292: {lang: 0x4c, script: 0x2, flags: 0x1}, + 293: {lang: 0x477, script: 0x57, flags: 0x0}, + 294: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 295: {lang: 0x476, script: 0x57, flags: 0x0}, + 296: {lang: 0x4e, script: 0x2, flags: 0x1}, + 297: {lang: 0x482, script: 0x57, flags: 0x0}, + 299: {lang: 0x50, script: 0x4, flags: 0x1}, + 301: {lang: 0x4a0, script: 0x57, flags: 0x0}, + 302: {lang: 0x54, script: 0x2, flags: 0x1}, + 303: {lang: 0x445, script: 0x57, flags: 0x0}, + 304: {lang: 0x56, script: 0x3, flags: 0x1}, + 305: {lang: 0x445, script: 0x57, flags: 0x0}, + 309: {lang: 0x512, script: 0x3b, flags: 0x2}, + 310: {lang: 0x13e, script: 0x57, flags: 0x0}, + 311: {lang: 0x4bc, script: 0x57, flags: 0x0}, + 312: {lang: 0x1f9, script: 0x57, flags: 0x0}, + 315: {lang: 0x13e, script: 0x57, flags: 0x0}, + 318: {lang: 0x4c3, script: 0x57, flags: 0x0}, + 319: {lang: 0x8a, script: 0x57, flags: 0x0}, + 320: {lang: 0x15e, script: 0x57, flags: 0x0}, + 322: {lang: 0x41b, script: 0x57, flags: 0x0}, + 333: {lang: 0x59, script: 0x2, flags: 0x1}, + 350: {lang: 0x3a, script: 0x5, flags: 0x0}, + 351: {lang: 0x5b, script: 0x2, flags: 0x1}, + 356: {lang: 0x423, script: 0x57, flags: 0x0}, +} + +// likelyRegionList holds lists info associated with likelyRegion. +// Size: 372 bytes, 93 elements +var likelyRegionList = [93]likelyLangScript{ + 0: {lang: 0x148, script: 0x5, flags: 0x0}, + 1: {lang: 0x476, script: 0x57, flags: 0x0}, + 2: {lang: 0x431, script: 0x57, flags: 0x0}, + 3: {lang: 0x2ff, script: 0x1f, flags: 0x0}, + 4: {lang: 0x1d7, script: 0x8, flags: 0x0}, + 5: {lang: 0x274, script: 0x57, flags: 0x0}, + 6: {lang: 0xb7, script: 0x57, flags: 0x0}, + 7: {lang: 0x432, script: 0x1f, flags: 0x0}, + 8: {lang: 0x12d, script: 0xe0, flags: 0x0}, + 9: {lang: 0x351, script: 0x21, flags: 0x0}, + 10: {lang: 0x529, script: 0x38, flags: 0x0}, + 11: {lang: 0x4ac, script: 0x5, flags: 0x0}, + 12: {lang: 0x523, script: 0x57, flags: 0x0}, + 13: {lang: 0x29a, script: 0xdf, flags: 0x0}, + 14: {lang: 0x136, script: 0x31, flags: 0x0}, + 15: {lang: 0x48a, script: 0x57, flags: 0x0}, + 16: {lang: 0x3a, script: 0x5, flags: 0x0}, + 17: {lang: 0x15e, script: 0x57, flags: 0x0}, + 18: {lang: 0x27, script: 0x29, flags: 0x0}, + 19: {lang: 0x139, script: 0x57, flags: 0x0}, + 20: {lang: 0x26a, script: 0x5, flags: 0x2}, + 21: {lang: 0x512, script: 0x3b, flags: 0x2}, + 22: {lang: 0x210, script: 0x2b, flags: 0x0}, + 23: {lang: 0x5, script: 0x1f, flags: 0x0}, + 24: {lang: 0x274, script: 0x57, flags: 0x0}, + 25: {lang: 0x136, script: 0x31, flags: 0x0}, + 26: {lang: 0x2ff, script: 0x1f, flags: 0x0}, + 27: {lang: 0x1e1, script: 0x57, flags: 0x0}, + 28: {lang: 0x31f, script: 0x5, flags: 0x0}, + 29: {lang: 0x1be, script: 0x21, flags: 0x0}, + 30: {lang: 0x4b4, script: 0x5, flags: 0x0}, + 31: {lang: 0x236, script: 0x72, flags: 0x0}, + 32: {lang: 0x148, script: 0x5, flags: 0x0}, + 33: {lang: 0x476, script: 0x57, flags: 0x0}, + 34: {lang: 0x24a, script: 0x4b, flags: 0x0}, + 35: {lang: 0xe6, script: 0x5, flags: 0x0}, + 36: {lang: 0x226, script: 0xdf, flags: 0x0}, + 37: {lang: 0x3a, script: 0x5, flags: 0x0}, + 38: {lang: 0x15e, script: 0x57, flags: 0x0}, + 39: {lang: 0x2b8, script: 0x54, flags: 0x0}, + 40: {lang: 0x226, script: 0xdf, flags: 0x0}, + 41: {lang: 0x3a, script: 0x5, flags: 0x0}, + 42: {lang: 0x15e, script: 0x57, flags: 0x0}, + 43: {lang: 0x3dc, script: 0x57, flags: 0x0}, + 44: {lang: 0x4ae, script: 0x1f, flags: 0x0}, + 45: {lang: 0x2ff, script: 0x1f, flags: 0x0}, + 46: {lang: 0x431, script: 0x57, flags: 0x0}, + 47: {lang: 0x331, script: 0x72, flags: 0x0}, + 48: {lang: 0x213, script: 0x57, flags: 0x0}, + 49: {lang: 0x30b, script: 0x1f, flags: 0x0}, + 50: {lang: 0x242, script: 0x5, flags: 0x0}, + 51: {lang: 0x529, script: 0x39, flags: 0x0}, + 52: {lang: 0x3c0, script: 0x57, flags: 0x0}, + 53: {lang: 0x3a, script: 0x5, flags: 0x0}, + 54: {lang: 0x15e, script: 0x57, flags: 0x0}, + 55: {lang: 0x2ed, script: 0x57, flags: 0x0}, + 56: {lang: 0x4b4, script: 0x5, flags: 0x0}, + 57: {lang: 0x88, script: 0x21, flags: 0x0}, + 58: {lang: 0x4b4, script: 0x5, flags: 0x0}, + 59: {lang: 0x4b4, script: 0x5, flags: 0x0}, + 60: {lang: 0xbe, script: 0x21, flags: 0x0}, + 61: {lang: 0x3dc, script: 0x57, flags: 0x0}, + 62: {lang: 0x7e, script: 0x1f, flags: 0x0}, + 63: {lang: 0x3e2, script: 0x1f, flags: 0x0}, + 64: {lang: 0x267, script: 0x57, flags: 0x0}, + 65: {lang: 0x444, script: 0x57, flags: 0x0}, + 66: {lang: 0x512, script: 0x3b, flags: 0x0}, + 67: {lang: 0x412, script: 0x57, flags: 0x0}, + 68: {lang: 0x4ae, script: 0x1f, flags: 0x0}, + 69: {lang: 0x3a, script: 0x5, flags: 0x0}, + 70: {lang: 0x15e, script: 0x57, flags: 0x0}, + 71: {lang: 0x15e, script: 0x57, flags: 0x0}, + 72: {lang: 0x35, script: 0x5, flags: 0x0}, + 73: {lang: 0x46b, script: 0xdf, flags: 0x0}, + 74: {lang: 0x2ec, script: 0x5, flags: 0x0}, + 75: {lang: 0x30f, script: 0x72, flags: 0x0}, + 76: {lang: 0x467, script: 0x1f, flags: 0x0}, + 77: {lang: 0x148, script: 0x5, flags: 0x0}, + 78: {lang: 0x3a, script: 0x5, flags: 0x0}, + 79: {lang: 0x15e, script: 0x57, flags: 0x0}, + 80: {lang: 0x48a, script: 0x57, flags: 0x0}, + 81: {lang: 0x58, script: 0x5, flags: 0x0}, + 82: {lang: 0x219, script: 0x1f, flags: 0x0}, + 83: {lang: 0x81, script: 0x31, flags: 0x0}, + 84: {lang: 0x529, script: 0x39, flags: 0x0}, + 85: {lang: 0x48c, script: 0x57, flags: 0x0}, + 86: {lang: 0x4ae, script: 0x1f, flags: 0x0}, + 87: {lang: 0x512, script: 0x3b, flags: 0x0}, + 88: {lang: 0x3b3, script: 0x57, flags: 0x0}, + 89: {lang: 0x431, script: 0x57, flags: 0x0}, + 90: {lang: 0x432, script: 0x1f, flags: 0x0}, + 91: {lang: 0x15e, script: 0x57, flags: 0x0}, + 92: {lang: 0x446, script: 0x5, flags: 0x0}, +} + +type likelyTag struct { + lang uint16 + region uint16 + script uint8 +} + +// Size: 198 bytes, 33 elements +var likelyRegionGroup = [33]likelyTag{ + 1: {lang: 0x139, region: 0xd6, script: 0x57}, + 2: {lang: 0x139, region: 0x135, script: 0x57}, + 3: {lang: 0x3c0, region: 0x41, script: 0x57}, + 4: {lang: 0x139, region: 0x2f, script: 0x57}, + 5: {lang: 0x139, region: 0xd6, script: 0x57}, + 6: {lang: 0x13e, region: 0xcf, script: 0x57}, + 7: {lang: 0x445, region: 0x12f, script: 0x57}, + 8: {lang: 0x3a, region: 0x6b, script: 0x5}, + 9: {lang: 0x445, region: 0x4b, script: 0x57}, + 10: {lang: 0x139, region: 0x161, script: 0x57}, + 11: {lang: 0x139, region: 0x135, script: 0x57}, + 12: {lang: 0x139, region: 0x135, script: 0x57}, + 13: {lang: 0x13e, region: 0x59, script: 0x57}, + 14: {lang: 0x529, region: 0x53, script: 0x38}, + 15: {lang: 0x1be, region: 0x99, script: 0x21}, + 16: {lang: 0x1e1, region: 0x95, script: 0x57}, + 17: {lang: 0x1f9, region: 0x9e, script: 0x57}, + 18: {lang: 0x139, region: 0x2f, script: 0x57}, + 19: {lang: 0x139, region: 0xe6, script: 0x57}, + 20: {lang: 0x139, region: 0x8a, script: 0x57}, + 21: {lang: 0x41b, region: 0x142, script: 0x57}, + 22: {lang: 0x529, region: 0x53, script: 0x38}, + 23: {lang: 0x4bc, region: 0x137, script: 0x57}, + 24: {lang: 0x3a, region: 0x108, script: 0x5}, + 25: {lang: 0x3e2, region: 0x106, script: 0x1f}, + 26: {lang: 0x3e2, region: 0x106, script: 0x1f}, + 27: {lang: 0x139, region: 0x7b, script: 0x57}, + 28: {lang: 0x10d, region: 0x60, script: 0x57}, + 29: {lang: 0x139, region: 0xd6, script: 0x57}, + 30: {lang: 0x13e, region: 0x1f, script: 0x57}, + 31: {lang: 0x139, region: 0x9a, script: 0x57}, + 32: {lang: 0x139, region: 0x7b, script: 0x57}, +} + +// Size: 358 bytes, 358 elements +var regionToGroups = [358]uint8{ // Entry 0 - 3F 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00, @@ -98,14 +3343,15 @@ var regionToGroups = []uint8{ // 357 elements 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, -} // Size: 381 bytes + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +} -var paradigmLocales = [][3]uint16{ // 3 elements +// Size: 18 bytes, 3 elements +var paradigmLocales = [3][3]uint16{ 0: [3]uint16{0x139, 0x0, 0x7b}, 1: [3]uint16{0x13e, 0x0, 0x1f}, 2: [3]uint16{0x3c0, 0x41, 0xee}, -} // Size: 42 bytes +} type mutualIntelligibility struct { want uint16 @@ -113,6 +3359,7 @@ type mutualIntelligibility struct { distance uint8 oneway bool } + type scriptIntelligibility struct { wantLang uint16 haveLang uint16 @@ -120,6 +3367,7 @@ type scriptIntelligibility struct { haveScript uint8 distance uint8 } + type regionIntelligibility struct { lang uint16 script uint8 @@ -130,7 +3378,8 @@ type regionIntelligibility struct { // 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. -var matchLang = []mutualIntelligibility{ // 113 elements +// Size: 678 bytes, 113 elements +var matchLang = [113]mutualIntelligibility{ 0: {want: 0x1d1, have: 0xb7, distance: 0x4, oneway: false}, 1: {want: 0x407, have: 0xb7, distance: 0x4, oneway: false}, 2: {want: 0x407, have: 0x1d1, distance: 0x4, oneway: false}, @@ -244,11 +3493,12 @@ var matchLang = []mutualIntelligibility{ // 113 elements 110: {want: 0x512, have: 0x139, distance: 0xa, oneway: true}, 111: {want: 0x518, have: 0x139, distance: 0xa, oneway: true}, 112: {want: 0x52f, have: 0x139, distance: 0xa, oneway: true}, -} // Size: 702 bytes +} // matchScript holds pairs of scriptIDs where readers of one script // can typically also read the other. Each is associated with a confidence. -var matchScript = []scriptIntelligibility{ // 26 elements +// Size: 208 bytes, 26 elements +var matchScript = [26]scriptIntelligibility{ 0: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x57, haveScript: 0x1f, distance: 0x5}, 1: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x1f, haveScript: 0x57, distance: 0x5}, 2: {wantLang: 0x58, haveLang: 0x3e2, wantScript: 0x57, haveScript: 0x1f, distance: 0xa}, @@ -275,9 +3525,10 @@ var matchScript = []scriptIntelligibility{ // 26 elements 23: {wantLang: 0x512, haveLang: 0x139, wantScript: 0x3b, haveScript: 0x57, distance: 0xa}, 24: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x38, haveScript: 0x39, distance: 0xf}, 25: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x39, haveScript: 0x38, distance: 0x13}, -} // Size: 232 bytes +} -var matchRegion = []regionIntelligibility{ // 15 elements +// Size: 90 bytes, 15 elements +var matchRegion = [15]regionIntelligibility{ 0: {lang: 0x3a, script: 0x0, group: 0x4, distance: 0x4}, 1: {lang: 0x3a, script: 0x0, group: 0x84, distance: 0x4}, 2: {lang: 0x139, script: 0x0, group: 0x1, distance: 0x4}, @@ -293,6 +3544,143 @@ var matchRegion = []regionIntelligibility{ // 15 elements 12: {lang: 0x13e, script: 0x0, group: 0x80, distance: 0x5}, 13: {lang: 0x3c0, script: 0x0, group: 0x80, distance: 0x5}, 14: {lang: 0x529, script: 0x39, group: 0x80, distance: 0x5}, -} // Size: 114 bytes +} -// Total table size 1471 bytes (1KiB); checksum: 4CB1CD46 +// Size: 264 bytes, 33 elements +var regionContainment = [33]uint64{ + // Entry 0 - 1F + 0x00000001ffffffff, 0x00000000200007a2, 0x0000000000003044, 0x0000000000000008, + 0x00000000803c0010, 0x0000000000000020, 0x0000000000000040, 0x0000000000000080, + 0x0000000000000100, 0x0000000000000200, 0x0000000000000400, 0x000000004000384c, + 0x0000000000001000, 0x0000000000002000, 0x0000000000004000, 0x0000000000008000, + 0x0000000000010000, 0x0000000000020000, 0x0000000000040000, 0x0000000000080000, + 0x0000000000100000, 0x0000000000200000, 0x0000000001c1c000, 0x0000000000800000, + 0x0000000001000000, 0x000000001e020000, 0x0000000004000000, 0x0000000008000000, + 0x0000000010000000, 0x00000000200006a0, 0x0000000040002048, 0x0000000080000000, + // Entry 20 - 3F + 0x0000000100000000, +} + +// 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. +// Size: 358 bytes, 358 elements +var regionInclusion = [358]uint8{ + // Entry 0 - 3F + 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x26, 0x23, + 0x24, 0x26, 0x27, 0x22, 0x28, 0x29, 0x2a, 0x2b, + 0x26, 0x2c, 0x24, 0x23, 0x26, 0x25, 0x2a, 0x2d, + 0x2e, 0x24, 0x2f, 0x2d, 0x26, 0x30, 0x31, 0x28, + // Entry 40 - 7F + 0x26, 0x28, 0x26, 0x25, 0x31, 0x22, 0x32, 0x33, + 0x34, 0x30, 0x22, 0x27, 0x27, 0x27, 0x35, 0x2d, + 0x29, 0x28, 0x27, 0x36, 0x28, 0x22, 0x34, 0x23, + 0x21, 0x26, 0x2d, 0x26, 0x22, 0x37, 0x2e, 0x35, + 0x2a, 0x22, 0x2f, 0x38, 0x26, 0x26, 0x21, 0x39, + 0x39, 0x28, 0x38, 0x39, 0x39, 0x2f, 0x3a, 0x2f, + 0x20, 0x21, 0x38, 0x3b, 0x28, 0x3c, 0x2c, 0x21, + 0x2a, 0x35, 0x27, 0x38, 0x26, 0x24, 0x28, 0x2c, + // Entry 80 - BF + 0x2d, 0x23, 0x30, 0x2d, 0x2d, 0x26, 0x27, 0x3a, + 0x22, 0x34, 0x3c, 0x2d, 0x28, 0x36, 0x22, 0x34, + 0x3a, 0x26, 0x2e, 0x21, 0x39, 0x31, 0x38, 0x24, + 0x2c, 0x25, 0x22, 0x24, 0x25, 0x2c, 0x3a, 0x2c, + 0x26, 0x24, 0x36, 0x21, 0x2f, 0x3d, 0x31, 0x3c, + 0x2f, 0x26, 0x36, 0x36, 0x24, 0x26, 0x3d, 0x31, + 0x24, 0x26, 0x35, 0x25, 0x2d, 0x32, 0x38, 0x2a, + 0x38, 0x39, 0x39, 0x35, 0x33, 0x23, 0x26, 0x2f, + // Entry C0 - FF + 0x3c, 0x21, 0x23, 0x2d, 0x31, 0x36, 0x36, 0x3c, + 0x26, 0x2d, 0x26, 0x3a, 0x2f, 0x25, 0x2f, 0x34, + 0x31, 0x2f, 0x32, 0x3b, 0x2d, 0x2b, 0x2d, 0x21, + 0x34, 0x2a, 0x2c, 0x25, 0x21, 0x3c, 0x24, 0x29, + 0x2b, 0x24, 0x34, 0x21, 0x28, 0x29, 0x3b, 0x31, + 0x25, 0x2e, 0x30, 0x29, 0x26, 0x24, 0x3a, 0x21, + 0x3c, 0x28, 0x21, 0x24, 0x21, 0x21, 0x1f, 0x21, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, + // Entry 100 - 13F + 0x21, 0x21, 0x2f, 0x21, 0x2e, 0x23, 0x33, 0x2f, + 0x24, 0x3b, 0x2f, 0x39, 0x38, 0x31, 0x2d, 0x3a, + 0x2c, 0x2e, 0x2d, 0x23, 0x2d, 0x2f, 0x28, 0x2f, + 0x27, 0x33, 0x34, 0x26, 0x24, 0x32, 0x22, 0x26, + 0x27, 0x22, 0x2d, 0x31, 0x3d, 0x29, 0x31, 0x3d, + 0x39, 0x29, 0x31, 0x24, 0x26, 0x29, 0x36, 0x2f, + 0x33, 0x2f, 0x21, 0x22, 0x21, 0x30, 0x28, 0x3d, + 0x23, 0x26, 0x21, 0x28, 0x26, 0x26, 0x31, 0x3b, + // Entry 140 - 17F + 0x29, 0x21, 0x29, 0x21, 0x21, 0x21, 0x21, 0x21, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x21, 0x21, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x24, 0x24, 0x2f, + 0x23, 0x32, 0x2f, 0x27, 0x2f, 0x21, +} + +// 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. +// Size: 584 bytes, 73 elements +var regionInclusionBits = [73]uint64{ + // Entry 0 - 1F + 0x0000000102400813, 0x00000000200007a3, 0x0000000000003844, 0x0000000040000808, + 0x00000000803c0011, 0x0000000020000022, 0x0000000040000844, 0x0000000020000082, + 0x0000000000000102, 0x0000000020000202, 0x0000000020000402, 0x000000004000384d, + 0x0000000000001804, 0x0000000040002804, 0x0000000000404000, 0x0000000000408000, + 0x0000000000410000, 0x0000000002020000, 0x0000000000040010, 0x0000000000080010, + 0x0000000000100010, 0x0000000000200010, 0x0000000001c1c001, 0x0000000000c00000, + 0x0000000001400000, 0x000000001e020001, 0x0000000006000000, 0x000000000a000000, + 0x0000000012000000, 0x00000000200006a2, 0x0000000040002848, 0x0000000080000010, + // Entry 20 - 3F + 0x0000000100000001, 0x0000000000000001, 0x0000000080000000, 0x0000000000020000, + 0x0000000001000000, 0x0000000000008000, 0x0000000000002000, 0x0000000000000200, + 0x0000000000000008, 0x0000000000200000, 0x0000000110000000, 0x0000000000040000, + 0x0000000008000000, 0x0000000000000020, 0x0000000104000000, 0x0000000000000080, + 0x0000000000001000, 0x0000000000010000, 0x0000000000000400, 0x0000000004000000, + 0x0000000000000040, 0x0000000010000000, 0x0000000000004000, 0x0000000101000000, + 0x0000000108000000, 0x0000000000000100, 0x0000000100020000, 0x0000000000080000, + 0x0000000000100000, 0x0000000000800000, 0x00000001ffffffff, 0x0000000122400fb3, + // Entry 40 - 5F + 0x00000001827c0813, 0x000000014240385f, 0x0000000103c1c813, 0x000000011e420813, + 0x0000000112000001, 0x0000000106000001, 0x0000000101400001, 0x000000010a000001, + 0x0000000102020001, +} + +// regionInclusionNext marks, for each entry in regionInclusionBits, the set of +// all groups that are reachable from the groups set in the respective entry. +// Size: 73 bytes, 73 elements +var regionInclusionNext = [73]uint8{ + // Entry 0 - 3F + 0x3e, 0x3f, 0x0b, 0x0b, 0x40, 0x01, 0x0b, 0x01, + 0x01, 0x01, 0x01, 0x41, 0x0b, 0x0b, 0x16, 0x16, + 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x42, 0x16, + 0x16, 0x43, 0x19, 0x19, 0x19, 0x01, 0x0b, 0x04, + 0x00, 0x00, 0x1f, 0x11, 0x18, 0x0f, 0x0d, 0x09, + 0x03, 0x15, 0x44, 0x12, 0x1b, 0x05, 0x45, 0x07, + 0x0c, 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x46, + 0x47, 0x08, 0x48, 0x13, 0x14, 0x17, 0x3e, 0x3e, + // Entry 40 - 7F + 0x3e, 0x3e, 0x3e, 0x3e, 0x43, 0x43, 0x42, 0x43, + 0x43, +} + +type parentRel struct { + lang uint16 + script uint8 + maxScript uint8 + toRegion uint16 + fromRegion []uint16 +} + +// Size: 414 bytes, 5 elements +var parents = [5]parentRel{ + 0: {lang: 0x139, script: 0x0, maxScript: 0x57, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x25, 0x26, 0x2f, 0x34, 0x36, 0x3d, 0x42, 0x46, 0x48, 0x49, 0x4a, 0x50, 0x52, 0x5c, 0x5d, 0x61, 0x64, 0x6d, 0x73, 0x74, 0x75, 0x7b, 0x7c, 0x7f, 0x80, 0x81, 0x83, 0x8c, 0x8d, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9f, 0xa0, 0xa4, 0xa7, 0xa9, 0xad, 0xb1, 0xb4, 0xb5, 0xbf, 0xc6, 0xca, 0xcb, 0xcc, 0xce, 0xd0, 0xd2, 0xd5, 0xd6, 0xdd, 0xdf, 0xe0, 0xe6, 0xe7, 0xe8, 0xeb, 0xf0, 0x107, 0x109, 0x10a, 0x10b, 0x10d, 0x10e, 0x112, 0x117, 0x11b, 0x11d, 0x11f, 0x125, 0x129, 0x12c, 0x12d, 0x12f, 0x131, 0x139, 0x13c, 0x13f, 0x142, 0x161, 0x162, 0x164}}, + 1: {lang: 0x139, script: 0x0, maxScript: 0x57, toRegion: 0x1a, fromRegion: []uint16{0x2e, 0x4e, 0x60, 0x63, 0x72, 0xd9, 0x10c, 0x10f}}, + 2: {lang: 0x13e, script: 0x0, maxScript: 0x57, toRegion: 0x1f, fromRegion: []uint16{0x2c, 0x3f, 0x41, 0x48, 0x51, 0x54, 0x56, 0x59, 0x65, 0x69, 0x89, 0x8f, 0xcf, 0xd8, 0xe2, 0xe4, 0xec, 0xf1, 0x11a, 0x135, 0x136, 0x13b}}, + 3: {lang: 0x3c0, script: 0x0, maxScript: 0x57, toRegion: 0xee, fromRegion: []uint16{0x2a, 0x4e, 0x5a, 0x86, 0x8b, 0xb7, 0xc6, 0xd1, 0x118, 0x126}}, + 4: {lang: 0x529, script: 0x39, maxScript: 0x39, toRegion: 0x8d, fromRegion: []uint16{0xc6}}, +} + +// Total table size 27238 bytes (26KiB); checksum: C9BBE4D5 diff --git a/vendor/golang.org/x/text/language/tags.go b/vendor/golang.org/x/text/language/tags.go index 42ea79266..de30155a2 100644 --- a/vendor/golang.org/x/text/language/tags.go +++ b/vendor/golang.org/x/text/language/tags.go @@ -4,8 +4,6 @@ package language -import "golang.org/x/text/internal/language/compact" - // TODO: Various sets of commonly use tags and regions. // MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. @@ -63,83 +61,83 @@ var ( Und Tag = Tag{} - Afrikaans Tag = Tag(compact.Afrikaans) - Amharic Tag = Tag(compact.Amharic) - Arabic Tag = Tag(compact.Arabic) - ModernStandardArabic Tag = Tag(compact.ModernStandardArabic) - Azerbaijani Tag = Tag(compact.Azerbaijani) - Bulgarian Tag = Tag(compact.Bulgarian) - Bengali Tag = Tag(compact.Bengali) - Catalan Tag = Tag(compact.Catalan) - Czech Tag = Tag(compact.Czech) - Danish Tag = Tag(compact.Danish) - German Tag = Tag(compact.German) - Greek Tag = Tag(compact.Greek) - English Tag = Tag(compact.English) - AmericanEnglish Tag = Tag(compact.AmericanEnglish) - BritishEnglish Tag = Tag(compact.BritishEnglish) - Spanish Tag = Tag(compact.Spanish) - EuropeanSpanish Tag = Tag(compact.EuropeanSpanish) - LatinAmericanSpanish Tag = Tag(compact.LatinAmericanSpanish) - Estonian Tag = Tag(compact.Estonian) - Persian Tag = Tag(compact.Persian) - Finnish Tag = Tag(compact.Finnish) - Filipino Tag = Tag(compact.Filipino) - French Tag = Tag(compact.French) - CanadianFrench Tag = Tag(compact.CanadianFrench) - Gujarati Tag = Tag(compact.Gujarati) - Hebrew Tag = Tag(compact.Hebrew) - Hindi Tag = Tag(compact.Hindi) - Croatian Tag = Tag(compact.Croatian) - Hungarian Tag = Tag(compact.Hungarian) - Armenian Tag = Tag(compact.Armenian) - Indonesian Tag = Tag(compact.Indonesian) - Icelandic Tag = Tag(compact.Icelandic) - Italian Tag = Tag(compact.Italian) - Japanese Tag = Tag(compact.Japanese) - Georgian Tag = Tag(compact.Georgian) - Kazakh Tag = Tag(compact.Kazakh) - Khmer Tag = Tag(compact.Khmer) - Kannada Tag = Tag(compact.Kannada) - Korean Tag = Tag(compact.Korean) - Kirghiz Tag = Tag(compact.Kirghiz) - Lao Tag = Tag(compact.Lao) - Lithuanian Tag = Tag(compact.Lithuanian) - Latvian Tag = Tag(compact.Latvian) - Macedonian Tag = Tag(compact.Macedonian) - Malayalam Tag = Tag(compact.Malayalam) - Mongolian Tag = Tag(compact.Mongolian) - Marathi Tag = Tag(compact.Marathi) - Malay Tag = Tag(compact.Malay) - Burmese Tag = Tag(compact.Burmese) - Nepali Tag = Tag(compact.Nepali) - Dutch Tag = Tag(compact.Dutch) - Norwegian Tag = Tag(compact.Norwegian) - Punjabi Tag = Tag(compact.Punjabi) - Polish Tag = Tag(compact.Polish) - Portuguese Tag = Tag(compact.Portuguese) - BrazilianPortuguese Tag = Tag(compact.BrazilianPortuguese) - EuropeanPortuguese Tag = Tag(compact.EuropeanPortuguese) - Romanian Tag = Tag(compact.Romanian) - Russian Tag = Tag(compact.Russian) - Sinhala Tag = Tag(compact.Sinhala) - Slovak Tag = Tag(compact.Slovak) - Slovenian Tag = Tag(compact.Slovenian) - Albanian Tag = Tag(compact.Albanian) - Serbian Tag = Tag(compact.Serbian) - SerbianLatin Tag = Tag(compact.SerbianLatin) - Swedish Tag = Tag(compact.Swedish) - Swahili Tag = Tag(compact.Swahili) - Tamil Tag = Tag(compact.Tamil) - Telugu Tag = Tag(compact.Telugu) - Thai Tag = Tag(compact.Thai) - Turkish Tag = Tag(compact.Turkish) - Ukrainian Tag = Tag(compact.Ukrainian) - Urdu Tag = Tag(compact.Urdu) - Uzbek Tag = Tag(compact.Uzbek) - Vietnamese Tag = Tag(compact.Vietnamese) - Chinese Tag = Tag(compact.Chinese) - SimplifiedChinese Tag = Tag(compact.SimplifiedChinese) - TraditionalChinese Tag = Tag(compact.TraditionalChinese) - Zulu Tag = Tag(compact.Zulu) + Afrikaans Tag = Tag{lang: _af} // af + Amharic Tag = Tag{lang: _am} // am + Arabic Tag = Tag{lang: _ar} // ar + ModernStandardArabic Tag = Tag{lang: _ar, region: _001} // ar-001 + Azerbaijani Tag = Tag{lang: _az} // az + Bulgarian Tag = Tag{lang: _bg} // bg + Bengali Tag = Tag{lang: _bn} // bn + Catalan Tag = Tag{lang: _ca} // ca + Czech Tag = Tag{lang: _cs} // cs + Danish Tag = Tag{lang: _da} // da + German Tag = Tag{lang: _de} // de + Greek Tag = Tag{lang: _el} // el + English Tag = Tag{lang: _en} // en + AmericanEnglish Tag = Tag{lang: _en, region: _US} // en-US + BritishEnglish Tag = Tag{lang: _en, region: _GB} // en-GB + Spanish Tag = Tag{lang: _es} // es + EuropeanSpanish Tag = Tag{lang: _es, region: _ES} // es-ES + LatinAmericanSpanish Tag = Tag{lang: _es, region: _419} // es-419 + Estonian Tag = Tag{lang: _et} // et + Persian Tag = Tag{lang: _fa} // fa + Finnish Tag = Tag{lang: _fi} // fi + Filipino Tag = Tag{lang: _fil} // fil + French Tag = Tag{lang: _fr} // fr + CanadianFrench Tag = Tag{lang: _fr, region: _CA} // fr-CA + Gujarati Tag = Tag{lang: _gu} // gu + Hebrew Tag = Tag{lang: _he} // he + Hindi Tag = Tag{lang: _hi} // hi + Croatian Tag = Tag{lang: _hr} // hr + Hungarian Tag = Tag{lang: _hu} // hu + Armenian Tag = Tag{lang: _hy} // hy + Indonesian Tag = Tag{lang: _id} // id + Icelandic Tag = Tag{lang: _is} // is + Italian Tag = Tag{lang: _it} // it + Japanese Tag = Tag{lang: _ja} // ja + Georgian Tag = Tag{lang: _ka} // ka + Kazakh Tag = Tag{lang: _kk} // kk + Khmer Tag = Tag{lang: _km} // km + Kannada Tag = Tag{lang: _kn} // kn + Korean Tag = Tag{lang: _ko} // ko + Kirghiz Tag = Tag{lang: _ky} // ky + Lao Tag = Tag{lang: _lo} // lo + Lithuanian Tag = Tag{lang: _lt} // lt + Latvian Tag = Tag{lang: _lv} // lv + Macedonian Tag = Tag{lang: _mk} // mk + Malayalam Tag = Tag{lang: _ml} // ml + Mongolian Tag = Tag{lang: _mn} // mn + Marathi Tag = Tag{lang: _mr} // mr + Malay Tag = Tag{lang: _ms} // ms + Burmese Tag = Tag{lang: _my} // my + Nepali Tag = Tag{lang: _ne} // ne + Dutch Tag = Tag{lang: _nl} // nl + Norwegian Tag = Tag{lang: _no} // no + Punjabi Tag = Tag{lang: _pa} // pa + Polish Tag = Tag{lang: _pl} // pl + Portuguese Tag = Tag{lang: _pt} // pt + BrazilianPortuguese Tag = Tag{lang: _pt, region: _BR} // pt-BR + EuropeanPortuguese Tag = Tag{lang: _pt, region: _PT} // pt-PT + Romanian Tag = Tag{lang: _ro} // ro + Russian Tag = Tag{lang: _ru} // ru + Sinhala Tag = Tag{lang: _si} // si + Slovak Tag = Tag{lang: _sk} // sk + Slovenian Tag = Tag{lang: _sl} // sl + Albanian Tag = Tag{lang: _sq} // sq + Serbian Tag = Tag{lang: _sr} // sr + SerbianLatin Tag = Tag{lang: _sr, script: _Latn} // sr-Latn + Swedish Tag = Tag{lang: _sv} // sv + Swahili Tag = Tag{lang: _sw} // sw + Tamil Tag = Tag{lang: _ta} // ta + Telugu Tag = Tag{lang: _te} // te + Thai Tag = Tag{lang: _th} // th + Turkish Tag = Tag{lang: _tr} // tr + Ukrainian Tag = Tag{lang: _uk} // uk + Urdu Tag = Tag{lang: _ur} // ur + Uzbek Tag = Tag{lang: _uz} // uz + Vietnamese Tag = Tag{lang: _vi} // vi + Chinese Tag = Tag{lang: _zh} // zh + SimplifiedChinese Tag = Tag{lang: _zh, script: _Hans} // zh-Hans + TraditionalChinese Tag = Tag{lang: _zh, script: _Hant} // zh-Hant + Zulu Tag = Tag{lang: _zu} // zu ) diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go index 520b9ada0..fe47b9b35 100644 --- a/vendor/golang.org/x/text/transform/transform.go +++ b/vendor/golang.org/x/text/transform/transform.go @@ -78,8 +78,8 @@ type SpanningTransformer interface { // considering the error err. // // A nil error means that all input bytes are known to be identical to the - // output produced by the Transformer. A nil error can be returned - // regardless of whether atEOF is true. If err is nil, then n must + // output produced by the Transformer. A nil error can be be returned + // regardless of whether atEOF is true. If err is nil, then then n must // equal len(src); the converse is not necessarily true. // // ErrEndOfSpan means that the Transformer output may differ from the @@ -493,7 +493,7 @@ func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err erro return dstL.n, srcL.p, err } -// Deprecated: Use runes.Remove instead. +// Deprecated: use runes.Remove instead. func RemoveFunc(f func(r rune) bool) Transformer { return removeF(f) } diff --git a/vendor/golang.org/x/text/unicode/bidi/bidi.go b/vendor/golang.org/x/text/unicode/bidi/bidi.go index e8edc54cc..3fc4a6252 100644 --- a/vendor/golang.org/x/text/unicode/bidi/bidi.go +++ b/vendor/golang.org/x/text/unicode/bidi/bidi.go @@ -6,7 +6,7 @@ // Package bidi contains functionality for bidirectional text support. // -// See https://www.unicode.org/reports/tr9. +// See http://www.unicode.org/reports/tr9. // // NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways // and without notice. diff --git a/vendor/golang.org/x/text/unicode/bidi/bracket.go b/vendor/golang.org/x/text/unicode/bidi/bracket.go index 185393979..601e25920 100644 --- a/vendor/golang.org/x/text/unicode/bidi/bracket.go +++ b/vendor/golang.org/x/text/unicode/bidi/bracket.go @@ -12,7 +12,7 @@ import ( // This file contains a port of the reference implementation of the // Bidi Parentheses Algorithm: -// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java +// http://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java // // The implementation in this file covers definitions BD14-BD16 and rule N0 // of UAX#9. @@ -246,7 +246,7 @@ func (p *bracketPairer) getStrongTypeN0(index int) Class { // assuming the given embedding direction. // // It returns ON if no strong type is found. If a single strong type is found, -// it returns this type. Otherwise it returns the embedding direction. +// it returns this this type. Otherwise it returns the embedding direction. // // TODO: use separate type for "strong" directionality. func (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class { diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go index 48d144008..d4c1399f0 100644 --- a/vendor/golang.org/x/text/unicode/bidi/core.go +++ b/vendor/golang.org/x/text/unicode/bidi/core.go @@ -7,7 +7,7 @@ package bidi import "log" // This implementation is a port based on the reference implementation found at: -// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/ +// http://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/ // // described in Unicode Bidirectional Algorithm (UAX #9). // diff --git a/vendor/golang.org/x/text/unicode/bidi/gen.go b/vendor/golang.org/x/text/unicode/bidi/gen.go index 987fc169c..4e1c7ba0b 100644 --- a/vendor/golang.org/x/text/unicode/bidi/gen.go +++ b/vendor/golang.org/x/text/unicode/bidi/gen.go @@ -26,7 +26,7 @@ func main() { } // bidiClass names and codes taken from class "bc" in -// https://www.unicode.org/Public/8.0.0/ucd/PropertyValueAliases.txt +// http://www.unicode.org/Public/8.0.0/ucd/PropertyValueAliases.txt var bidiClass = map[string]Class{ "AL": AL, // ArabicLetter "AN": AN, // ArabicNumber diff --git a/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go b/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go index 02c3b505d..51bd68fa7 100644 --- a/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go +++ b/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go @@ -15,7 +15,7 @@ import ( ) // These tables are hand-extracted from: -// https://www.unicode.org/Public/8.0.0/ucd/extracted/DerivedBidiClass.txt +// 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{ diff --git a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go index d8c94e1bd..2e1ff1959 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go @@ -1,6 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -// +build go1.10,!go1.13 +// +build go1.10 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go deleted file mode 100644 index 022e3c690..000000000 --- a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +++ /dev/null @@ -1,1887 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -// +build go1.13 - -package bidi - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "11.0.0" - -// xorMasks contains masks to be xor-ed with brackets to get the reverse -// version. -var xorMasks = []int32{ // 8 elements - 0, 1, 6, 7, 3, 15, 29, 63, -} // Size: 56 bytes - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return bidiValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := bidiIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := bidiIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = bidiIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := bidiIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = bidiIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = bidiIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *bidiTrie) lookupUnsafe(s []byte) uint8 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return bidiValues[c0] - } - i := bidiIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = bidiIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = bidiIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *bidiTrie) lookupString(s string) (v uint8, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return bidiValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := bidiIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := bidiIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = bidiIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := bidiIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = bidiIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = bidiIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *bidiTrie) lookupStringUnsafe(s string) uint8 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return bidiValues[c0] - } - i := bidiIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = bidiIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = bidiIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// bidiTrie. Total size: 16512 bytes (16.12 KiB). Checksum: 2a9cf1317f2ffaa. -type bidiTrie struct{} - -func newBidiTrie(i int) *bidiTrie { - return &bidiTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { - switch { - default: - return uint8(bidiValues[n<<6+uint32(b)]) - } -} - -// bidiValues: 234 blocks, 14976 entries, 14976 bytes -// The third block is the zero block. -var bidiValues = [14976]uint8{ - // Block 0x0, offset 0x0 - 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, - 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, - 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, - 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, - 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, - 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, - 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, - 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, - 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, - 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, - 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, - // Block 0x1, offset 0x40 - 0x40: 0x000a, - 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, - 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, - 0x7b: 0x005a, - 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, - 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, - 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, - 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, - 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, - 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, - 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, - 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, - 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, - 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, - 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, - // Block 0x4, offset 0x100 - 0x117: 0x000a, - 0x137: 0x000a, - // Block 0x5, offset 0x140 - 0x179: 0x000a, 0x17a: 0x000a, - // Block 0x6, offset 0x180 - 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, - 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, - 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, - 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, - 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, - 0x19e: 0x000a, 0x19f: 0x000a, - 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, - 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, - 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, - 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, - 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, - 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, - 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, - 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, - 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, - 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, - 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, - 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, - 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, - 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, - 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, - // Block 0x8, offset 0x200 - 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, - 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, - 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, - 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, - 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, - 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, - 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, - 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, - 0x234: 0x000a, 0x235: 0x000a, - 0x23e: 0x000a, - // Block 0x9, offset 0x240 - 0x244: 0x000a, 0x245: 0x000a, - 0x247: 0x000a, - // Block 0xa, offset 0x280 - 0x2b6: 0x000a, - // Block 0xb, offset 0x2c0 - 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, - 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, - // Block 0xc, offset 0x300 - 0x30a: 0x000a, - 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, - 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, - 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, - 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, - 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, - 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, - 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, - 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, - 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, - // Block 0xd, offset 0x340 - 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, - 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, - 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, - 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, - 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, - 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, - 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, - 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, - 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, - 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, - 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, - // Block 0xe, offset 0x380 - 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, - 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, - 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, - 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, - 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, - 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, - 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, - 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, - 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, - 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, - 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, - 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, - 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, - 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, - 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, - 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, - 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, - 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, - 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, - 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, - 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, - // Block 0x10, offset 0x400 - 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, - 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, - 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, - 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, - 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, - 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, - 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, - 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, - 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, - 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, - 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, - // Block 0x11, offset 0x440 - 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, - 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, - 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, - 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, - 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, - 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, - 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, - 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, - 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, - 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, - 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, - // Block 0x12, offset 0x480 - 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, - 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, - 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, - 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, - 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, - 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, - 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, - 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, - 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, - 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, - 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, - 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, - 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, - 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, - 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, - 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, - 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, - 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, - 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, - 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, - 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, - // Block 0x14, offset 0x500 - 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, - 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, - 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, - 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, - 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, - 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, - 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, - 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, - 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, - 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, - 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, - // Block 0x15, offset 0x540 - 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, - 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, - 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, - 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, - 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, - 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, - 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, - 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, - 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, - 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, - 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001, - // Block 0x16, offset 0x580 - 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, - 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, - 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, - 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, - 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, - 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, - 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, - 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, - 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, - 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, - 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, - 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, - 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, - 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, - 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, - 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d, - 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d, - 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d, - 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001, - 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001, - 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001, - // Block 0x18, offset 0x600 - 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001, - 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001, - 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001, - 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, - 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001, - 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, - 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, - 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, - 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, - 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, - 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, - // Block 0x19, offset 0x640 - 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, - 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d, - 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d, - 0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, - 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, - 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, - 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, - 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, - 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, - 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, - 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, - // Block 0x1a, offset 0x680 - 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, - 0x6ba: 0x000c, - 0x6bc: 0x000c, - // Block 0x1b, offset 0x6c0 - 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, - 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, - 0x6cd: 0x000c, 0x6d1: 0x000c, - 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, - 0x6e2: 0x000c, 0x6e3: 0x000c, - // Block 0x1c, offset 0x700 - 0x701: 0x000c, - 0x73c: 0x000c, - // Block 0x1d, offset 0x740 - 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, - 0x74d: 0x000c, - 0x762: 0x000c, 0x763: 0x000c, - 0x772: 0x0004, 0x773: 0x0004, - 0x77b: 0x0004, - 0x77e: 0x000c, - // Block 0x1e, offset 0x780 - 0x781: 0x000c, 0x782: 0x000c, - 0x7bc: 0x000c, - // Block 0x1f, offset 0x7c0 - 0x7c1: 0x000c, 0x7c2: 0x000c, - 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, - 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, - 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, - // Block 0x20, offset 0x800 - 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, - 0x807: 0x000c, 0x808: 0x000c, - 0x80d: 0x000c, - 0x822: 0x000c, 0x823: 0x000c, - 0x831: 0x0004, - 0x83a: 0x000c, 0x83b: 0x000c, - 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c, - // Block 0x21, offset 0x840 - 0x841: 0x000c, - 0x87c: 0x000c, 0x87f: 0x000c, - // Block 0x22, offset 0x880 - 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, - 0x88d: 0x000c, - 0x896: 0x000c, - 0x8a2: 0x000c, 0x8a3: 0x000c, - // Block 0x23, offset 0x8c0 - 0x8c2: 0x000c, - // Block 0x24, offset 0x900 - 0x900: 0x000c, - 0x90d: 0x000c, - 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, - 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, - // Block 0x25, offset 0x940 - 0x940: 0x000c, 0x944: 0x000c, - 0x97e: 0x000c, 0x97f: 0x000c, - // Block 0x26, offset 0x980 - 0x980: 0x000c, - 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, - 0x98c: 0x000c, 0x98d: 0x000c, - 0x995: 0x000c, 0x996: 0x000c, - 0x9a2: 0x000c, 0x9a3: 0x000c, - 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, - 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, - // Block 0x27, offset 0x9c0 - 0x9cc: 0x000c, 0x9cd: 0x000c, - 0x9e2: 0x000c, 0x9e3: 0x000c, - // Block 0x28, offset 0xa00 - 0xa00: 0x000c, 0xa01: 0x000c, - 0xa3b: 0x000c, - 0xa3c: 0x000c, - // Block 0x29, offset 0xa40 - 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, - 0xa4d: 0x000c, - 0xa62: 0x000c, 0xa63: 0x000c, - // Block 0x2a, offset 0xa80 - 0xa8a: 0x000c, - 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c, - // Block 0x2b, offset 0xac0 - 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c, - 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c, - 0xaff: 0x0004, - // Block 0x2c, offset 0xb00 - 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c, - 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c, - // Block 0x2d, offset 0xb40 - 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c, - 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c, - 0xb7c: 0x000c, - // Block 0x2e, offset 0xb80 - 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c, - 0xb8c: 0x000c, 0xb8d: 0x000c, - // Block 0x2f, offset 0xbc0 - 0xbd8: 0x000c, 0xbd9: 0x000c, - 0xbf5: 0x000c, - 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a, - 0xbfc: 0x003a, 0xbfd: 0x002a, - // Block 0x30, offset 0xc00 - 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c, - 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c, - 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c, - // Block 0x31, offset 0xc40 - 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c, - 0xc46: 0x000c, 0xc47: 0x000c, - 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c, - 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c, - 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c, - 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c, - 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c, - 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c, - 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, - 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, - 0xc7c: 0x000c, - // Block 0x32, offset 0xc80 - 0xc86: 0x000c, - // Block 0x33, offset 0xcc0 - 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c, - 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c, - 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c, - 0xcfd: 0x000c, 0xcfe: 0x000c, - // Block 0x34, offset 0xd00 - 0xd18: 0x000c, 0xd19: 0x000c, - 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c, - 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, - // Block 0x35, offset 0xd40 - 0xd42: 0x000c, 0xd45: 0x000c, - 0xd46: 0x000c, - 0xd4d: 0x000c, - 0xd5d: 0x000c, - // Block 0x36, offset 0xd80 - 0xd9d: 0x000c, - 0xd9e: 0x000c, 0xd9f: 0x000c, - // Block 0x37, offset 0xdc0 - 0xdd0: 0x000a, 0xdd1: 0x000a, - 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a, - 0xdd8: 0x000a, 0xdd9: 0x000a, - // Block 0x38, offset 0xe00 - 0xe00: 0x000a, - // Block 0x39, offset 0xe40 - 0xe40: 0x0009, - 0xe5b: 0x007a, 0xe5c: 0x006a, - // Block 0x3a, offset 0xe80 - 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c, - 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c, - // Block 0x3b, offset 0xec0 - 0xed2: 0x000c, 0xed3: 0x000c, - 0xef2: 0x000c, 0xef3: 0x000c, - // Block 0x3c, offset 0xf00 - 0xf34: 0x000c, 0xf35: 0x000c, - 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c, - 0xf3c: 0x000c, 0xf3d: 0x000c, - // Block 0x3d, offset 0xf40 - 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c, - 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c, - 0xf52: 0x000c, 0xf53: 0x000c, - 0xf5b: 0x0004, 0xf5d: 0x000c, - 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a, - 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a, - // Block 0x3e, offset 0xf80 - 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a, - 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c, - 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b, - // Block 0x3f, offset 0xfc0 - 0xfc5: 0x000c, - 0xfc6: 0x000c, - 0xfe9: 0x000c, - // Block 0x40, offset 0x1000 - 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c, - 0x1027: 0x000c, 0x1028: 0x000c, - 0x1032: 0x000c, - 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c, - // Block 0x41, offset 0x1040 - 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a, - // Block 0x42, offset 0x1080 - 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a, - 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a, - 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a, - 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a, - 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a, - 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a, - // Block 0x43, offset 0x10c0 - 0x10d7: 0x000c, - 0x10d8: 0x000c, 0x10db: 0x000c, - // Block 0x44, offset 0x1100 - 0x1116: 0x000c, - 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c, - 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c, - 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c, - 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c, - 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c, - 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c, - 0x113c: 0x000c, 0x113f: 0x000c, - // Block 0x45, offset 0x1140 - 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, - 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, - 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c, - // Block 0x46, offset 0x1180 - 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c, - 0x11b4: 0x000c, - 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, - 0x11bc: 0x000c, - // Block 0x47, offset 0x11c0 - 0x11c2: 0x000c, - 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c, - 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c, - // Block 0x48, offset 0x1200 - 0x1200: 0x000c, 0x1201: 0x000c, - 0x1222: 0x000c, 0x1223: 0x000c, - 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c, - 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c, - // Block 0x49, offset 0x1240 - 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c, - 0x126d: 0x000c, 0x126f: 0x000c, - 0x1270: 0x000c, 0x1271: 0x000c, - // Block 0x4a, offset 0x1280 - 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c, - 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c, - 0x12b6: 0x000c, 0x12b7: 0x000c, - // Block 0x4b, offset 0x12c0 - 0x12d0: 0x000c, 0x12d1: 0x000c, - 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c, - 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c, - 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c, - 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c, - 0x12ed: 0x000c, - 0x12f4: 0x000c, - 0x12f8: 0x000c, 0x12f9: 0x000c, - // Block 0x4c, offset 0x1300 - 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c, - 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c, - 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c, - 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c, - 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c, - 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c, - 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c, - 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, - 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c, - 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c, - 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c, - // Block 0x4d, offset 0x1340 - 0x137d: 0x000a, 0x137f: 0x000a, - // Block 0x4e, offset 0x1380 - 0x1380: 0x000a, 0x1381: 0x000a, - 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a, - 0x139d: 0x000a, - 0x139e: 0x000a, 0x139f: 0x000a, - 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a, - 0x13bd: 0x000a, 0x13be: 0x000a, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009, - 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b, - 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a, - 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a, - 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a, - 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a, - 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007, - 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006, - 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a, - 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a, - 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a, - // Block 0x50, offset 0x1400 - 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a, - 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a, - 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a, - 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a, - 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a, - 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b, - 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e, - 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b, - 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002, - 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003, - 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a, - // Block 0x51, offset 0x1440 - 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002, - 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003, - 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a, - 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004, - 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004, - 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004, - 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004, - 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004, - 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004, - // Block 0x52, offset 0x1480 - 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004, - 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004, - 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c, - 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c, - 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c, - 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c, - 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c, - 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c, - 0x14b0: 0x000c, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a, - 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a, - 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a, - 0x14d8: 0x000a, - 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a, - 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a, - 0x14ee: 0x0004, - 0x14fa: 0x000a, 0x14fb: 0x000a, - // Block 0x54, offset 0x1500 - 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, - 0x150a: 0x000a, 0x150b: 0x000a, - 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a, - 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a, - 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a, - 0x151e: 0x000a, 0x151f: 0x000a, - // Block 0x55, offset 0x1540 - 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a, - 0x1550: 0x000a, 0x1551: 0x000a, - 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, - 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a, - 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a, - 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a, - 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a, - 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a, - 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a, - 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a, - // Block 0x56, offset 0x1580 - 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a, - 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a, - 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a, - 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, - 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, - 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a, - 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a, - 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a, - 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a, - 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a, - 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a, - 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, - 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a, - 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, - 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, - 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, - 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, - 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, - 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, - 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, - 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, - // Block 0x58, offset 0x1600 - 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, - 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a, - 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, - 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, - 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, - 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, - 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a, - 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, - 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, - // Block 0x59, offset 0x1640 - 0x167b: 0x000a, - 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a, - // Block 0x5a, offset 0x1680 - 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a, - 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a, - 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a, - 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a, - 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a, - 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a, - 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a, - 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a, - 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a, - 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a, - 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a, - 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a, - 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a, - 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a, - 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a, - 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a, - 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, - // Block 0x5c, offset 0x1700 - 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, - 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, - 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, - 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a, - 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a, - 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a, - 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a, - 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a, - // Block 0x5d, offset 0x1740 - 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, - 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002, - 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002, - 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002, - 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002, - // Block 0x5e, offset 0x1780 - 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a, - 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a, - 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a, - 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a, - // Block 0x5f, offset 0x17c0 - 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a, - 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a, - 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a, - 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a, - 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a, - 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a, - 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a, - 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a, - 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a, - 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a, - 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a, - // Block 0x60, offset 0x1800 - 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a, - 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a, - 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a, - 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a, - 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a, - 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a, - 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a, - 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a, - 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a, - 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, - 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, - // Block 0x61, offset 0x1840 - 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a, - 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, - 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, - 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, - 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, - 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, - 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a, - 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a, - 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a, - 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, - 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, - // Block 0x62, offset 0x1880 - 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a, - 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a, - 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a, - 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba, - 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, - 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, - 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a, - 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a, - 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a, - 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, - 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, - // Block 0x63, offset 0x18c0 - 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a, - 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a, - 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a, - 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a, - 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a, - 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, - 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a, - 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a, - 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, - 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, - 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a, - // Block 0x64, offset 0x1900 - 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a, - 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a, - 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a, - 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a, - 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a, - 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, - 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, - 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, - 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, - 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, - 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a, - // Block 0x65, offset 0x1940 - 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, - 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, - 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, - 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, - 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a, - 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, - 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, - 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, - 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a, - 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a, - 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a, - // Block 0x66, offset 0x1980 - 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a, - 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a, - 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a, - 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a, - 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a, - 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a, - 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a, - 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a, - 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a, - 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a, - 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, - // Block 0x67, offset 0x19c0 - 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a, - 0x19ea: 0x000a, 0x19ef: 0x000c, - 0x19f0: 0x000c, 0x19f1: 0x000c, - 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a, - 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a, - // Block 0x68, offset 0x1a00 - 0x1a3f: 0x000c, - // Block 0x69, offset 0x1a40 - 0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c, - 0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c, - 0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c, - 0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c, - 0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c, - 0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c, - // Block 0x6a, offset 0x1a80 - 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a, - 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a, - 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a, - 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a, - 0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a, - 0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a, - 0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a, - 0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a, - 0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a, - 0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a, - 0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a, - // Block 0x6b, offset 0x1ac0 - 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, - 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a, - 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, - // Block 0x6c, offset 0x1b00 - 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a, - 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a, - 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a, - 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a, - 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a, - 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a, - 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a, - 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a, - 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a, - 0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a, - 0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a, - // Block 0x6d, offset 0x1b40 - 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, - 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, - 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, - 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a, - 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a, - 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a, - 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a, - 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a, - 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, - // Block 0x6e, offset 0x1b80 - 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a, - 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a, - 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a, - 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, - 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a, - 0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a, - // Block 0x6f, offset 0x1bc0 - 0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, - 0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a, - 0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a, - 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a, - 0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a, - 0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a, - 0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c, - 0x1bf0: 0x000a, - 0x1bf6: 0x000a, 0x1bf7: 0x000a, - 0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a, - // Block 0x70, offset 0x1c00 - 0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a, - 0x1c20: 0x000a, - // Block 0x71, offset 0x1c40 - 0x1c7b: 0x000a, - // Block 0x72, offset 0x1c80 - 0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a, - 0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a, - 0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a, - 0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a, - 0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a, - 0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a, - // Block 0x73, offset 0x1cc0 - 0x1cdd: 0x000a, - 0x1cde: 0x000a, - // Block 0x74, offset 0x1d00 - 0x1d10: 0x000a, 0x1d11: 0x000a, - 0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a, - 0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a, - 0x1d1e: 0x000a, 0x1d1f: 0x000a, - 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, - // Block 0x75, offset 0x1d40 - 0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a, - 0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a, - 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a, - // Block 0x76, offset 0x1d80 - 0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a, - // Block 0x77, offset 0x1dc0 - 0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a, - // Block 0x78, offset 0x1e00 - 0x1e1e: 0x000a, 0x1e1f: 0x000a, - 0x1e3f: 0x000a, - // Block 0x79, offset 0x1e40 - 0x1e50: 0x000a, 0x1e51: 0x000a, - 0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a, - 0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a, - 0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a, - 0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a, - 0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a, - 0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a, - 0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a, - 0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a, - // Block 0x7a, offset 0x1e80 - 0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a, - 0x1e86: 0x000a, - // Block 0x7b, offset 0x1ec0 - 0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a, - // Block 0x7c, offset 0x1f00 - 0x1f2f: 0x000c, - 0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c, - 0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c, - 0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a, - // Block 0x7d, offset 0x1f40 - 0x1f5e: 0x000c, 0x1f5f: 0x000c, - // Block 0x7e, offset 0x1f80 - 0x1fb0: 0x000c, 0x1fb1: 0x000c, - // Block 0x7f, offset 0x1fc0 - 0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a, - 0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a, - 0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a, - 0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a, - 0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a, - 0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a, - // Block 0x80, offset 0x2000 - 0x2008: 0x000a, - // Block 0x81, offset 0x2040 - 0x2042: 0x000c, - 0x2046: 0x000c, 0x204b: 0x000c, - 0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a, - 0x206a: 0x000a, 0x206b: 0x000a, - 0x2078: 0x0004, 0x2079: 0x0004, - // Block 0x82, offset 0x2080 - 0x20b4: 0x000a, 0x20b5: 0x000a, - 0x20b6: 0x000a, 0x20b7: 0x000a, - // Block 0x83, offset 0x20c0 - 0x20c4: 0x000c, 0x20c5: 0x000c, - 0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c, - 0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c, - 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c, - 0x20f0: 0x000c, 0x20f1: 0x000c, - 0x20ff: 0x000c, - // Block 0x84, offset 0x2100 - 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c, - 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, - // Block 0x85, offset 0x2140 - 0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c, - 0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c, - // Block 0x86, offset 0x2180 - 0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c, - 0x21b3: 0x000c, - 0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c, - 0x21bc: 0x000c, - // Block 0x87, offset 0x21c0 - 0x21e5: 0x000c, - // Block 0x88, offset 0x2200 - 0x2229: 0x000c, - 0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c, - 0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c, - 0x2236: 0x000c, - // Block 0x89, offset 0x2240 - 0x2243: 0x000c, - 0x224c: 0x000c, - 0x227c: 0x000c, - // Block 0x8a, offset 0x2280 - 0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c, - 0x22b7: 0x000c, 0x22b8: 0x000c, - 0x22be: 0x000c, 0x22bf: 0x000c, - // Block 0x8b, offset 0x22c0 - 0x22c1: 0x000c, - 0x22ec: 0x000c, 0x22ed: 0x000c, - 0x22f6: 0x000c, - // Block 0x8c, offset 0x2300 - 0x2325: 0x000c, 0x2328: 0x000c, - 0x232d: 0x000c, - // Block 0x8d, offset 0x2340 - 0x235d: 0x0001, - 0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001, - 0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003, - 0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001, - 0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001, - 0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001, - 0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001, - // Block 0x8e, offset 0x2380 - 0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001, - 0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001, - 0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d, - 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d, - 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d, - 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d, - 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d, - 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d, - 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d, - 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d, - 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d, - // Block 0x8f, offset 0x23c0 - 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d, - 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d, - 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d, - 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d, - 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d, - 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d, - 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d, - 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d, - 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d, - 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d, - 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a, - // Block 0x90, offset 0x2400 - 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d, - 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d, - 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b, - 0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b, - 0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b, - 0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b, - 0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b, - 0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b, - 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d, - 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d, - 0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d, - // Block 0x91, offset 0x2440 - 0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c, - 0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c, - 0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a, - 0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a, - 0x2458: 0x000a, 0x2459: 0x000a, - 0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c, - 0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c, - 0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c, - 0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a, - 0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a, - 0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a, - // Block 0x92, offset 0x2480 - 0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a, - 0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a, - 0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a, - 0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a, - 0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a, - 0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003, - 0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004, - 0x24aa: 0x0004, 0x24ab: 0x000a, - 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d, - 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d, - 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d, - // Block 0x93, offset 0x24c0 - 0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d, - 0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d, - 0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d, - 0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d, - 0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d, - 0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d, - 0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d, - 0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d, - 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d, - 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d, - 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b, - // Block 0x94, offset 0x2500 - 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004, - 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003, - 0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002, - 0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002, - 0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a, - 0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a, - 0x253b: 0x005a, - 0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a, - // Block 0x95, offset 0x2540 - 0x2540: 0x000a, - 0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a, - 0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a, - 0x2564: 0x000a, 0x2565: 0x000a, - // Block 0x96, offset 0x2580 - 0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a, - 0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a, - 0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a, - 0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b, - 0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a, - 0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b, - // Block 0x97, offset 0x25c0 - 0x25c1: 0x000a, - // Block 0x98, offset 0x2600 - 0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a, - 0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a, - 0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a, - 0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a, - 0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a, - 0x2620: 0x000a, - // Block 0x99, offset 0x2640 - 0x267d: 0x000c, - // Block 0x9a, offset 0x2680 - 0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002, - 0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002, - 0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002, - 0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002, - 0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002, - // Block 0x9b, offset 0x26c0 - 0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c, - // Block 0x9c, offset 0x2700 - 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001, - 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001, - 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001, - 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001, - 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001, - 0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001, - 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001, - 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001, - 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001, - 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001, - 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001, - // Block 0x9d, offset 0x2740 - 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001, - 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001, - 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001, - 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001, - 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001, - 0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001, - 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001, - 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001, - 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001, - 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001, - 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001, - // Block 0x9e, offset 0x2780 - 0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c, - 0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, - 0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001, - 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, - 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, - 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, - 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, - 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, - 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, - 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001, - 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c, - // Block 0x9f, offset 0x27c0 - 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001, - 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, - 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001, - 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, - 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, - 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, - 0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, - 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, - 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, - 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001, - 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001, - // Block 0xa0, offset 0x2800 - 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001, - 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001, - 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001, - 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001, - 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001, - 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001, - 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001, - 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001, - 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001, - 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a, - 0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a, - // Block 0xa1, offset 0x2840 - 0x2840: 0x000d, 0x2841: 0x000d, 0x2842: 0x000d, 0x2843: 0x000d, 0x2844: 0x000d, 0x2845: 0x000d, - 0x2846: 0x000d, 0x2847: 0x000d, 0x2848: 0x000d, 0x2849: 0x000d, 0x284a: 0x000d, 0x284b: 0x000d, - 0x284c: 0x000d, 0x284d: 0x000d, 0x284e: 0x000d, 0x284f: 0x000d, 0x2850: 0x000d, 0x2851: 0x000d, - 0x2852: 0x000d, 0x2853: 0x000d, 0x2854: 0x000d, 0x2855: 0x000d, 0x2856: 0x000d, 0x2857: 0x000d, - 0x2858: 0x000d, 0x2859: 0x000d, 0x285a: 0x000d, 0x285b: 0x000d, 0x285c: 0x000d, 0x285d: 0x000d, - 0x285e: 0x000d, 0x285f: 0x000d, 0x2860: 0x000d, 0x2861: 0x000d, 0x2862: 0x000d, 0x2863: 0x000d, - 0x2864: 0x000c, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x000c, 0x2868: 0x000d, 0x2869: 0x000d, - 0x286a: 0x000d, 0x286b: 0x000d, 0x286c: 0x000d, 0x286d: 0x000d, 0x286e: 0x000d, 0x286f: 0x000d, - 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005, - 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x000d, 0x287b: 0x000d, - 0x287c: 0x000d, 0x287d: 0x000d, 0x287e: 0x000d, 0x287f: 0x000d, - // Block 0xa2, offset 0x2880 - 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001, - 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001, - 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001, - 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001, - 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001, - 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005, - 0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005, - 0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005, - 0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005, - 0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005, - 0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001, - // Block 0xa3, offset 0x28c0 - 0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001, - 0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001, - 0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001, - 0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001, - 0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001, - 0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001, - 0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001, - 0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001, - 0x28f0: 0x000d, 0x28f1: 0x000d, 0x28f2: 0x000d, 0x28f3: 0x000d, 0x28f4: 0x000d, 0x28f5: 0x000d, - 0x28f6: 0x000d, 0x28f7: 0x000d, 0x28f8: 0x000d, 0x28f9: 0x000d, 0x28fa: 0x000d, 0x28fb: 0x000d, - 0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d, - // Block 0xa4, offset 0x2900 - 0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d, - 0x2906: 0x000c, 0x2907: 0x000c, 0x2908: 0x000c, 0x2909: 0x000c, 0x290a: 0x000c, 0x290b: 0x000c, - 0x290c: 0x000c, 0x290d: 0x000c, 0x290e: 0x000c, 0x290f: 0x000c, 0x2910: 0x000c, 0x2911: 0x000d, - 0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d, - 0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d, - 0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d, - 0x2924: 0x000d, 0x2925: 0x000d, 0x2926: 0x000d, 0x2927: 0x000d, 0x2928: 0x000d, 0x2929: 0x000d, - 0x292a: 0x000d, 0x292b: 0x000d, 0x292c: 0x000d, 0x292d: 0x000d, 0x292e: 0x000d, 0x292f: 0x000d, - 0x2930: 0x0001, 0x2931: 0x0001, 0x2932: 0x0001, 0x2933: 0x0001, 0x2934: 0x0001, 0x2935: 0x0001, - 0x2936: 0x0001, 0x2937: 0x0001, 0x2938: 0x0001, 0x2939: 0x0001, 0x293a: 0x0001, 0x293b: 0x0001, - 0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001, - // Block 0xa5, offset 0x2940 - 0x2941: 0x000c, - 0x2978: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, 0x297b: 0x000c, - 0x297c: 0x000c, 0x297d: 0x000c, 0x297e: 0x000c, 0x297f: 0x000c, - // Block 0xa6, offset 0x2980 - 0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, 0x2983: 0x000c, 0x2984: 0x000c, 0x2985: 0x000c, - 0x2986: 0x000c, - 0x2992: 0x000a, 0x2993: 0x000a, 0x2994: 0x000a, 0x2995: 0x000a, 0x2996: 0x000a, 0x2997: 0x000a, - 0x2998: 0x000a, 0x2999: 0x000a, 0x299a: 0x000a, 0x299b: 0x000a, 0x299c: 0x000a, 0x299d: 0x000a, - 0x299e: 0x000a, 0x299f: 0x000a, 0x29a0: 0x000a, 0x29a1: 0x000a, 0x29a2: 0x000a, 0x29a3: 0x000a, - 0x29a4: 0x000a, 0x29a5: 0x000a, - 0x29bf: 0x000c, - // Block 0xa7, offset 0x29c0 - 0x29c0: 0x000c, 0x29c1: 0x000c, - 0x29f3: 0x000c, 0x29f4: 0x000c, 0x29f5: 0x000c, - 0x29f6: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, - // Block 0xa8, offset 0x2a00 - 0x2a00: 0x000c, 0x2a01: 0x000c, 0x2a02: 0x000c, - 0x2a27: 0x000c, 0x2a28: 0x000c, 0x2a29: 0x000c, - 0x2a2a: 0x000c, 0x2a2b: 0x000c, 0x2a2d: 0x000c, 0x2a2e: 0x000c, 0x2a2f: 0x000c, - 0x2a30: 0x000c, 0x2a31: 0x000c, 0x2a32: 0x000c, 0x2a33: 0x000c, 0x2a34: 0x000c, - // Block 0xa9, offset 0x2a40 - 0x2a73: 0x000c, - // Block 0xaa, offset 0x2a80 - 0x2a80: 0x000c, 0x2a81: 0x000c, - 0x2ab6: 0x000c, 0x2ab7: 0x000c, 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c, - 0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c, - // Block 0xab, offset 0x2ac0 - 0x2ac9: 0x000c, 0x2aca: 0x000c, 0x2acb: 0x000c, - 0x2acc: 0x000c, - // Block 0xac, offset 0x2b00 - 0x2b2f: 0x000c, - 0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b34: 0x000c, - 0x2b36: 0x000c, 0x2b37: 0x000c, - 0x2b3e: 0x000c, - // Block 0xad, offset 0x2b40 - 0x2b5f: 0x000c, 0x2b63: 0x000c, - 0x2b64: 0x000c, 0x2b65: 0x000c, 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c, - 0x2b6a: 0x000c, - // Block 0xae, offset 0x2b80 - 0x2b80: 0x000c, - 0x2ba6: 0x000c, 0x2ba7: 0x000c, 0x2ba8: 0x000c, 0x2ba9: 0x000c, - 0x2baa: 0x000c, 0x2bab: 0x000c, 0x2bac: 0x000c, - 0x2bb0: 0x000c, 0x2bb1: 0x000c, 0x2bb2: 0x000c, 0x2bb3: 0x000c, 0x2bb4: 0x000c, - // Block 0xaf, offset 0x2bc0 - 0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c, - 0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, 0x2bff: 0x000c, - // Block 0xb0, offset 0x2c00 - 0x2c02: 0x000c, 0x2c03: 0x000c, 0x2c04: 0x000c, - 0x2c06: 0x000c, - 0x2c1e: 0x000c, - // Block 0xb1, offset 0x2c40 - 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c, - 0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c7a: 0x000c, - 0x2c7f: 0x000c, - // Block 0xb2, offset 0x2c80 - 0x2c80: 0x000c, 0x2c82: 0x000c, 0x2c83: 0x000c, - // Block 0xb3, offset 0x2cc0 - 0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c, - 0x2cfc: 0x000c, 0x2cfd: 0x000c, 0x2cff: 0x000c, - // Block 0xb4, offset 0x2d00 - 0x2d00: 0x000c, - 0x2d1c: 0x000c, 0x2d1d: 0x000c, - // Block 0xb5, offset 0x2d40 - 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c, - 0x2d76: 0x000c, 0x2d77: 0x000c, 0x2d78: 0x000c, 0x2d79: 0x000c, 0x2d7a: 0x000c, - 0x2d7d: 0x000c, 0x2d7f: 0x000c, - // Block 0xb6, offset 0x2d80 - 0x2d80: 0x000c, - 0x2da0: 0x000a, 0x2da1: 0x000a, 0x2da2: 0x000a, 0x2da3: 0x000a, - 0x2da4: 0x000a, 0x2da5: 0x000a, 0x2da6: 0x000a, 0x2da7: 0x000a, 0x2da8: 0x000a, 0x2da9: 0x000a, - 0x2daa: 0x000a, 0x2dab: 0x000a, 0x2dac: 0x000a, - // Block 0xb7, offset 0x2dc0 - 0x2deb: 0x000c, 0x2ded: 0x000c, - 0x2df0: 0x000c, 0x2df1: 0x000c, 0x2df2: 0x000c, 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c, - 0x2df7: 0x000c, - // Block 0xb8, offset 0x2e00 - 0x2e1d: 0x000c, - 0x2e1e: 0x000c, 0x2e1f: 0x000c, 0x2e22: 0x000c, 0x2e23: 0x000c, - 0x2e24: 0x000c, 0x2e25: 0x000c, 0x2e27: 0x000c, 0x2e28: 0x000c, 0x2e29: 0x000c, - 0x2e2a: 0x000c, 0x2e2b: 0x000c, - // Block 0xb9, offset 0x2e40 - 0x2e6f: 0x000c, - 0x2e70: 0x000c, 0x2e71: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e74: 0x000c, 0x2e75: 0x000c, - 0x2e76: 0x000c, 0x2e77: 0x000c, 0x2e79: 0x000c, 0x2e7a: 0x000c, - // Block 0xba, offset 0x2e80 - 0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c, - 0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c, - 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c, - 0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c, - 0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c, - // Block 0xbb, offset 0x2ec0 - 0x2ec7: 0x000c, - 0x2ed1: 0x000c, - 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, - 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, - // Block 0xbc, offset 0x2f00 - 0x2f0a: 0x000c, 0x2f0b: 0x000c, - 0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c, - 0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c, - 0x2f18: 0x000c, 0x2f19: 0x000c, - // Block 0xbd, offset 0x2f40 - 0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c, - 0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c, - 0x2f7c: 0x000c, 0x2f7d: 0x000c, - // Block 0xbe, offset 0x2f80 - 0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c, - 0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c, - 0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c, - 0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c, - 0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c, - 0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c, - 0x2fb6: 0x000c, - // Block 0xbf, offset 0x2fc0 - 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c, - 0x2ff6: 0x000c, 0x2ffa: 0x000c, - 0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c, - // Block 0xc0, offset 0x3000 - 0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c, - 0x3007: 0x000c, - // Block 0xc1, offset 0x3040 - 0x3050: 0x000c, 0x3051: 0x000c, - 0x3055: 0x000c, 0x3057: 0x000c, - // Block 0xc2, offset 0x3080 - 0x30b3: 0x000c, 0x30b4: 0x000c, - // Block 0xc3, offset 0x30c0 - 0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c, - // Block 0xc4, offset 0x3100 - 0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, 0x3135: 0x000c, - 0x3136: 0x000c, - // Block 0xc5, offset 0x3140 - 0x314f: 0x000c, 0x3150: 0x000c, 0x3151: 0x000c, - 0x3152: 0x000c, - // Block 0xc6, offset 0x3180 - 0x319d: 0x000c, - 0x319e: 0x000c, 0x31a0: 0x000b, 0x31a1: 0x000b, 0x31a2: 0x000b, 0x31a3: 0x000b, - // Block 0xc7, offset 0x31c0 - 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c, - 0x31f3: 0x000b, 0x31f4: 0x000b, 0x31f5: 0x000b, - 0x31f6: 0x000b, 0x31f7: 0x000b, 0x31f8: 0x000b, 0x31f9: 0x000b, 0x31fa: 0x000b, 0x31fb: 0x000c, - 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c, - // Block 0xc8, offset 0x3200 - 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3205: 0x000c, - 0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c, - 0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, 0x322d: 0x000c, - // Block 0xc9, offset 0x3240 - 0x3240: 0x000a, 0x3241: 0x000a, 0x3242: 0x000c, 0x3243: 0x000c, 0x3244: 0x000c, 0x3245: 0x000a, - // Block 0xca, offset 0x3280 - 0x3280: 0x000a, 0x3281: 0x000a, 0x3282: 0x000a, 0x3283: 0x000a, 0x3284: 0x000a, 0x3285: 0x000a, - 0x3286: 0x000a, 0x3287: 0x000a, 0x3288: 0x000a, 0x3289: 0x000a, 0x328a: 0x000a, 0x328b: 0x000a, - 0x328c: 0x000a, 0x328d: 0x000a, 0x328e: 0x000a, 0x328f: 0x000a, 0x3290: 0x000a, 0x3291: 0x000a, - 0x3292: 0x000a, 0x3293: 0x000a, 0x3294: 0x000a, 0x3295: 0x000a, 0x3296: 0x000a, - // Block 0xcb, offset 0x32c0 - 0x32db: 0x000a, - // Block 0xcc, offset 0x3300 - 0x3315: 0x000a, - // Block 0xcd, offset 0x3340 - 0x334f: 0x000a, - // Block 0xce, offset 0x3380 - 0x3389: 0x000a, - // Block 0xcf, offset 0x33c0 - 0x33c3: 0x000a, - 0x33ce: 0x0002, 0x33cf: 0x0002, 0x33d0: 0x0002, 0x33d1: 0x0002, - 0x33d2: 0x0002, 0x33d3: 0x0002, 0x33d4: 0x0002, 0x33d5: 0x0002, 0x33d6: 0x0002, 0x33d7: 0x0002, - 0x33d8: 0x0002, 0x33d9: 0x0002, 0x33da: 0x0002, 0x33db: 0x0002, 0x33dc: 0x0002, 0x33dd: 0x0002, - 0x33de: 0x0002, 0x33df: 0x0002, 0x33e0: 0x0002, 0x33e1: 0x0002, 0x33e2: 0x0002, 0x33e3: 0x0002, - 0x33e4: 0x0002, 0x33e5: 0x0002, 0x33e6: 0x0002, 0x33e7: 0x0002, 0x33e8: 0x0002, 0x33e9: 0x0002, - 0x33ea: 0x0002, 0x33eb: 0x0002, 0x33ec: 0x0002, 0x33ed: 0x0002, 0x33ee: 0x0002, 0x33ef: 0x0002, - 0x33f0: 0x0002, 0x33f1: 0x0002, 0x33f2: 0x0002, 0x33f3: 0x0002, 0x33f4: 0x0002, 0x33f5: 0x0002, - 0x33f6: 0x0002, 0x33f7: 0x0002, 0x33f8: 0x0002, 0x33f9: 0x0002, 0x33fa: 0x0002, 0x33fb: 0x0002, - 0x33fc: 0x0002, 0x33fd: 0x0002, 0x33fe: 0x0002, 0x33ff: 0x0002, - // Block 0xd0, offset 0x3400 - 0x3400: 0x000c, 0x3401: 0x000c, 0x3402: 0x000c, 0x3403: 0x000c, 0x3404: 0x000c, 0x3405: 0x000c, - 0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x000c, - 0x340c: 0x000c, 0x340d: 0x000c, 0x340e: 0x000c, 0x340f: 0x000c, 0x3410: 0x000c, 0x3411: 0x000c, - 0x3412: 0x000c, 0x3413: 0x000c, 0x3414: 0x000c, 0x3415: 0x000c, 0x3416: 0x000c, 0x3417: 0x000c, - 0x3418: 0x000c, 0x3419: 0x000c, 0x341a: 0x000c, 0x341b: 0x000c, 0x341c: 0x000c, 0x341d: 0x000c, - 0x341e: 0x000c, 0x341f: 0x000c, 0x3420: 0x000c, 0x3421: 0x000c, 0x3422: 0x000c, 0x3423: 0x000c, - 0x3424: 0x000c, 0x3425: 0x000c, 0x3426: 0x000c, 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c, - 0x342a: 0x000c, 0x342b: 0x000c, 0x342c: 0x000c, 0x342d: 0x000c, 0x342e: 0x000c, 0x342f: 0x000c, - 0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c, - 0x3436: 0x000c, 0x343b: 0x000c, - 0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c, - // Block 0xd1, offset 0x3440 - 0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3443: 0x000c, 0x3444: 0x000c, 0x3445: 0x000c, - 0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c, - 0x344c: 0x000c, 0x344d: 0x000c, 0x344e: 0x000c, 0x344f: 0x000c, 0x3450: 0x000c, 0x3451: 0x000c, - 0x3452: 0x000c, 0x3453: 0x000c, 0x3454: 0x000c, 0x3455: 0x000c, 0x3456: 0x000c, 0x3457: 0x000c, - 0x3458: 0x000c, 0x3459: 0x000c, 0x345a: 0x000c, 0x345b: 0x000c, 0x345c: 0x000c, 0x345d: 0x000c, - 0x345e: 0x000c, 0x345f: 0x000c, 0x3460: 0x000c, 0x3461: 0x000c, 0x3462: 0x000c, 0x3463: 0x000c, - 0x3464: 0x000c, 0x3465: 0x000c, 0x3466: 0x000c, 0x3467: 0x000c, 0x3468: 0x000c, 0x3469: 0x000c, - 0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c, - 0x3475: 0x000c, - // Block 0xd2, offset 0x3480 - 0x3484: 0x000c, - 0x349b: 0x000c, 0x349c: 0x000c, 0x349d: 0x000c, - 0x349e: 0x000c, 0x349f: 0x000c, 0x34a1: 0x000c, 0x34a2: 0x000c, 0x34a3: 0x000c, - 0x34a4: 0x000c, 0x34a5: 0x000c, 0x34a6: 0x000c, 0x34a7: 0x000c, 0x34a8: 0x000c, 0x34a9: 0x000c, - 0x34aa: 0x000c, 0x34ab: 0x000c, 0x34ac: 0x000c, 0x34ad: 0x000c, 0x34ae: 0x000c, 0x34af: 0x000c, - // Block 0xd3, offset 0x34c0 - 0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c, - 0x34c6: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c, - 0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c, - 0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c, - 0x34d8: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c, - 0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e3: 0x000c, - 0x34e4: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c, - 0x34ea: 0x000c, - // Block 0xd4, offset 0x3500 - 0x3500: 0x0001, 0x3501: 0x0001, 0x3502: 0x0001, 0x3503: 0x0001, 0x3504: 0x0001, 0x3505: 0x0001, - 0x3506: 0x0001, 0x3507: 0x0001, 0x3508: 0x0001, 0x3509: 0x0001, 0x350a: 0x0001, 0x350b: 0x0001, - 0x350c: 0x0001, 0x350d: 0x0001, 0x350e: 0x0001, 0x350f: 0x0001, 0x3510: 0x000c, 0x3511: 0x000c, - 0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x0001, - 0x3518: 0x0001, 0x3519: 0x0001, 0x351a: 0x0001, 0x351b: 0x0001, 0x351c: 0x0001, 0x351d: 0x0001, - 0x351e: 0x0001, 0x351f: 0x0001, 0x3520: 0x0001, 0x3521: 0x0001, 0x3522: 0x0001, 0x3523: 0x0001, - 0x3524: 0x0001, 0x3525: 0x0001, 0x3526: 0x0001, 0x3527: 0x0001, 0x3528: 0x0001, 0x3529: 0x0001, - 0x352a: 0x0001, 0x352b: 0x0001, 0x352c: 0x0001, 0x352d: 0x0001, 0x352e: 0x0001, 0x352f: 0x0001, - 0x3530: 0x0001, 0x3531: 0x0001, 0x3532: 0x0001, 0x3533: 0x0001, 0x3534: 0x0001, 0x3535: 0x0001, - 0x3536: 0x0001, 0x3537: 0x0001, 0x3538: 0x0001, 0x3539: 0x0001, 0x353a: 0x0001, 0x353b: 0x0001, - 0x353c: 0x0001, 0x353d: 0x0001, 0x353e: 0x0001, 0x353f: 0x0001, - // Block 0xd5, offset 0x3540 - 0x3540: 0x0001, 0x3541: 0x0001, 0x3542: 0x0001, 0x3543: 0x0001, 0x3544: 0x000c, 0x3545: 0x000c, - 0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x0001, - 0x354c: 0x0001, 0x354d: 0x0001, 0x354e: 0x0001, 0x354f: 0x0001, 0x3550: 0x0001, 0x3551: 0x0001, - 0x3552: 0x0001, 0x3553: 0x0001, 0x3554: 0x0001, 0x3555: 0x0001, 0x3556: 0x0001, 0x3557: 0x0001, - 0x3558: 0x0001, 0x3559: 0x0001, 0x355a: 0x0001, 0x355b: 0x0001, 0x355c: 0x0001, 0x355d: 0x0001, - 0x355e: 0x0001, 0x355f: 0x0001, 0x3560: 0x0001, 0x3561: 0x0001, 0x3562: 0x0001, 0x3563: 0x0001, - 0x3564: 0x0001, 0x3565: 0x0001, 0x3566: 0x0001, 0x3567: 0x0001, 0x3568: 0x0001, 0x3569: 0x0001, - 0x356a: 0x0001, 0x356b: 0x0001, 0x356c: 0x0001, 0x356d: 0x0001, 0x356e: 0x0001, 0x356f: 0x0001, - 0x3570: 0x0001, 0x3571: 0x0001, 0x3572: 0x0001, 0x3573: 0x0001, 0x3574: 0x0001, 0x3575: 0x0001, - 0x3576: 0x0001, 0x3577: 0x0001, 0x3578: 0x0001, 0x3579: 0x0001, 0x357a: 0x0001, 0x357b: 0x0001, - 0x357c: 0x0001, 0x357d: 0x0001, 0x357e: 0x0001, 0x357f: 0x0001, - // Block 0xd6, offset 0x3580 - 0x3580: 0x000d, 0x3581: 0x000d, 0x3582: 0x000d, 0x3583: 0x000d, 0x3584: 0x000d, 0x3585: 0x000d, - 0x3586: 0x000d, 0x3587: 0x000d, 0x3588: 0x000d, 0x3589: 0x000d, 0x358a: 0x000d, 0x358b: 0x000d, - 0x358c: 0x000d, 0x358d: 0x000d, 0x358e: 0x000d, 0x358f: 0x000d, 0x3590: 0x000d, 0x3591: 0x000d, - 0x3592: 0x000d, 0x3593: 0x000d, 0x3594: 0x000d, 0x3595: 0x000d, 0x3596: 0x000d, 0x3597: 0x000d, - 0x3598: 0x000d, 0x3599: 0x000d, 0x359a: 0x000d, 0x359b: 0x000d, 0x359c: 0x000d, 0x359d: 0x000d, - 0x359e: 0x000d, 0x359f: 0x000d, 0x35a0: 0x000d, 0x35a1: 0x000d, 0x35a2: 0x000d, 0x35a3: 0x000d, - 0x35a4: 0x000d, 0x35a5: 0x000d, 0x35a6: 0x000d, 0x35a7: 0x000d, 0x35a8: 0x000d, 0x35a9: 0x000d, - 0x35aa: 0x000d, 0x35ab: 0x000d, 0x35ac: 0x000d, 0x35ad: 0x000d, 0x35ae: 0x000d, 0x35af: 0x000d, - 0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000d, 0x35b3: 0x000d, 0x35b4: 0x000d, 0x35b5: 0x000d, - 0x35b6: 0x000d, 0x35b7: 0x000d, 0x35b8: 0x000d, 0x35b9: 0x000d, 0x35ba: 0x000d, 0x35bb: 0x000d, - 0x35bc: 0x000d, 0x35bd: 0x000d, 0x35be: 0x000d, 0x35bf: 0x000d, - // Block 0xd7, offset 0x35c0 - 0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a, - 0x35c6: 0x000a, 0x35c7: 0x000a, 0x35c8: 0x000a, 0x35c9: 0x000a, 0x35ca: 0x000a, 0x35cb: 0x000a, - 0x35cc: 0x000a, 0x35cd: 0x000a, 0x35ce: 0x000a, 0x35cf: 0x000a, 0x35d0: 0x000a, 0x35d1: 0x000a, - 0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a, - 0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a, - 0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a, - 0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a, - 0x35ea: 0x000a, 0x35eb: 0x000a, - 0x35f0: 0x000a, 0x35f1: 0x000a, 0x35f2: 0x000a, 0x35f3: 0x000a, 0x35f4: 0x000a, 0x35f5: 0x000a, - 0x35f6: 0x000a, 0x35f7: 0x000a, 0x35f8: 0x000a, 0x35f9: 0x000a, 0x35fa: 0x000a, 0x35fb: 0x000a, - 0x35fc: 0x000a, 0x35fd: 0x000a, 0x35fe: 0x000a, 0x35ff: 0x000a, - // Block 0xd8, offset 0x3600 - 0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a, - 0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a, - 0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a, - 0x3612: 0x000a, 0x3613: 0x000a, - 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a, - 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a, - 0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, 0x362d: 0x000a, 0x362e: 0x000a, - 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a, - 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a, - 0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, 0x363f: 0x000a, - // Block 0xd9, offset 0x3640 - 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a, - 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a, - 0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3651: 0x000a, - 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a, - 0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a, - 0x365e: 0x000a, 0x365f: 0x000a, 0x3660: 0x000a, 0x3661: 0x000a, 0x3662: 0x000a, 0x3663: 0x000a, - 0x3664: 0x000a, 0x3665: 0x000a, 0x3666: 0x000a, 0x3667: 0x000a, 0x3668: 0x000a, 0x3669: 0x000a, - 0x366a: 0x000a, 0x366b: 0x000a, 0x366c: 0x000a, 0x366d: 0x000a, 0x366e: 0x000a, 0x366f: 0x000a, - 0x3670: 0x000a, 0x3671: 0x000a, 0x3672: 0x000a, 0x3673: 0x000a, 0x3674: 0x000a, 0x3675: 0x000a, - // Block 0xda, offset 0x3680 - 0x3680: 0x0002, 0x3681: 0x0002, 0x3682: 0x0002, 0x3683: 0x0002, 0x3684: 0x0002, 0x3685: 0x0002, - 0x3686: 0x0002, 0x3687: 0x0002, 0x3688: 0x0002, 0x3689: 0x0002, 0x368a: 0x0002, 0x368b: 0x000a, - 0x368c: 0x000a, - 0x36af: 0x000a, - // Block 0xdb, offset 0x36c0 - 0x36ea: 0x000a, 0x36eb: 0x000a, - // Block 0xdc, offset 0x3700 - 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a, - 0x3724: 0x000a, 0x3725: 0x000a, - // Block 0xdd, offset 0x3740 - 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a, - 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a, - 0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a, - 0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, - 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a, - 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a, - 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, - 0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a, - 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, - // Block 0xde, offset 0x3780 - 0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a, - 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a, - 0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a, - 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a, - 0x3798: 0x000a, - // Block 0xdf, offset 0x37c0 - 0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a, - 0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a, - 0x37d0: 0x000a, 0x37d1: 0x000a, - 0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a, - 0x37d8: 0x000a, 0x37d9: 0x000a, 0x37da: 0x000a, 0x37db: 0x000a, 0x37dc: 0x000a, 0x37dd: 0x000a, - 0x37de: 0x000a, 0x37df: 0x000a, 0x37e0: 0x000a, 0x37e1: 0x000a, 0x37e2: 0x000a, 0x37e3: 0x000a, - 0x37e4: 0x000a, 0x37e5: 0x000a, 0x37e6: 0x000a, 0x37e7: 0x000a, 0x37e8: 0x000a, 0x37e9: 0x000a, - 0x37ea: 0x000a, 0x37eb: 0x000a, 0x37ec: 0x000a, 0x37ed: 0x000a, 0x37ee: 0x000a, 0x37ef: 0x000a, - 0x37f0: 0x000a, 0x37f1: 0x000a, 0x37f2: 0x000a, 0x37f3: 0x000a, 0x37f4: 0x000a, 0x37f5: 0x000a, - 0x37f6: 0x000a, 0x37f7: 0x000a, 0x37f8: 0x000a, 0x37f9: 0x000a, 0x37fa: 0x000a, 0x37fb: 0x000a, - 0x37fc: 0x000a, 0x37fd: 0x000a, 0x37fe: 0x000a, 0x37ff: 0x000a, - // Block 0xe0, offset 0x3800 - 0x3800: 0x000a, 0x3801: 0x000a, 0x3802: 0x000a, 0x3803: 0x000a, 0x3804: 0x000a, 0x3805: 0x000a, - 0x3806: 0x000a, 0x3807: 0x000a, - 0x3810: 0x000a, 0x3811: 0x000a, - 0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a, - 0x3818: 0x000a, 0x3819: 0x000a, - 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a, - 0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, 0x3827: 0x000a, 0x3828: 0x000a, 0x3829: 0x000a, - 0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, 0x382d: 0x000a, 0x382e: 0x000a, 0x382f: 0x000a, - 0x3830: 0x000a, 0x3831: 0x000a, 0x3832: 0x000a, 0x3833: 0x000a, 0x3834: 0x000a, 0x3835: 0x000a, - 0x3836: 0x000a, 0x3837: 0x000a, 0x3838: 0x000a, 0x3839: 0x000a, 0x383a: 0x000a, 0x383b: 0x000a, - 0x383c: 0x000a, 0x383d: 0x000a, 0x383e: 0x000a, 0x383f: 0x000a, - // Block 0xe1, offset 0x3840 - 0x3840: 0x000a, 0x3841: 0x000a, 0x3842: 0x000a, 0x3843: 0x000a, 0x3844: 0x000a, 0x3845: 0x000a, - 0x3846: 0x000a, 0x3847: 0x000a, - 0x3850: 0x000a, 0x3851: 0x000a, - 0x3852: 0x000a, 0x3853: 0x000a, 0x3854: 0x000a, 0x3855: 0x000a, 0x3856: 0x000a, 0x3857: 0x000a, - 0x3858: 0x000a, 0x3859: 0x000a, 0x385a: 0x000a, 0x385b: 0x000a, 0x385c: 0x000a, 0x385d: 0x000a, - 0x385e: 0x000a, 0x385f: 0x000a, 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a, - 0x3864: 0x000a, 0x3865: 0x000a, 0x3866: 0x000a, 0x3867: 0x000a, 0x3868: 0x000a, 0x3869: 0x000a, - 0x386a: 0x000a, 0x386b: 0x000a, 0x386c: 0x000a, 0x386d: 0x000a, - // Block 0xe2, offset 0x3880 - 0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a, - 0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a, - 0x3890: 0x000a, 0x3891: 0x000a, - 0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a, - 0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a, - 0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a, - 0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a, - 0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, 0x38ad: 0x000a, 0x38ae: 0x000a, 0x38af: 0x000a, - 0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a, - 0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a, - 0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a, - // Block 0xe3, offset 0x38c0 - 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a, - 0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a, - 0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a, - 0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a, - 0x38d8: 0x000a, 0x38d9: 0x000a, 0x38da: 0x000a, 0x38db: 0x000a, 0x38dc: 0x000a, 0x38dd: 0x000a, - 0x38de: 0x000a, 0x38df: 0x000a, 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a, - 0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a, - 0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, 0x38ef: 0x000a, - 0x38f0: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a, - 0x38f6: 0x000a, 0x38fa: 0x000a, - 0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a, - // Block 0xe4, offset 0x3900 - 0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a, - 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a, - 0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a, - 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a, - 0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a, - 0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, - 0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a, - 0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a, - // Block 0xe5, offset 0x3940 - 0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a, - 0x3950: 0x000a, 0x3951: 0x000a, - 0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a, - 0x3958: 0x000a, 0x3959: 0x000a, 0x395a: 0x000a, 0x395b: 0x000a, 0x395c: 0x000a, 0x395d: 0x000a, - 0x395e: 0x000a, 0x395f: 0x000a, 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a, - 0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a, - 0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a, - 0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a, - 0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a, - 0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a, - // Block 0xe6, offset 0x3980 - 0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a, - 0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a, - 0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a, - // Block 0xe7, offset 0x39c0 - 0x39fe: 0x000b, 0x39ff: 0x000b, - // Block 0xe8, offset 0x3a00 - 0x3a00: 0x000b, 0x3a01: 0x000b, 0x3a02: 0x000b, 0x3a03: 0x000b, 0x3a04: 0x000b, 0x3a05: 0x000b, - 0x3a06: 0x000b, 0x3a07: 0x000b, 0x3a08: 0x000b, 0x3a09: 0x000b, 0x3a0a: 0x000b, 0x3a0b: 0x000b, - 0x3a0c: 0x000b, 0x3a0d: 0x000b, 0x3a0e: 0x000b, 0x3a0f: 0x000b, 0x3a10: 0x000b, 0x3a11: 0x000b, - 0x3a12: 0x000b, 0x3a13: 0x000b, 0x3a14: 0x000b, 0x3a15: 0x000b, 0x3a16: 0x000b, 0x3a17: 0x000b, - 0x3a18: 0x000b, 0x3a19: 0x000b, 0x3a1a: 0x000b, 0x3a1b: 0x000b, 0x3a1c: 0x000b, 0x3a1d: 0x000b, - 0x3a1e: 0x000b, 0x3a1f: 0x000b, 0x3a20: 0x000b, 0x3a21: 0x000b, 0x3a22: 0x000b, 0x3a23: 0x000b, - 0x3a24: 0x000b, 0x3a25: 0x000b, 0x3a26: 0x000b, 0x3a27: 0x000b, 0x3a28: 0x000b, 0x3a29: 0x000b, - 0x3a2a: 0x000b, 0x3a2b: 0x000b, 0x3a2c: 0x000b, 0x3a2d: 0x000b, 0x3a2e: 0x000b, 0x3a2f: 0x000b, - 0x3a30: 0x000b, 0x3a31: 0x000b, 0x3a32: 0x000b, 0x3a33: 0x000b, 0x3a34: 0x000b, 0x3a35: 0x000b, - 0x3a36: 0x000b, 0x3a37: 0x000b, 0x3a38: 0x000b, 0x3a39: 0x000b, 0x3a3a: 0x000b, 0x3a3b: 0x000b, - 0x3a3c: 0x000b, 0x3a3d: 0x000b, 0x3a3e: 0x000b, 0x3a3f: 0x000b, - // Block 0xe9, offset 0x3a40 - 0x3a40: 0x000c, 0x3a41: 0x000c, 0x3a42: 0x000c, 0x3a43: 0x000c, 0x3a44: 0x000c, 0x3a45: 0x000c, - 0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x000c, - 0x3a4c: 0x000c, 0x3a4d: 0x000c, 0x3a4e: 0x000c, 0x3a4f: 0x000c, 0x3a50: 0x000c, 0x3a51: 0x000c, - 0x3a52: 0x000c, 0x3a53: 0x000c, 0x3a54: 0x000c, 0x3a55: 0x000c, 0x3a56: 0x000c, 0x3a57: 0x000c, - 0x3a58: 0x000c, 0x3a59: 0x000c, 0x3a5a: 0x000c, 0x3a5b: 0x000c, 0x3a5c: 0x000c, 0x3a5d: 0x000c, - 0x3a5e: 0x000c, 0x3a5f: 0x000c, 0x3a60: 0x000c, 0x3a61: 0x000c, 0x3a62: 0x000c, 0x3a63: 0x000c, - 0x3a64: 0x000c, 0x3a65: 0x000c, 0x3a66: 0x000c, 0x3a67: 0x000c, 0x3a68: 0x000c, 0x3a69: 0x000c, - 0x3a6a: 0x000c, 0x3a6b: 0x000c, 0x3a6c: 0x000c, 0x3a6d: 0x000c, 0x3a6e: 0x000c, 0x3a6f: 0x000c, - 0x3a70: 0x000b, 0x3a71: 0x000b, 0x3a72: 0x000b, 0x3a73: 0x000b, 0x3a74: 0x000b, 0x3a75: 0x000b, - 0x3a76: 0x000b, 0x3a77: 0x000b, 0x3a78: 0x000b, 0x3a79: 0x000b, 0x3a7a: 0x000b, 0x3a7b: 0x000b, - 0x3a7c: 0x000b, 0x3a7d: 0x000b, 0x3a7e: 0x000b, 0x3a7f: 0x000b, -} - -// bidiIndex: 24 blocks, 1536 entries, 1536 bytes -// Block 0 is the zero block. -var bidiIndex = [1536]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x01, 0xc3: 0x02, - 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, - 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, - 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, - 0xea: 0x07, 0xef: 0x08, - 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15, - // Block 0x4, offset 0x100 - 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, - 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, - 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28, - 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30, - // Block 0x5, offset 0x140 - 0x140: 0x31, 0x141: 0x32, 0x142: 0x33, - 0x14d: 0x34, 0x14e: 0x35, - 0x150: 0x36, - 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b, - 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40, - 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47, - 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a, - 0x17e: 0x4b, 0x17f: 0x4c, - // Block 0x6, offset 0x180 - 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54, - 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54, - 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54, - 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f, - 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61, - 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64, - 0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67, - 0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70, - 0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76, - // Block 0x8, offset 0x200 - 0x237: 0x54, - // Block 0x9, offset 0x240 - 0x252: 0x77, 0x253: 0x78, - 0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e, - 0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85, - 0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a, - // Block 0xa, offset 0x280 - 0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e, - 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e, - 0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94, - // Block 0xb, offset 0x2c0 - 0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97, - 0x2cb: 0x98, 0x2cd: 0x99, - 0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a, - 0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a, - 0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9f, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a, - 0x2f8: 0x9a, 0x2f9: 0xa0, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0xa1, 0x2fd: 0xa2, 0x2fe: 0x9a, 0x2ff: 0x9a, - // Block 0xc, offset 0x300 - 0x300: 0xa3, 0x301: 0xa4, 0x302: 0xa5, 0x304: 0xa6, 0x305: 0xa7, 0x306: 0xa8, 0x307: 0xa9, - 0x308: 0xaa, 0x30b: 0xab, 0x30c: 0x26, 0x30d: 0xac, - 0x310: 0xad, 0x311: 0xae, 0x312: 0xaf, 0x313: 0xb0, 0x316: 0xb1, 0x317: 0xb2, - 0x318: 0xb3, 0x319: 0xb4, 0x31a: 0xb5, 0x31c: 0xb6, - 0x320: 0xb7, - 0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba, - 0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf, - 0x33b: 0xc0, - // Block 0xd, offset 0x340 - 0x36b: 0xc1, 0x36c: 0xc2, - 0x37e: 0xc3, - // Block 0xe, offset 0x380 - 0x3b2: 0xc4, - // Block 0xf, offset 0x3c0 - 0x3c5: 0xc5, 0x3c6: 0xc6, - 0x3c8: 0x54, 0x3c9: 0xc7, 0x3cc: 0x54, 0x3cd: 0xc8, - 0x3db: 0xc9, 0x3dc: 0xca, 0x3dd: 0xcb, 0x3de: 0xcc, 0x3df: 0xcd, - 0x3e8: 0xce, 0x3e9: 0xcf, 0x3ea: 0xd0, - // Block 0x10, offset 0x400 - 0x400: 0xd1, - 0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xd2, 0x424: 0x9a, 0x425: 0xd3, 0x426: 0x9a, 0x427: 0x9a, - 0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a, - 0x430: 0x9a, 0x431: 0xa1, 0x432: 0x0e, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a, - 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd4, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a, - // Block 0x11, offset 0x440 - 0x440: 0xd5, 0x441: 0x54, 0x442: 0xd6, 0x443: 0xd7, 0x444: 0xd8, 0x445: 0xd9, - 0x449: 0xda, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54, - 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54, - 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xdb, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xdc, - 0x460: 0xdd, 0x461: 0xde, 0x462: 0xdf, 0x464: 0xe0, 0x465: 0xe1, 0x466: 0xe2, 0x467: 0xe3, - 0x469: 0xe4, - 0x47f: 0xe5, - // Block 0x12, offset 0x480 - 0x4bf: 0xe5, - // Block 0x13, offset 0x4c0 - 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b, - 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f, - 0x4ef: 0x10, - 0x4ff: 0x10, - // Block 0x14, offset 0x500 - 0x50f: 0x10, - 0x51f: 0x10, - 0x52f: 0x10, - 0x53f: 0x10, - // Block 0x15, offset 0x540 - 0x540: 0xe6, 0x541: 0xe6, 0x542: 0xe6, 0x543: 0xe6, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe7, - 0x548: 0xe6, 0x549: 0xe6, 0x54a: 0xe6, 0x54b: 0xe6, 0x54c: 0xe6, 0x54d: 0xe6, 0x54e: 0xe6, 0x54f: 0xe6, - 0x550: 0xe6, 0x551: 0xe6, 0x552: 0xe6, 0x553: 0xe6, 0x554: 0xe6, 0x555: 0xe6, 0x556: 0xe6, 0x557: 0xe6, - 0x558: 0xe6, 0x559: 0xe6, 0x55a: 0xe6, 0x55b: 0xe6, 0x55c: 0xe6, 0x55d: 0xe6, 0x55e: 0xe6, 0x55f: 0xe6, - 0x560: 0xe6, 0x561: 0xe6, 0x562: 0xe6, 0x563: 0xe6, 0x564: 0xe6, 0x565: 0xe6, 0x566: 0xe6, 0x567: 0xe6, - 0x568: 0xe6, 0x569: 0xe6, 0x56a: 0xe6, 0x56b: 0xe6, 0x56c: 0xe6, 0x56d: 0xe6, 0x56e: 0xe6, 0x56f: 0xe6, - 0x570: 0xe6, 0x571: 0xe6, 0x572: 0xe6, 0x573: 0xe6, 0x574: 0xe6, 0x575: 0xe6, 0x576: 0xe6, 0x577: 0xe6, - 0x578: 0xe6, 0x579: 0xe6, 0x57a: 0xe6, 0x57b: 0xe6, 0x57c: 0xe6, 0x57d: 0xe6, 0x57e: 0xe6, 0x57f: 0xe6, - // Block 0x16, offset 0x580 - 0x58f: 0x10, - 0x59f: 0x10, - 0x5a0: 0x13, - 0x5af: 0x10, - 0x5bf: 0x10, - // Block 0x17, offset 0x5c0 - 0x5cf: 0x10, -} - -// Total table size 16568 bytes (16KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/norm/composition.go b/vendor/golang.org/x/text/unicode/norm/composition.go index e2087bce5..bab4c5de0 100644 --- a/vendor/golang.org/x/text/unicode/norm/composition.go +++ b/vendor/golang.org/x/text/unicode/norm/composition.go @@ -407,7 +407,7 @@ func decomposeHangul(buf []byte, r rune) int { // decomposeHangul algorithmically decomposes a Hangul rune into // its Jamo components. -// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. +// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. func (rb *reorderBuffer) decomposeHangul(r rune) { r -= hangulBase x := r % jamoTCount @@ -420,7 +420,7 @@ func (rb *reorderBuffer) decomposeHangul(r rune) { } // combineHangul algorithmically combines Jamo character components into Hangul. -// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul. +// See http://unicode.org/reports/tr15/#Hangul for details on combining Hangul. func (rb *reorderBuffer) combineHangul(s, i, k int) { b := rb.rune[:] bn := rb.nrune @@ -461,10 +461,6 @@ func (rb *reorderBuffer) combineHangul(s, i, k int) { // It should only be used to recompose a single segment, as it will not // handle alternations between Hangul and non-Hangul characters correctly. func (rb *reorderBuffer) compose() { - // Lazily load the map used by the combine func below, but do - // it outside of the loop. - recompMapOnce.Do(buildRecompMap) - // UAX #15, section X5 , including Corrigendum #5 // "In any character sequence beginning with starter S, a character C is // blocked from S if and only if there is some character B between S diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go index 526c7033a..e67e7655c 100644 --- a/vendor/golang.org/x/text/unicode/norm/forminfo.go +++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go @@ -4,8 +4,6 @@ package norm -import "encoding/binary" - // This file contains Form-specific logic and wrappers for data in tables.go. // Rune info is stored in a separate trie per composing form. A composing form @@ -180,17 +178,6 @@ func (p Properties) TrailCCC() uint8 { return ccc[p.tccc] } -func buildRecompMap() { - recompMap = make(map[uint32]rune, len(recompMapPacked)/8) - var buf [8]byte - for i := 0; i < len(recompMapPacked); i += 8 { - copy(buf[:], recompMapPacked[i:i+8]) - key := binary.BigEndian.Uint32(buf[:4]) - val := binary.BigEndian.Uint32(buf[4:]) - recompMap[key] = rune(val) - } -} - // Recomposition // We use 32-bit keys instead of 64-bit for the two codepoint keys. // This clips off the bits of three entries, but we know this will not @@ -199,14 +186,8 @@ func buildRecompMap() { // Note that the recomposition map for NFC and NFKC are identical. // combine returns the combined rune or 0 if it doesn't exist. -// -// The caller is responsible for calling -// recompMapOnce.Do(buildRecompMap) sometime before this is called. func combine(a, b rune) rune { key := uint32(uint16(a))<<16 + uint32(uint16(b)) - if recompMap == nil { - panic("caller error") // see func comment - } return recompMap[key] } diff --git a/vendor/golang.org/x/text/unicode/norm/iter.go b/vendor/golang.org/x/text/unicode/norm/iter.go index 417c6b268..ce17f96c2 100644 --- a/vendor/golang.org/x/text/unicode/norm/iter.go +++ b/vendor/golang.org/x/text/unicode/norm/iter.go @@ -128,9 +128,8 @@ func (i *Iter) Next() []byte { func nextASCIIBytes(i *Iter) []byte { p := i.p + 1 if p >= i.rb.nsrc { - p0 := i.p i.setDone() - return i.rb.src.bytes[p0:p] + return i.rb.src.bytes[i.p:p] } if i.rb.src.bytes[p] < utf8.RuneSelf { p0 := i.p diff --git a/vendor/golang.org/x/text/unicode/norm/maketables.go b/vendor/golang.org/x/text/unicode/norm/maketables.go index 30a3aa933..338c395ee 100644 --- a/vendor/golang.org/x/text/unicode/norm/maketables.go +++ b/vendor/golang.org/x/text/unicode/norm/maketables.go @@ -12,7 +12,6 @@ package main import ( "bytes" - "encoding/binary" "flag" "fmt" "io" @@ -262,7 +261,7 @@ func compactCCC() { // CompositionExclusions.txt has form: // 0958 # ... -// See https://unicode.org/reports/tr44/ for full explanation +// See http://unicode.org/reports/tr44/ for full explanation func loadCompositionExclusions() { f := gen.OpenUCDFile("CompositionExclusions.txt") defer f.Close() @@ -736,8 +735,6 @@ func makeTables() { max = n } } - fmt.Fprintln(w, `import "sync"`) - fmt.Fprintln(w) fmt.Fprintln(w, "const (") fmt.Fprintln(w, "\t// Version is the Unicode edition from which the tables are derived.") @@ -785,23 +782,16 @@ func makeTables() { sz := nrentries * 8 size += sz fmt.Fprintf(w, "// recompMap: %d bytes (entries only)\n", sz) - fmt.Fprintln(w, "var recompMap map[uint32]rune") - fmt.Fprintln(w, "var recompMapOnce sync.Once\n") - fmt.Fprintln(w, `const recompMapPacked = "" +`) - var buf [8]byte + 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])) - binary.BigEndian.PutUint32(buf[:4], key) - binary.BigEndian.PutUint32(buf[4:], uint32(i)) - fmt.Fprintf(w, "\t\t%q + // 0x%.8X: 0x%.8X\n", string(buf[:]), key, uint32(i)) + fmt.Fprintf(w, "0x%.8X: 0x%.4X,\n", key, i) } } - // hack so we don't have to special case the trailing plus sign - fmt.Fprintf(w, ` ""`) - fmt.Fprintln(w) + fmt.Fprintf(w, "}\n\n") } fmt.Fprintf(w, "// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size) @@ -867,7 +857,7 @@ func verifyComputed() { // DerivedNormalizationProps.txt has form: // 00C0..00C5 ; NFD_QC; N # ... // 0374 ; NFD_QC; N # ... -// See https://unicode.org/reports/tr44/ for full explanation +// See http://unicode.org/reports/tr44/ for full explanation func testDerived() { f := gen.OpenUCDFile("DerivedNormalizationProps.txt") defer f.Close() diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go index 95efcf26e..e28ac641a 100644 --- a/vendor/golang.org/x/text/unicode/norm/normalize.go +++ b/vendor/golang.org/x/text/unicode/norm/normalize.go @@ -29,8 +29,8 @@ import ( // proceed independently on both sides: // f(x) == append(f(x[0:n]), f(x[n:])...) // -// References: https://unicode.org/reports/tr15/ and -// https://unicode.org/notes/tn5/. +// References: http://unicode.org/reports/tr15/ and +// http://unicode.org/notes/tn5/. type Form int const ( diff --git a/vendor/golang.org/x/text/unicode/norm/readwriter.go b/vendor/golang.org/x/text/unicode/norm/readwriter.go index b38096f5c..d926ee903 100644 --- a/vendor/golang.org/x/text/unicode/norm/readwriter.go +++ b/vendor/golang.org/x/text/unicode/norm/readwriter.go @@ -60,8 +60,8 @@ func (w *normWriter) Close() error { } // Writer returns a new writer that implements Write(b) -// by writing f(b) to w. The returned writer may use an -// internal buffer to maintain state across Write calls. +// by writing f(b) to w. The returned writer may use an +// an internal buffer to maintain state across Write calls. // Calling its Close method writes any buffered data to w. func (f Form) Writer(w io.Writer) io.WriteCloser { wr := &normWriter{rb: reorderBuffer{}, w: w} diff --git a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go index 26fbd55a1..44dd3978c 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go @@ -1,11 +1,9 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -// +build go1.10,!go1.13 +// +build go1.10 package norm -import "sync" - const ( // Version is the Unicode edition from which the tables are derived. Version = "10.0.0" @@ -6709,949 +6707,947 @@ var nfkcSparseValues = [869]valueRange{ } // recompMap: 7520 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once +var recompMap = map[uint32]rune{ + 0x00410300: 0x00C0, + 0x00410301: 0x00C1, + 0x00410302: 0x00C2, + 0x00410303: 0x00C3, + 0x00410308: 0x00C4, + 0x0041030A: 0x00C5, + 0x00430327: 0x00C7, + 0x00450300: 0x00C8, + 0x00450301: 0x00C9, + 0x00450302: 0x00CA, + 0x00450308: 0x00CB, + 0x00490300: 0x00CC, + 0x00490301: 0x00CD, + 0x00490302: 0x00CE, + 0x00490308: 0x00CF, + 0x004E0303: 0x00D1, + 0x004F0300: 0x00D2, + 0x004F0301: 0x00D3, + 0x004F0302: 0x00D4, + 0x004F0303: 0x00D5, + 0x004F0308: 0x00D6, + 0x00550300: 0x00D9, + 0x00550301: 0x00DA, + 0x00550302: 0x00DB, + 0x00550308: 0x00DC, + 0x00590301: 0x00DD, + 0x00610300: 0x00E0, + 0x00610301: 0x00E1, + 0x00610302: 0x00E2, + 0x00610303: 0x00E3, + 0x00610308: 0x00E4, + 0x0061030A: 0x00E5, + 0x00630327: 0x00E7, + 0x00650300: 0x00E8, + 0x00650301: 0x00E9, + 0x00650302: 0x00EA, + 0x00650308: 0x00EB, + 0x00690300: 0x00EC, + 0x00690301: 0x00ED, + 0x00690302: 0x00EE, + 0x00690308: 0x00EF, + 0x006E0303: 0x00F1, + 0x006F0300: 0x00F2, + 0x006F0301: 0x00F3, + 0x006F0302: 0x00F4, + 0x006F0303: 0x00F5, + 0x006F0308: 0x00F6, + 0x00750300: 0x00F9, + 0x00750301: 0x00FA, + 0x00750302: 0x00FB, + 0x00750308: 0x00FC, + 0x00790301: 0x00FD, + 0x00790308: 0x00FF, + 0x00410304: 0x0100, + 0x00610304: 0x0101, + 0x00410306: 0x0102, + 0x00610306: 0x0103, + 0x00410328: 0x0104, + 0x00610328: 0x0105, + 0x00430301: 0x0106, + 0x00630301: 0x0107, + 0x00430302: 0x0108, + 0x00630302: 0x0109, + 0x00430307: 0x010A, + 0x00630307: 0x010B, + 0x0043030C: 0x010C, + 0x0063030C: 0x010D, + 0x0044030C: 0x010E, + 0x0064030C: 0x010F, + 0x00450304: 0x0112, + 0x00650304: 0x0113, + 0x00450306: 0x0114, + 0x00650306: 0x0115, + 0x00450307: 0x0116, + 0x00650307: 0x0117, + 0x00450328: 0x0118, + 0x00650328: 0x0119, + 0x0045030C: 0x011A, + 0x0065030C: 0x011B, + 0x00470302: 0x011C, + 0x00670302: 0x011D, + 0x00470306: 0x011E, + 0x00670306: 0x011F, + 0x00470307: 0x0120, + 0x00670307: 0x0121, + 0x00470327: 0x0122, + 0x00670327: 0x0123, + 0x00480302: 0x0124, + 0x00680302: 0x0125, + 0x00490303: 0x0128, + 0x00690303: 0x0129, + 0x00490304: 0x012A, + 0x00690304: 0x012B, + 0x00490306: 0x012C, + 0x00690306: 0x012D, + 0x00490328: 0x012E, + 0x00690328: 0x012F, + 0x00490307: 0x0130, + 0x004A0302: 0x0134, + 0x006A0302: 0x0135, + 0x004B0327: 0x0136, + 0x006B0327: 0x0137, + 0x004C0301: 0x0139, + 0x006C0301: 0x013A, + 0x004C0327: 0x013B, + 0x006C0327: 0x013C, + 0x004C030C: 0x013D, + 0x006C030C: 0x013E, + 0x004E0301: 0x0143, + 0x006E0301: 0x0144, + 0x004E0327: 0x0145, + 0x006E0327: 0x0146, + 0x004E030C: 0x0147, + 0x006E030C: 0x0148, + 0x004F0304: 0x014C, + 0x006F0304: 0x014D, + 0x004F0306: 0x014E, + 0x006F0306: 0x014F, + 0x004F030B: 0x0150, + 0x006F030B: 0x0151, + 0x00520301: 0x0154, + 0x00720301: 0x0155, + 0x00520327: 0x0156, + 0x00720327: 0x0157, + 0x0052030C: 0x0158, + 0x0072030C: 0x0159, + 0x00530301: 0x015A, + 0x00730301: 0x015B, + 0x00530302: 0x015C, + 0x00730302: 0x015D, + 0x00530327: 0x015E, + 0x00730327: 0x015F, + 0x0053030C: 0x0160, + 0x0073030C: 0x0161, + 0x00540327: 0x0162, + 0x00740327: 0x0163, + 0x0054030C: 0x0164, + 0x0074030C: 0x0165, + 0x00550303: 0x0168, + 0x00750303: 0x0169, + 0x00550304: 0x016A, + 0x00750304: 0x016B, + 0x00550306: 0x016C, + 0x00750306: 0x016D, + 0x0055030A: 0x016E, + 0x0075030A: 0x016F, + 0x0055030B: 0x0170, + 0x0075030B: 0x0171, + 0x00550328: 0x0172, + 0x00750328: 0x0173, + 0x00570302: 0x0174, + 0x00770302: 0x0175, + 0x00590302: 0x0176, + 0x00790302: 0x0177, + 0x00590308: 0x0178, + 0x005A0301: 0x0179, + 0x007A0301: 0x017A, + 0x005A0307: 0x017B, + 0x007A0307: 0x017C, + 0x005A030C: 0x017D, + 0x007A030C: 0x017E, + 0x004F031B: 0x01A0, + 0x006F031B: 0x01A1, + 0x0055031B: 0x01AF, + 0x0075031B: 0x01B0, + 0x0041030C: 0x01CD, + 0x0061030C: 0x01CE, + 0x0049030C: 0x01CF, + 0x0069030C: 0x01D0, + 0x004F030C: 0x01D1, + 0x006F030C: 0x01D2, + 0x0055030C: 0x01D3, + 0x0075030C: 0x01D4, + 0x00DC0304: 0x01D5, + 0x00FC0304: 0x01D6, + 0x00DC0301: 0x01D7, + 0x00FC0301: 0x01D8, + 0x00DC030C: 0x01D9, + 0x00FC030C: 0x01DA, + 0x00DC0300: 0x01DB, + 0x00FC0300: 0x01DC, + 0x00C40304: 0x01DE, + 0x00E40304: 0x01DF, + 0x02260304: 0x01E0, + 0x02270304: 0x01E1, + 0x00C60304: 0x01E2, + 0x00E60304: 0x01E3, + 0x0047030C: 0x01E6, + 0x0067030C: 0x01E7, + 0x004B030C: 0x01E8, + 0x006B030C: 0x01E9, + 0x004F0328: 0x01EA, + 0x006F0328: 0x01EB, + 0x01EA0304: 0x01EC, + 0x01EB0304: 0x01ED, + 0x01B7030C: 0x01EE, + 0x0292030C: 0x01EF, + 0x006A030C: 0x01F0, + 0x00470301: 0x01F4, + 0x00670301: 0x01F5, + 0x004E0300: 0x01F8, + 0x006E0300: 0x01F9, + 0x00C50301: 0x01FA, + 0x00E50301: 0x01FB, + 0x00C60301: 0x01FC, + 0x00E60301: 0x01FD, + 0x00D80301: 0x01FE, + 0x00F80301: 0x01FF, + 0x0041030F: 0x0200, + 0x0061030F: 0x0201, + 0x00410311: 0x0202, + 0x00610311: 0x0203, + 0x0045030F: 0x0204, + 0x0065030F: 0x0205, + 0x00450311: 0x0206, + 0x00650311: 0x0207, + 0x0049030F: 0x0208, + 0x0069030F: 0x0209, + 0x00490311: 0x020A, + 0x00690311: 0x020B, + 0x004F030F: 0x020C, + 0x006F030F: 0x020D, + 0x004F0311: 0x020E, + 0x006F0311: 0x020F, + 0x0052030F: 0x0210, + 0x0072030F: 0x0211, + 0x00520311: 0x0212, + 0x00720311: 0x0213, + 0x0055030F: 0x0214, + 0x0075030F: 0x0215, + 0x00550311: 0x0216, + 0x00750311: 0x0217, + 0x00530326: 0x0218, + 0x00730326: 0x0219, + 0x00540326: 0x021A, + 0x00740326: 0x021B, + 0x0048030C: 0x021E, + 0x0068030C: 0x021F, + 0x00410307: 0x0226, + 0x00610307: 0x0227, + 0x00450327: 0x0228, + 0x00650327: 0x0229, + 0x00D60304: 0x022A, + 0x00F60304: 0x022B, + 0x00D50304: 0x022C, + 0x00F50304: 0x022D, + 0x004F0307: 0x022E, + 0x006F0307: 0x022F, + 0x022E0304: 0x0230, + 0x022F0304: 0x0231, + 0x00590304: 0x0232, + 0x00790304: 0x0233, + 0x00A80301: 0x0385, + 0x03910301: 0x0386, + 0x03950301: 0x0388, + 0x03970301: 0x0389, + 0x03990301: 0x038A, + 0x039F0301: 0x038C, + 0x03A50301: 0x038E, + 0x03A90301: 0x038F, + 0x03CA0301: 0x0390, + 0x03990308: 0x03AA, + 0x03A50308: 0x03AB, + 0x03B10301: 0x03AC, + 0x03B50301: 0x03AD, + 0x03B70301: 0x03AE, + 0x03B90301: 0x03AF, + 0x03CB0301: 0x03B0, + 0x03B90308: 0x03CA, + 0x03C50308: 0x03CB, + 0x03BF0301: 0x03CC, + 0x03C50301: 0x03CD, + 0x03C90301: 0x03CE, + 0x03D20301: 0x03D3, + 0x03D20308: 0x03D4, + 0x04150300: 0x0400, + 0x04150308: 0x0401, + 0x04130301: 0x0403, + 0x04060308: 0x0407, + 0x041A0301: 0x040C, + 0x04180300: 0x040D, + 0x04230306: 0x040E, + 0x04180306: 0x0419, + 0x04380306: 0x0439, + 0x04350300: 0x0450, + 0x04350308: 0x0451, + 0x04330301: 0x0453, + 0x04560308: 0x0457, + 0x043A0301: 0x045C, + 0x04380300: 0x045D, + 0x04430306: 0x045E, + 0x0474030F: 0x0476, + 0x0475030F: 0x0477, + 0x04160306: 0x04C1, + 0x04360306: 0x04C2, + 0x04100306: 0x04D0, + 0x04300306: 0x04D1, + 0x04100308: 0x04D2, + 0x04300308: 0x04D3, + 0x04150306: 0x04D6, + 0x04350306: 0x04D7, + 0x04D80308: 0x04DA, + 0x04D90308: 0x04DB, + 0x04160308: 0x04DC, + 0x04360308: 0x04DD, + 0x04170308: 0x04DE, + 0x04370308: 0x04DF, + 0x04180304: 0x04E2, + 0x04380304: 0x04E3, + 0x04180308: 0x04E4, + 0x04380308: 0x04E5, + 0x041E0308: 0x04E6, + 0x043E0308: 0x04E7, + 0x04E80308: 0x04EA, + 0x04E90308: 0x04EB, + 0x042D0308: 0x04EC, + 0x044D0308: 0x04ED, + 0x04230304: 0x04EE, + 0x04430304: 0x04EF, + 0x04230308: 0x04F0, + 0x04430308: 0x04F1, + 0x0423030B: 0x04F2, + 0x0443030B: 0x04F3, + 0x04270308: 0x04F4, + 0x04470308: 0x04F5, + 0x042B0308: 0x04F8, + 0x044B0308: 0x04F9, + 0x06270653: 0x0622, + 0x06270654: 0x0623, + 0x06480654: 0x0624, + 0x06270655: 0x0625, + 0x064A0654: 0x0626, + 0x06D50654: 0x06C0, + 0x06C10654: 0x06C2, + 0x06D20654: 0x06D3, + 0x0928093C: 0x0929, + 0x0930093C: 0x0931, + 0x0933093C: 0x0934, + 0x09C709BE: 0x09CB, + 0x09C709D7: 0x09CC, + 0x0B470B56: 0x0B48, + 0x0B470B3E: 0x0B4B, + 0x0B470B57: 0x0B4C, + 0x0B920BD7: 0x0B94, + 0x0BC60BBE: 0x0BCA, + 0x0BC70BBE: 0x0BCB, + 0x0BC60BD7: 0x0BCC, + 0x0C460C56: 0x0C48, + 0x0CBF0CD5: 0x0CC0, + 0x0CC60CD5: 0x0CC7, + 0x0CC60CD6: 0x0CC8, + 0x0CC60CC2: 0x0CCA, + 0x0CCA0CD5: 0x0CCB, + 0x0D460D3E: 0x0D4A, + 0x0D470D3E: 0x0D4B, + 0x0D460D57: 0x0D4C, + 0x0DD90DCA: 0x0DDA, + 0x0DD90DCF: 0x0DDC, + 0x0DDC0DCA: 0x0DDD, + 0x0DD90DDF: 0x0DDE, + 0x1025102E: 0x1026, + 0x1B051B35: 0x1B06, + 0x1B071B35: 0x1B08, + 0x1B091B35: 0x1B0A, + 0x1B0B1B35: 0x1B0C, + 0x1B0D1B35: 0x1B0E, + 0x1B111B35: 0x1B12, + 0x1B3A1B35: 0x1B3B, + 0x1B3C1B35: 0x1B3D, + 0x1B3E1B35: 0x1B40, + 0x1B3F1B35: 0x1B41, + 0x1B421B35: 0x1B43, + 0x00410325: 0x1E00, + 0x00610325: 0x1E01, + 0x00420307: 0x1E02, + 0x00620307: 0x1E03, + 0x00420323: 0x1E04, + 0x00620323: 0x1E05, + 0x00420331: 0x1E06, + 0x00620331: 0x1E07, + 0x00C70301: 0x1E08, + 0x00E70301: 0x1E09, + 0x00440307: 0x1E0A, + 0x00640307: 0x1E0B, + 0x00440323: 0x1E0C, + 0x00640323: 0x1E0D, + 0x00440331: 0x1E0E, + 0x00640331: 0x1E0F, + 0x00440327: 0x1E10, + 0x00640327: 0x1E11, + 0x0044032D: 0x1E12, + 0x0064032D: 0x1E13, + 0x01120300: 0x1E14, + 0x01130300: 0x1E15, + 0x01120301: 0x1E16, + 0x01130301: 0x1E17, + 0x0045032D: 0x1E18, + 0x0065032D: 0x1E19, + 0x00450330: 0x1E1A, + 0x00650330: 0x1E1B, + 0x02280306: 0x1E1C, + 0x02290306: 0x1E1D, + 0x00460307: 0x1E1E, + 0x00660307: 0x1E1F, + 0x00470304: 0x1E20, + 0x00670304: 0x1E21, + 0x00480307: 0x1E22, + 0x00680307: 0x1E23, + 0x00480323: 0x1E24, + 0x00680323: 0x1E25, + 0x00480308: 0x1E26, + 0x00680308: 0x1E27, + 0x00480327: 0x1E28, + 0x00680327: 0x1E29, + 0x0048032E: 0x1E2A, + 0x0068032E: 0x1E2B, + 0x00490330: 0x1E2C, + 0x00690330: 0x1E2D, + 0x00CF0301: 0x1E2E, + 0x00EF0301: 0x1E2F, + 0x004B0301: 0x1E30, + 0x006B0301: 0x1E31, + 0x004B0323: 0x1E32, + 0x006B0323: 0x1E33, + 0x004B0331: 0x1E34, + 0x006B0331: 0x1E35, + 0x004C0323: 0x1E36, + 0x006C0323: 0x1E37, + 0x1E360304: 0x1E38, + 0x1E370304: 0x1E39, + 0x004C0331: 0x1E3A, + 0x006C0331: 0x1E3B, + 0x004C032D: 0x1E3C, + 0x006C032D: 0x1E3D, + 0x004D0301: 0x1E3E, + 0x006D0301: 0x1E3F, + 0x004D0307: 0x1E40, + 0x006D0307: 0x1E41, + 0x004D0323: 0x1E42, + 0x006D0323: 0x1E43, + 0x004E0307: 0x1E44, + 0x006E0307: 0x1E45, + 0x004E0323: 0x1E46, + 0x006E0323: 0x1E47, + 0x004E0331: 0x1E48, + 0x006E0331: 0x1E49, + 0x004E032D: 0x1E4A, + 0x006E032D: 0x1E4B, + 0x00D50301: 0x1E4C, + 0x00F50301: 0x1E4D, + 0x00D50308: 0x1E4E, + 0x00F50308: 0x1E4F, + 0x014C0300: 0x1E50, + 0x014D0300: 0x1E51, + 0x014C0301: 0x1E52, + 0x014D0301: 0x1E53, + 0x00500301: 0x1E54, + 0x00700301: 0x1E55, + 0x00500307: 0x1E56, + 0x00700307: 0x1E57, + 0x00520307: 0x1E58, + 0x00720307: 0x1E59, + 0x00520323: 0x1E5A, + 0x00720323: 0x1E5B, + 0x1E5A0304: 0x1E5C, + 0x1E5B0304: 0x1E5D, + 0x00520331: 0x1E5E, + 0x00720331: 0x1E5F, + 0x00530307: 0x1E60, + 0x00730307: 0x1E61, + 0x00530323: 0x1E62, + 0x00730323: 0x1E63, + 0x015A0307: 0x1E64, + 0x015B0307: 0x1E65, + 0x01600307: 0x1E66, + 0x01610307: 0x1E67, + 0x1E620307: 0x1E68, + 0x1E630307: 0x1E69, + 0x00540307: 0x1E6A, + 0x00740307: 0x1E6B, + 0x00540323: 0x1E6C, + 0x00740323: 0x1E6D, + 0x00540331: 0x1E6E, + 0x00740331: 0x1E6F, + 0x0054032D: 0x1E70, + 0x0074032D: 0x1E71, + 0x00550324: 0x1E72, + 0x00750324: 0x1E73, + 0x00550330: 0x1E74, + 0x00750330: 0x1E75, + 0x0055032D: 0x1E76, + 0x0075032D: 0x1E77, + 0x01680301: 0x1E78, + 0x01690301: 0x1E79, + 0x016A0308: 0x1E7A, + 0x016B0308: 0x1E7B, + 0x00560303: 0x1E7C, + 0x00760303: 0x1E7D, + 0x00560323: 0x1E7E, + 0x00760323: 0x1E7F, + 0x00570300: 0x1E80, + 0x00770300: 0x1E81, + 0x00570301: 0x1E82, + 0x00770301: 0x1E83, + 0x00570308: 0x1E84, + 0x00770308: 0x1E85, + 0x00570307: 0x1E86, + 0x00770307: 0x1E87, + 0x00570323: 0x1E88, + 0x00770323: 0x1E89, + 0x00580307: 0x1E8A, + 0x00780307: 0x1E8B, + 0x00580308: 0x1E8C, + 0x00780308: 0x1E8D, + 0x00590307: 0x1E8E, + 0x00790307: 0x1E8F, + 0x005A0302: 0x1E90, + 0x007A0302: 0x1E91, + 0x005A0323: 0x1E92, + 0x007A0323: 0x1E93, + 0x005A0331: 0x1E94, + 0x007A0331: 0x1E95, + 0x00680331: 0x1E96, + 0x00740308: 0x1E97, + 0x0077030A: 0x1E98, + 0x0079030A: 0x1E99, + 0x017F0307: 0x1E9B, + 0x00410323: 0x1EA0, + 0x00610323: 0x1EA1, + 0x00410309: 0x1EA2, + 0x00610309: 0x1EA3, + 0x00C20301: 0x1EA4, + 0x00E20301: 0x1EA5, + 0x00C20300: 0x1EA6, + 0x00E20300: 0x1EA7, + 0x00C20309: 0x1EA8, + 0x00E20309: 0x1EA9, + 0x00C20303: 0x1EAA, + 0x00E20303: 0x1EAB, + 0x1EA00302: 0x1EAC, + 0x1EA10302: 0x1EAD, + 0x01020301: 0x1EAE, + 0x01030301: 0x1EAF, + 0x01020300: 0x1EB0, + 0x01030300: 0x1EB1, + 0x01020309: 0x1EB2, + 0x01030309: 0x1EB3, + 0x01020303: 0x1EB4, + 0x01030303: 0x1EB5, + 0x1EA00306: 0x1EB6, + 0x1EA10306: 0x1EB7, + 0x00450323: 0x1EB8, + 0x00650323: 0x1EB9, + 0x00450309: 0x1EBA, + 0x00650309: 0x1EBB, + 0x00450303: 0x1EBC, + 0x00650303: 0x1EBD, + 0x00CA0301: 0x1EBE, + 0x00EA0301: 0x1EBF, + 0x00CA0300: 0x1EC0, + 0x00EA0300: 0x1EC1, + 0x00CA0309: 0x1EC2, + 0x00EA0309: 0x1EC3, + 0x00CA0303: 0x1EC4, + 0x00EA0303: 0x1EC5, + 0x1EB80302: 0x1EC6, + 0x1EB90302: 0x1EC7, + 0x00490309: 0x1EC8, + 0x00690309: 0x1EC9, + 0x00490323: 0x1ECA, + 0x00690323: 0x1ECB, + 0x004F0323: 0x1ECC, + 0x006F0323: 0x1ECD, + 0x004F0309: 0x1ECE, + 0x006F0309: 0x1ECF, + 0x00D40301: 0x1ED0, + 0x00F40301: 0x1ED1, + 0x00D40300: 0x1ED2, + 0x00F40300: 0x1ED3, + 0x00D40309: 0x1ED4, + 0x00F40309: 0x1ED5, + 0x00D40303: 0x1ED6, + 0x00F40303: 0x1ED7, + 0x1ECC0302: 0x1ED8, + 0x1ECD0302: 0x1ED9, + 0x01A00301: 0x1EDA, + 0x01A10301: 0x1EDB, + 0x01A00300: 0x1EDC, + 0x01A10300: 0x1EDD, + 0x01A00309: 0x1EDE, + 0x01A10309: 0x1EDF, + 0x01A00303: 0x1EE0, + 0x01A10303: 0x1EE1, + 0x01A00323: 0x1EE2, + 0x01A10323: 0x1EE3, + 0x00550323: 0x1EE4, + 0x00750323: 0x1EE5, + 0x00550309: 0x1EE6, + 0x00750309: 0x1EE7, + 0x01AF0301: 0x1EE8, + 0x01B00301: 0x1EE9, + 0x01AF0300: 0x1EEA, + 0x01B00300: 0x1EEB, + 0x01AF0309: 0x1EEC, + 0x01B00309: 0x1EED, + 0x01AF0303: 0x1EEE, + 0x01B00303: 0x1EEF, + 0x01AF0323: 0x1EF0, + 0x01B00323: 0x1EF1, + 0x00590300: 0x1EF2, + 0x00790300: 0x1EF3, + 0x00590323: 0x1EF4, + 0x00790323: 0x1EF5, + 0x00590309: 0x1EF6, + 0x00790309: 0x1EF7, + 0x00590303: 0x1EF8, + 0x00790303: 0x1EF9, + 0x03B10313: 0x1F00, + 0x03B10314: 0x1F01, + 0x1F000300: 0x1F02, + 0x1F010300: 0x1F03, + 0x1F000301: 0x1F04, + 0x1F010301: 0x1F05, + 0x1F000342: 0x1F06, + 0x1F010342: 0x1F07, + 0x03910313: 0x1F08, + 0x03910314: 0x1F09, + 0x1F080300: 0x1F0A, + 0x1F090300: 0x1F0B, + 0x1F080301: 0x1F0C, + 0x1F090301: 0x1F0D, + 0x1F080342: 0x1F0E, + 0x1F090342: 0x1F0F, + 0x03B50313: 0x1F10, + 0x03B50314: 0x1F11, + 0x1F100300: 0x1F12, + 0x1F110300: 0x1F13, + 0x1F100301: 0x1F14, + 0x1F110301: 0x1F15, + 0x03950313: 0x1F18, + 0x03950314: 0x1F19, + 0x1F180300: 0x1F1A, + 0x1F190300: 0x1F1B, + 0x1F180301: 0x1F1C, + 0x1F190301: 0x1F1D, + 0x03B70313: 0x1F20, + 0x03B70314: 0x1F21, + 0x1F200300: 0x1F22, + 0x1F210300: 0x1F23, + 0x1F200301: 0x1F24, + 0x1F210301: 0x1F25, + 0x1F200342: 0x1F26, + 0x1F210342: 0x1F27, + 0x03970313: 0x1F28, + 0x03970314: 0x1F29, + 0x1F280300: 0x1F2A, + 0x1F290300: 0x1F2B, + 0x1F280301: 0x1F2C, + 0x1F290301: 0x1F2D, + 0x1F280342: 0x1F2E, + 0x1F290342: 0x1F2F, + 0x03B90313: 0x1F30, + 0x03B90314: 0x1F31, + 0x1F300300: 0x1F32, + 0x1F310300: 0x1F33, + 0x1F300301: 0x1F34, + 0x1F310301: 0x1F35, + 0x1F300342: 0x1F36, + 0x1F310342: 0x1F37, + 0x03990313: 0x1F38, + 0x03990314: 0x1F39, + 0x1F380300: 0x1F3A, + 0x1F390300: 0x1F3B, + 0x1F380301: 0x1F3C, + 0x1F390301: 0x1F3D, + 0x1F380342: 0x1F3E, + 0x1F390342: 0x1F3F, + 0x03BF0313: 0x1F40, + 0x03BF0314: 0x1F41, + 0x1F400300: 0x1F42, + 0x1F410300: 0x1F43, + 0x1F400301: 0x1F44, + 0x1F410301: 0x1F45, + 0x039F0313: 0x1F48, + 0x039F0314: 0x1F49, + 0x1F480300: 0x1F4A, + 0x1F490300: 0x1F4B, + 0x1F480301: 0x1F4C, + 0x1F490301: 0x1F4D, + 0x03C50313: 0x1F50, + 0x03C50314: 0x1F51, + 0x1F500300: 0x1F52, + 0x1F510300: 0x1F53, + 0x1F500301: 0x1F54, + 0x1F510301: 0x1F55, + 0x1F500342: 0x1F56, + 0x1F510342: 0x1F57, + 0x03A50314: 0x1F59, + 0x1F590300: 0x1F5B, + 0x1F590301: 0x1F5D, + 0x1F590342: 0x1F5F, + 0x03C90313: 0x1F60, + 0x03C90314: 0x1F61, + 0x1F600300: 0x1F62, + 0x1F610300: 0x1F63, + 0x1F600301: 0x1F64, + 0x1F610301: 0x1F65, + 0x1F600342: 0x1F66, + 0x1F610342: 0x1F67, + 0x03A90313: 0x1F68, + 0x03A90314: 0x1F69, + 0x1F680300: 0x1F6A, + 0x1F690300: 0x1F6B, + 0x1F680301: 0x1F6C, + 0x1F690301: 0x1F6D, + 0x1F680342: 0x1F6E, + 0x1F690342: 0x1F6F, + 0x03B10300: 0x1F70, + 0x03B50300: 0x1F72, + 0x03B70300: 0x1F74, + 0x03B90300: 0x1F76, + 0x03BF0300: 0x1F78, + 0x03C50300: 0x1F7A, + 0x03C90300: 0x1F7C, + 0x1F000345: 0x1F80, + 0x1F010345: 0x1F81, + 0x1F020345: 0x1F82, + 0x1F030345: 0x1F83, + 0x1F040345: 0x1F84, + 0x1F050345: 0x1F85, + 0x1F060345: 0x1F86, + 0x1F070345: 0x1F87, + 0x1F080345: 0x1F88, + 0x1F090345: 0x1F89, + 0x1F0A0345: 0x1F8A, + 0x1F0B0345: 0x1F8B, + 0x1F0C0345: 0x1F8C, + 0x1F0D0345: 0x1F8D, + 0x1F0E0345: 0x1F8E, + 0x1F0F0345: 0x1F8F, + 0x1F200345: 0x1F90, + 0x1F210345: 0x1F91, + 0x1F220345: 0x1F92, + 0x1F230345: 0x1F93, + 0x1F240345: 0x1F94, + 0x1F250345: 0x1F95, + 0x1F260345: 0x1F96, + 0x1F270345: 0x1F97, + 0x1F280345: 0x1F98, + 0x1F290345: 0x1F99, + 0x1F2A0345: 0x1F9A, + 0x1F2B0345: 0x1F9B, + 0x1F2C0345: 0x1F9C, + 0x1F2D0345: 0x1F9D, + 0x1F2E0345: 0x1F9E, + 0x1F2F0345: 0x1F9F, + 0x1F600345: 0x1FA0, + 0x1F610345: 0x1FA1, + 0x1F620345: 0x1FA2, + 0x1F630345: 0x1FA3, + 0x1F640345: 0x1FA4, + 0x1F650345: 0x1FA5, + 0x1F660345: 0x1FA6, + 0x1F670345: 0x1FA7, + 0x1F680345: 0x1FA8, + 0x1F690345: 0x1FA9, + 0x1F6A0345: 0x1FAA, + 0x1F6B0345: 0x1FAB, + 0x1F6C0345: 0x1FAC, + 0x1F6D0345: 0x1FAD, + 0x1F6E0345: 0x1FAE, + 0x1F6F0345: 0x1FAF, + 0x03B10306: 0x1FB0, + 0x03B10304: 0x1FB1, + 0x1F700345: 0x1FB2, + 0x03B10345: 0x1FB3, + 0x03AC0345: 0x1FB4, + 0x03B10342: 0x1FB6, + 0x1FB60345: 0x1FB7, + 0x03910306: 0x1FB8, + 0x03910304: 0x1FB9, + 0x03910300: 0x1FBA, + 0x03910345: 0x1FBC, + 0x00A80342: 0x1FC1, + 0x1F740345: 0x1FC2, + 0x03B70345: 0x1FC3, + 0x03AE0345: 0x1FC4, + 0x03B70342: 0x1FC6, + 0x1FC60345: 0x1FC7, + 0x03950300: 0x1FC8, + 0x03970300: 0x1FCA, + 0x03970345: 0x1FCC, + 0x1FBF0300: 0x1FCD, + 0x1FBF0301: 0x1FCE, + 0x1FBF0342: 0x1FCF, + 0x03B90306: 0x1FD0, + 0x03B90304: 0x1FD1, + 0x03CA0300: 0x1FD2, + 0x03B90342: 0x1FD6, + 0x03CA0342: 0x1FD7, + 0x03990306: 0x1FD8, + 0x03990304: 0x1FD9, + 0x03990300: 0x1FDA, + 0x1FFE0300: 0x1FDD, + 0x1FFE0301: 0x1FDE, + 0x1FFE0342: 0x1FDF, + 0x03C50306: 0x1FE0, + 0x03C50304: 0x1FE1, + 0x03CB0300: 0x1FE2, + 0x03C10313: 0x1FE4, + 0x03C10314: 0x1FE5, + 0x03C50342: 0x1FE6, + 0x03CB0342: 0x1FE7, + 0x03A50306: 0x1FE8, + 0x03A50304: 0x1FE9, + 0x03A50300: 0x1FEA, + 0x03A10314: 0x1FEC, + 0x00A80300: 0x1FED, + 0x1F7C0345: 0x1FF2, + 0x03C90345: 0x1FF3, + 0x03CE0345: 0x1FF4, + 0x03C90342: 0x1FF6, + 0x1FF60345: 0x1FF7, + 0x039F0300: 0x1FF8, + 0x03A90300: 0x1FFA, + 0x03A90345: 0x1FFC, + 0x21900338: 0x219A, + 0x21920338: 0x219B, + 0x21940338: 0x21AE, + 0x21D00338: 0x21CD, + 0x21D40338: 0x21CE, + 0x21D20338: 0x21CF, + 0x22030338: 0x2204, + 0x22080338: 0x2209, + 0x220B0338: 0x220C, + 0x22230338: 0x2224, + 0x22250338: 0x2226, + 0x223C0338: 0x2241, + 0x22430338: 0x2244, + 0x22450338: 0x2247, + 0x22480338: 0x2249, + 0x003D0338: 0x2260, + 0x22610338: 0x2262, + 0x224D0338: 0x226D, + 0x003C0338: 0x226E, + 0x003E0338: 0x226F, + 0x22640338: 0x2270, + 0x22650338: 0x2271, + 0x22720338: 0x2274, + 0x22730338: 0x2275, + 0x22760338: 0x2278, + 0x22770338: 0x2279, + 0x227A0338: 0x2280, + 0x227B0338: 0x2281, + 0x22820338: 0x2284, + 0x22830338: 0x2285, + 0x22860338: 0x2288, + 0x22870338: 0x2289, + 0x22A20338: 0x22AC, + 0x22A80338: 0x22AD, + 0x22A90338: 0x22AE, + 0x22AB0338: 0x22AF, + 0x227C0338: 0x22E0, + 0x227D0338: 0x22E1, + 0x22910338: 0x22E2, + 0x22920338: 0x22E3, + 0x22B20338: 0x22EA, + 0x22B30338: 0x22EB, + 0x22B40338: 0x22EC, + 0x22B50338: 0x22ED, + 0x304B3099: 0x304C, + 0x304D3099: 0x304E, + 0x304F3099: 0x3050, + 0x30513099: 0x3052, + 0x30533099: 0x3054, + 0x30553099: 0x3056, + 0x30573099: 0x3058, + 0x30593099: 0x305A, + 0x305B3099: 0x305C, + 0x305D3099: 0x305E, + 0x305F3099: 0x3060, + 0x30613099: 0x3062, + 0x30643099: 0x3065, + 0x30663099: 0x3067, + 0x30683099: 0x3069, + 0x306F3099: 0x3070, + 0x306F309A: 0x3071, + 0x30723099: 0x3073, + 0x3072309A: 0x3074, + 0x30753099: 0x3076, + 0x3075309A: 0x3077, + 0x30783099: 0x3079, + 0x3078309A: 0x307A, + 0x307B3099: 0x307C, + 0x307B309A: 0x307D, + 0x30463099: 0x3094, + 0x309D3099: 0x309E, + 0x30AB3099: 0x30AC, + 0x30AD3099: 0x30AE, + 0x30AF3099: 0x30B0, + 0x30B13099: 0x30B2, + 0x30B33099: 0x30B4, + 0x30B53099: 0x30B6, + 0x30B73099: 0x30B8, + 0x30B93099: 0x30BA, + 0x30BB3099: 0x30BC, + 0x30BD3099: 0x30BE, + 0x30BF3099: 0x30C0, + 0x30C13099: 0x30C2, + 0x30C43099: 0x30C5, + 0x30C63099: 0x30C7, + 0x30C83099: 0x30C9, + 0x30CF3099: 0x30D0, + 0x30CF309A: 0x30D1, + 0x30D23099: 0x30D3, + 0x30D2309A: 0x30D4, + 0x30D53099: 0x30D6, + 0x30D5309A: 0x30D7, + 0x30D83099: 0x30D9, + 0x30D8309A: 0x30DA, + 0x30DB3099: 0x30DC, + 0x30DB309A: 0x30DD, + 0x30A63099: 0x30F4, + 0x30EF3099: 0x30F7, + 0x30F03099: 0x30F8, + 0x30F13099: 0x30F9, + 0x30F23099: 0x30FA, + 0x30FD3099: 0x30FE, + 0x109910BA: 0x1109A, + 0x109B10BA: 0x1109C, + 0x10A510BA: 0x110AB, + 0x11311127: 0x1112E, + 0x11321127: 0x1112F, + 0x1347133E: 0x1134B, + 0x13471357: 0x1134C, + 0x14B914BA: 0x114BB, + 0x14B914B0: 0x114BC, + 0x14B914BD: 0x114BE, + 0x15B815AF: 0x115BA, + 0x15B915AF: 0x115BB, +} -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "" - // Total size of tables: 53KB (54226 bytes) +// Total size of tables: 53KB (54226 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go deleted file mode 100644 index 7297cce32..000000000 --- a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +++ /dev/null @@ -1,7693 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -// +build go1.13 - -package norm - -import "sync" - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "11.0.0" - - // MaxTransformChunkSize indicates the maximum number of bytes that Transform - // may need to write atomically for any Form. Making a destination buffer at - // least this size ensures that Transform can always make progress and that - // the user does not need to grow the buffer on an ErrShortDst. - MaxTransformChunkSize = 35 + maxNonStarters*4 -) - -var ccc = [55]uint8{ - 0, 1, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, - 84, 91, 103, 107, 118, 122, 129, 130, - 132, 202, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 233, 234, 240, -} - -const ( - firstMulti = 0x186D - firstCCC = 0x2C9E - endMulti = 0x2F60 - firstLeadingCCC = 0x49AE - firstCCCZeroExcept = 0x4A78 - firstStarterWithNLead = 0x4A9F - lastDecomp = 0x4AA1 - maxDecomp = 0x8000 -) - -// decomps: 19105 bytes -var decomps = [...]byte{ - // Bytes 0 - 3f - 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, - 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, - 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, - 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, - 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, - 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, - 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, - 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, - // Bytes 40 - 7f - 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, - 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, - 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, - 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, - 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, - 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, - 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, - 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, - // Bytes 80 - bf - 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, - 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, - 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, - 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, - 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, - 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, - 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, - 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, - // Bytes c0 - ff - 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, - 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, - 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, - 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, - 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, - 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, - 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, - 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, - // Bytes 100 - 13f - 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, - 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, - 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, - 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, - 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, - 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, - 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, - 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, - // Bytes 140 - 17f - 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, - 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, - 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, - 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, - 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, - 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, - 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, - 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, - // Bytes 180 - 1bf - 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, - 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, - 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, - 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, - 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, - 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, - 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, - 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, - // Bytes 1c0 - 1ff - 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, - 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, - 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, - 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, - 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, - 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, - 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, - 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, - // Bytes 200 - 23f - 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, - 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, - 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, - 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, - 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, - 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, - 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, - 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, - // Bytes 240 - 27f - 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, - 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, - 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, - 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, - 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, - 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, - 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, - 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, - // Bytes 280 - 2bf - 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, - 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, - 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, - 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, - 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, - 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, - 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, - 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, - // Bytes 2c0 - 2ff - 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, - 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, - 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, - 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, - 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, - 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, - 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, - 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, - // Bytes 300 - 33f - 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, - 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, - 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, - 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, - 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, - 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, - 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, - 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, - // Bytes 340 - 37f - 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, - 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, - 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, - 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, - 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, - 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, - 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, - 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, - // Bytes 380 - 3bf - 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, - 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, - 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, - 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, - 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, - 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, - 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, - 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, - // Bytes 3c0 - 3ff - 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, - 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, - 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, - 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, - 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, - 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, - 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, - 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, - // Bytes 400 - 43f - 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, - 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, - 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, - 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, - 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, - 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, - 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, - 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, - // Bytes 440 - 47f - 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, - 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, - 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, - 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, - 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, - 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, - 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, - 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, - // Bytes 480 - 4bf - 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, - 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, - 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, - 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, - 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, - 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, - 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, - 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, - // Bytes 4c0 - 4ff - 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, - 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, - 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, - 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, - 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, - 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, - 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, - 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, - // Bytes 500 - 53f - 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, - 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, - 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, - 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, - 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, - 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, - 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, - 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, - // Bytes 540 - 57f - 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, - 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, - 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, - 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, - 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, - 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, - 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, - 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, - // Bytes 580 - 5bf - 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, - 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, - 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, - 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, - 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, - 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, - 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, - 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, - // Bytes 5c0 - 5ff - 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, - 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, - 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, - 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, - 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, - 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, - 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, - 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, - // Bytes 600 - 63f - 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, - 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, - 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, - 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, - 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, - 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, - 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, - 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, - // Bytes 640 - 67f - 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, - 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, - 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, - 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, - 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, - 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, - 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, - 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, - // Bytes 680 - 6bf - 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, - 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, - 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, - 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, - 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, - 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, - 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, - 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, - // Bytes 6c0 - 6ff - 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, - 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, - 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, - 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, - 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, - 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, - 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, - 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, - // Bytes 700 - 73f - 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, - 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, - 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, - 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, - 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, - 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, - 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, - 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, - // Bytes 740 - 77f - 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, - 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, - 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, - 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, - 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, - 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, - 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, - 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, - // Bytes 780 - 7bf - 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, - 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, - 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, - 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, - 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, - 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, - 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, - 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, - // Bytes 7c0 - 7ff - 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, - 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, - 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, - 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, - 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, - 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, - 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, - 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, - // Bytes 800 - 83f - 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, - 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, - 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, - 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, - 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, - 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, - 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, - 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, - // Bytes 840 - 87f - 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, - 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, - 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, - 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, - 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, - 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, - 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, - 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, - // Bytes 880 - 8bf - 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, - 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, - 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, - 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, - 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, - 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, - 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, - 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, - // Bytes 8c0 - 8ff - 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, - 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, - 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, - 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, - 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, - 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, - 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, - 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, - // Bytes 900 - 93f - 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, - 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, - 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, - 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, - 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, - 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, - 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, - 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, - // Bytes 940 - 97f - 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, - 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, - 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, - 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, - 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, - 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, - 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, - 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, - // Bytes 980 - 9bf - 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, - 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, - 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, - 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, - 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, - 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, - 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, - 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, - // Bytes 9c0 - 9ff - 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, - 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, - 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, - 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, - 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, - 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, - 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, - 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, - // Bytes a00 - a3f - 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, - 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, - 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, - 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, - 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, - 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, - 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, - 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, - // Bytes a40 - a7f - 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, - 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, - 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, - 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, - 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, - 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, - 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, - 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, - // Bytes a80 - abf - 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, - 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, - 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, - 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, - 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, - 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, - 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, - 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, - // Bytes ac0 - aff - 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, - 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, - 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, - 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, - 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, - 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, - 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, - 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, - // Bytes b00 - b3f - 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, - 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, - 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, - 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, - 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, - 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, - 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, - 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, - // Bytes b40 - b7f - 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, - 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, - 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, - 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, - 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, - 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, - 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, - 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, - // Bytes b80 - bbf - 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, - 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, - 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, - 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, - 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, - 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, - 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, - 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, - // Bytes bc0 - bff - 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, - 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, - 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, - 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, - 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, - 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, - 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, - 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, - // Bytes c00 - c3f - 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, - 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, - 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, - 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, - 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, - 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, - 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, - 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, - // Bytes c40 - c7f - 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, - 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, - 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, - 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, - 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, - 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, - 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, - 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, - // Bytes c80 - cbf - 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, - 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, - 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, - 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, - 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, - 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, - 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, - 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, - // Bytes cc0 - cff - 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, - 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, - 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, - 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, - 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, - 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, - 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, - 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, - // Bytes d00 - d3f - 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, - 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, - 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, - 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, - 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, - 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, - 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, - 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, - // Bytes d40 - d7f - 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, - 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, - 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, - 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, - 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, - 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, - 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, - 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, - // Bytes d80 - dbf - 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, - 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, - 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, - 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, - 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, - 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, - 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, - 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, - // Bytes dc0 - dff - 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, - 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, - 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, - 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, - 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, - 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, - 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, - 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, - // Bytes e00 - e3f - 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, - 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, - 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, - 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, - 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, - 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, - 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, - 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, - // Bytes e40 - e7f - 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, - 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, - 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, - 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, - 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, - 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, - 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, - 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, - // Bytes e80 - ebf - 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, - 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, - 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, - 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, - 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, - 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, - 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, - 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, - // Bytes ec0 - eff - 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, - 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, - 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, - 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, - 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, - 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, - 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, - 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, - // Bytes f00 - f3f - 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, - 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, - 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, - 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, - 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, - 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, - 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, - 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, - // Bytes f40 - f7f - 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, - 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, - 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, - 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, - 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, - 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, - 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, - 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, - // Bytes f80 - fbf - 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, - 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, - 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, - 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, - 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, - 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, - 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, - 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, - // Bytes fc0 - fff - 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, - 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, - 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, - 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, - 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, - 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, - 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, - 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, - // Bytes 1000 - 103f - 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, - 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, - 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, - 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, - 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, - 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, - 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, - 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, - // Bytes 1040 - 107f - 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, - 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, - 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, - 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, - 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, - 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, - 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, - 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, - // Bytes 1080 - 10bf - 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, - 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, - 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, - 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, - 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, - 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, - 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, - 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, - // Bytes 10c0 - 10ff - 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, - 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, - 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, - 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, - 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, - 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, - 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, - 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, - // Bytes 1100 - 113f - 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, - 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, - 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, - 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, - 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, - 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, - 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, - 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, - // Bytes 1140 - 117f - 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, - 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, - 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, - 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, - 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, - 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, - 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, - 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, - // Bytes 1180 - 11bf - 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, - 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, - 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, - 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, - 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, - 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, - 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, - 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, - // Bytes 11c0 - 11ff - 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, - 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, - 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, - 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, - 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, - 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, - 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, - 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, - // Bytes 1200 - 123f - 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, - 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, - 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, - 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, - 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, - 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, - 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, - 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, - // Bytes 1240 - 127f - 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, - 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, - 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, - 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, - 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, - 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, - 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, - 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, - // Bytes 1280 - 12bf - 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, - 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, - 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, - 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, - 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, - 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, - 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, - 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, - // Bytes 12c0 - 12ff - 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, - 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, - 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, - 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, - 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, - 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, - 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, - 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, - // Bytes 1300 - 133f - 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, - 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, - 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, - 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, - 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, - 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, - 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, - 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, - // Bytes 1340 - 137f - 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, - 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, - 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, - 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, - 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, - 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, - 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, - 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, - // Bytes 1380 - 13bf - 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, - 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, - 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, - 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, - 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, - 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, - 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, - 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, - // Bytes 13c0 - 13ff - 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, - 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, - 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, - 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, - 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, - 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, - 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, - 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, - // Bytes 1400 - 143f - 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, - 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, - 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, - 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, - 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, - 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, - 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, - 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, - // Bytes 1440 - 147f - 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, - 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, - 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, - 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, - 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, - 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, - 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, - 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, - // Bytes 1480 - 14bf - 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, - 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, - 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, - 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, - 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, - 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, - 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, - 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, - // Bytes 14c0 - 14ff - 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, - 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, - 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, - 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, - 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, - 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, - 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, - 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, - // Bytes 1500 - 153f - 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, - 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, - 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, - 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, - 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, - 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, - 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, - 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, - // Bytes 1540 - 157f - 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, - 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, - 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, - 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, - 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, - 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, - 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, - 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, - // Bytes 1580 - 15bf - 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, - 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, - 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, - 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, - 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, - 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, - 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, - 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, - // Bytes 15c0 - 15ff - 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, - 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, - 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, - 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, - 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, - 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, - 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, - 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, - // Bytes 1600 - 163f - 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, - 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, - 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, - 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, - 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, - 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, - 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, - 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, - // Bytes 1640 - 167f - 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, - 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, - 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, - 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, - 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, - 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, - 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, - 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, - // Bytes 1680 - 16bf - 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, - 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, - 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, - 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, - 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, - 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, - 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, - 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, - // Bytes 16c0 - 16ff - 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, - 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, - 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, - 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, - 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, - 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, - 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, - 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, - // Bytes 1700 - 173f - 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, - 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, - 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, - 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, - 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, - 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, - 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, - 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, - // Bytes 1740 - 177f - 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, - 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, - 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, - 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, - 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, - 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, - 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, - 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, - // Bytes 1780 - 17bf - 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, - 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, - 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, - 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, - 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, - 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, - 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, - 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, - // Bytes 17c0 - 17ff - 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, - 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, - 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, - 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, - 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, - 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, - 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, - 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, - // Bytes 1800 - 183f - 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, - 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, - 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, - 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, - 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, - 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, - 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, - 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, - // Bytes 1840 - 187f - 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, - 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, - 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, - 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, - 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, - 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, - 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, - 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, - // Bytes 1880 - 18bf - 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, - 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, - 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, - 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, - 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, - 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, - 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, - 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, - // Bytes 18c0 - 18ff - 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, - 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, - 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, - 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, - 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, - 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, - 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, - 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, - // Bytes 1900 - 193f - 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, - 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, - 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, - 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, - 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, - 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, - 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, - 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, - // Bytes 1940 - 197f - 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, - 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, - 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, - 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, - 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, - 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, - 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, - 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, - // Bytes 1980 - 19bf - 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, - 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, - 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, - 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, - 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, - 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, - 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, - 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, - // Bytes 19c0 - 19ff - 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, - 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, - 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, - 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, - 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, - 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, - 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, - 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, - // Bytes 1a00 - 1a3f - 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, - 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, - 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, - 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, - 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, - 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, - 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, - 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, - // Bytes 1a40 - 1a7f - 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, - 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, - 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, - 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, - 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, - 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, - 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, - 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, - // Bytes 1a80 - 1abf - 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, - 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, - 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, - 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, - 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, - 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, - 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, - 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, - // Bytes 1ac0 - 1aff - 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, - 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, - 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, - 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, - 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, - 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, - 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, - 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, - // Bytes 1b00 - 1b3f - 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, - 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, - 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, - 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, - 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, - 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, - 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, - 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, - // Bytes 1b40 - 1b7f - 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, - 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, - 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, - 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, - 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, - 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, - 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, - 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, - // Bytes 1b80 - 1bbf - 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, - 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, - 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, - 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, - 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, - 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, - 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, - 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, - // Bytes 1bc0 - 1bff - 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, - 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, - 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, - 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, - 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, - 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, - 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, - 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, - // Bytes 1c00 - 1c3f - 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, - 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, - 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, - 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, - 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, - 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, - 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, - 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, - // Bytes 1c40 - 1c7f - 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, - 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, - 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, - 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, - 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, - 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, - 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, - 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, - // Bytes 1c80 - 1cbf - 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, - 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, - 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, - 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, - 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, - 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, - 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, - 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, - // Bytes 1cc0 - 1cff - 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, - 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, - 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, - 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, - 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, - 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, - 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, - 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, - // Bytes 1d00 - 1d3f - 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, - 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, - 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, - 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, - 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, - 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, - 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, - 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, - // Bytes 1d40 - 1d7f - 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, - 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, - 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, - 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, - 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, - 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, - 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, - 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, - // Bytes 1d80 - 1dbf - 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, - 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, - 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, - 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, - 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, - 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, - 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, - 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, - // Bytes 1dc0 - 1dff - 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, - 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, - 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, - 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, - 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, - 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, - 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, - 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, - // Bytes 1e00 - 1e3f - 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, - 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, - 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, - 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, - 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, - 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, - 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, - 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, - // Bytes 1e40 - 1e7f - 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, - 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, - 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, - 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, - 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, - 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, - 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, - 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, - // Bytes 1e80 - 1ebf - 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, - 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, - 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, - 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, - 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, - 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, - 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, - 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, - // Bytes 1ec0 - 1eff - 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, - 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, - 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, - 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, - 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, - 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, - 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, - 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, - // Bytes 1f00 - 1f3f - 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, - 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, - 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, - 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, - 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, - 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, - 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, - 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, - // Bytes 1f40 - 1f7f - 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, - 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, - 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, - 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, - 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, - 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, - 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, - 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, - // Bytes 1f80 - 1fbf - 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, - 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, - 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, - 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, - 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, - 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, - 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, - 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, - // Bytes 1fc0 - 1fff - 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, - 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, - 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, - 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, - 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, - 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, - 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, - 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, - // Bytes 2000 - 203f - 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, - 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, - 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, - 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, - 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, - 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, - 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, - 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, - // Bytes 2040 - 207f - 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, - 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, - 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, - 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, - // Bytes 2080 - 20bf - 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, - 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, - 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, - 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, - // Bytes 20c0 - 20ff - 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, - 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, - 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, - 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, - 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, - 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, - 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, - 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, - // Bytes 2100 - 213f - 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, - 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, - 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, - 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, - 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, - 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, - 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, - 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, - // Bytes 2140 - 217f - 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, - 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, - 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, - 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, - 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, - 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, - 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, - 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, - // Bytes 2180 - 21bf - 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, - 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, - // Bytes 21c0 - 21ff - 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, - // Bytes 2200 - 223f - 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, - // Bytes 2240 - 227f - 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, - // Bytes 2280 - 22bf - 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, - 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, - 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - // Bytes 22c0 - 22ff - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, - 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, - 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, - 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, - 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, - 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, - 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, - // Bytes 2300 - 233f - 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, - 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, - 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, - // Bytes 2340 - 237f - 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, - 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, - 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - // Bytes 2380 - 23bf - 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, - 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, - 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, - 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, - // Bytes 23c0 - 23ff - 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, - 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, - 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, - 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, - 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, - 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, - // Bytes 2400 - 243f - 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, - 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, - 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, - 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, - 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, - // Bytes 2440 - 247f - 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, - 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, - 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, - 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, - // Bytes 2480 - 24bf - 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, - 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, - 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, - 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, - // Bytes 24c0 - 24ff - 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, - 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, - 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, - 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, - 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, - 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, - // Bytes 2500 - 253f - 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, - 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, - 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - // Bytes 2540 - 257f - 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, - 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, - 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, - 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, - // Bytes 2580 - 25bf - 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, - 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, - 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, - // Bytes 25c0 - 25ff - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, - // Bytes 2600 - 263f - 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, - 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, - 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, - 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, - // Bytes 2640 - 267f - 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, - 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, - 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, - 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, - 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, - // Bytes 2680 - 26bf - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, - 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, - 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, - 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, - 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, - // Bytes 26c0 - 26ff - 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, - 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, - 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, - 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, - 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, - 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, - 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, - // Bytes 2700 - 273f - 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, - 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, - 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, - 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, - 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, - 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, - // Bytes 2740 - 277f - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, - // Bytes 2780 - 27bf - 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, - 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, - 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, - // Bytes 27c0 - 27ff - 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, - 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, - 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, - 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, - 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, - 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, - // Bytes 2800 - 283f - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, - 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, - // Bytes 2840 - 287f - 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, - 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, - // Bytes 2880 - 28bf - 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, - 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, - 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, - 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, - // Bytes 28c0 - 28ff - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, - 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, - 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, - // Bytes 2900 - 293f - 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, - 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, - // Bytes 2940 - 297f - 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, - 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, - 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, - // Bytes 2980 - 29bf - 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, - 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, - // Bytes 29c0 - 29ff - 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, - // Bytes 2a00 - 2a3f - 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, - 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, - 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, - 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2a40 - 2a7f - 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, - 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, - // Bytes 2a80 - 2abf - 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, - 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, - // Bytes 2ac0 - 2aff - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, - 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, - 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, - // Bytes 2b00 - 2b3f - 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, - // Bytes 2b40 - 2b7f - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, - // Bytes 2b80 - 2bbf - 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, - 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, - 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, - // Bytes 2bc0 - 2bff - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2c00 - 2c3f - 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, - 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, - 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, - // Bytes 2c40 - 2c7f - 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, - 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, - 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, - // Bytes 2c80 - 2cbf - 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, - 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, - 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2cc0 - 2cff - 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, - 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2d00 - 2d3f - 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, - 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, - 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, - 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - // Bytes 2d40 - 2d7f - 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, - // Bytes 2d80 - 2dbf - 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, - 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, - 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, - 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, - 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, - 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, - 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, - 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, - // Bytes 2dc0 - 2dff - 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, - 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, - 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, - 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, - 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, - 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, - 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, - // Bytes 2e00 - 2e3f - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e40 - 2e7f - 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, - 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e80 - 2ebf - 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, - 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, - 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, - 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - // Bytes 2ec0 - 2eff - 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, - 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, - 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, - 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, - // Bytes 2f00 - 2f3f - 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, - 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, - // Bytes 2f40 - 2f7f - 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, - 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, - 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, - 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, - 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, - 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, - // Bytes 2f80 - 2fbf - 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, - 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, - 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, - 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, - 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, - 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, - 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, - 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, - // Bytes 2fc0 - 2fff - 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, - 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, - 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, - 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, - 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, - 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, - 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, - 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, - // Bytes 3000 - 303f - 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, - 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, - 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, - 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, - 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, - 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, - 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, - 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, - // Bytes 3040 - 307f - 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, - 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, - 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, - 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, - 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, - 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, - 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, - 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, - // Bytes 3080 - 30bf - 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, - 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, - 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, - 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, - 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, - 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, - 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, - 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, - // Bytes 30c0 - 30ff - 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, - 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, - 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, - 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, - 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, - 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, - 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, - 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, - // Bytes 3100 - 313f - 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, - 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, - 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, - 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, - 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, - 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, - 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, - 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, - // Bytes 3140 - 317f - 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, - 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, - 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, - 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, - 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, - 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, - 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, - 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, - // Bytes 3180 - 31bf - 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, - 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, - 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, - 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, - 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, - 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, - 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, - 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, - // Bytes 31c0 - 31ff - 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, - 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, - 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, - 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, - 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, - 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, - 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, - 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, - // Bytes 3200 - 323f - 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, - 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, - 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, - 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, - 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, - 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, - 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, - 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, - // Bytes 3240 - 327f - 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, - 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, - 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, - 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, - 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, - 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, - 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, - 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, - // Bytes 3280 - 32bf - 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, - 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, - 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, - 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, - 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, - 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, - 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, - 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, - // Bytes 32c0 - 32ff - 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, - 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, - 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, - 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, - 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, - 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, - 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, - 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, - // Bytes 3300 - 333f - 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, - 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, - 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, - 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, - 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, - 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, - 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, - 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, - // Bytes 3340 - 337f - 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, - 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, - 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, - 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, - 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, - 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, - 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, - 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 3380 - 33bf - 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, - 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, - 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, - 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, - 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, - 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, - 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, - 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, - // Bytes 33c0 - 33ff - 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, - 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, - 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, - 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, - 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, - 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, - 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, - 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, - // Bytes 3400 - 343f - 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, - 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, - 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, - 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, - 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, - 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, - 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, - 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, - // Bytes 3440 - 347f - 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, - 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, - 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, - 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, - 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, - 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, - 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, - 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, - // Bytes 3480 - 34bf - 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, - 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, - 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, - 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, - 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, - 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, - 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, - 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, - // Bytes 34c0 - 34ff - 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, - 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, - 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, - 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, - 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, - 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, - 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, - 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, - // Bytes 3500 - 353f - 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, - 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, - 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, - 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, - 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, - 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, - 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, - 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, - // Bytes 3540 - 357f - 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, - 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, - 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, - 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, - 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, - 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, - 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, - 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, - // Bytes 3580 - 35bf - 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, - 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, - 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, - 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, - 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, - 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, - 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, - 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, - // Bytes 35c0 - 35ff - 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, - 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, - 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, - 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, - 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, - // Bytes 3600 - 363f - 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, - 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, - // Bytes 3640 - 367f - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, - // Bytes 3680 - 36bf - 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, - 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, - 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, - // Bytes 36c0 - 36ff - 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, - 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, - 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, - 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, - 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, - 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, - 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, - // Bytes 3700 - 373f - 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, - 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3740 - 377f - 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, - 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, - 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, - 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, - 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, - // Bytes 3780 - 37bf - 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, - // Bytes 37c0 - 37ff - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, - 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, - 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, - 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, - 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3800 - 383f - 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, - 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, - 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, - 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, - 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, - 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, - 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, - 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, - // Bytes 3840 - 387f - 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, - 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, - 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, - 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, - 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, - 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, - 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - // Bytes 3880 - 38bf - 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, - 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, - 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, - 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, - 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, - 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, - 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, - // Bytes 38c0 - 38ff - 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, - 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, - 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, - 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, - 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, - 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, - 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, - 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, - // Bytes 3900 - 393f - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, - 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, - 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, - 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, - 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, - // Bytes 3940 - 397f - 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, - 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, - 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, - 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, - 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, - 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, - 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, - // Bytes 3980 - 39bf - 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, - 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, - 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, - 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, - 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, - 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, - 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, - 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, - // Bytes 39c0 - 39ff - 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, - 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, - 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, - 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - // Bytes 3a00 - 3a3f - 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, - 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, - 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, - 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, - 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - // Bytes 3a40 - 3a7f - 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, - 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, - 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, - 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, - 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, - 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, - 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, - // Bytes 3a80 - 3abf - 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, - 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, - 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, - 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, - 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, - 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, - // Bytes 3ac0 - 3aff - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, - 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, - 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, - 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, - 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, - // Bytes 3b00 - 3b3f - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, - 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, - 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, - 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, - 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, - // Bytes 3b40 - 3b7f - 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, - 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, - 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, - 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, - 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, - 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, - 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, - // Bytes 3b80 - 3bbf - 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, - 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, - 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, - 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, - 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, - 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, - 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, - 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, - // Bytes 3bc0 - 3bff - 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, - 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3c00 - 3c3f - 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - // Bytes 3c40 - 3c7f - 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - // Bytes 3c80 - 3cbf - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, - // Bytes 3cc0 - 3cff - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, - 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - // Bytes 3d00 - 3d3f - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3d40 - 3d7f - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - // Bytes 3d80 - 3dbf - 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - // Bytes 3dc0 - 3dff - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - // Bytes 3e00 - 3e3f - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3e40 - 3e7f - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - // Bytes 3e80 - 3ebf - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - // Bytes 3ec0 - 3eff - 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, - 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, - // Bytes 3f00 - 3f3f - 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f40 - 3f7f - 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f80 - 3fbf - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, - // Bytes 3fc0 - 3fff - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4000 - 403f - 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4040 - 407f - 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4080 - 40bf - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 40c0 - 40ff - 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - // Bytes 4100 - 413f - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - // Bytes 4140 - 417f - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, - // Bytes 4180 - 41bf - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - // Bytes 41c0 - 41ff - 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - // Bytes 4200 - 423f - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, - // Bytes 4240 - 427f - 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, - 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, - 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, - 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, - 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, - 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, - 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, - 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, - // Bytes 4280 - 42bf - 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, - 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, - 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, - 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, - 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, - 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, - 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, - 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, - // Bytes 42c0 - 42ff - 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, - 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, - 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, - 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, - 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, - 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, - 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, - // Bytes 4300 - 433f - 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, - 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, - // Bytes 4340 - 437f - 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, - 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, - 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, - // Bytes 4380 - 43bf - 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, - 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, - // Bytes 43c0 - 43ff - 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, - 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, - 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, - // Bytes 4400 - 443f - 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, - 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, - 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, - 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, - 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, - 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, - 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, - // Bytes 4440 - 447f - 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, - 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, - 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, - 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, - 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, - 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, - 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, - // Bytes 4480 - 44bf - 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, - 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, - 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, - 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, - 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, - 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, - // Bytes 44c0 - 44ff - 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, - 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, - 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, - 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, - 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, - 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, - // Bytes 4500 - 453f - 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, - 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, - // Bytes 4540 - 457f - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, - // Bytes 4580 - 45bf - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, - // Bytes 45c0 - 45ff - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, - 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, - 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, - // Bytes 4600 - 463f - 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, - 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, - 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - // Bytes 4640 - 467f - 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, - 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, - 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, - 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - // Bytes 4680 - 46bf - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, - 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, - 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, - 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, - 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, - 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, - 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, - 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, - // Bytes 46c0 - 46ff - 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, - 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, - 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, - 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, - 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, - 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, - 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, - 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, - // Bytes 4700 - 473f - 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, - 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, - 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, - 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, - 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, - 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, - 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, - 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, - // Bytes 4740 - 477f - 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, - 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, - 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, - 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, - 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, - 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, - 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, - 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, - // Bytes 4780 - 47bf - 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, - 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, - 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, - 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, - 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, - 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, - // Bytes 47c0 - 47ff - 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, - // Bytes 4800 - 483f - 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, - 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, - 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, - 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, - // Bytes 4840 - 487f - 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, - 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, - 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, - 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, - 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, - // Bytes 4880 - 48bf - 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - // Bytes 48c0 - 48ff - 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - // Bytes 4900 - 493f - 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - // Bytes 4940 - 497f - 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - // Bytes 4980 - 49bf - 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, - 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, - 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, - // Bytes 49c0 - 49ff - 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, - // Bytes 4a00 - 4a3f - 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, - // Bytes 4a40 - 4a7f - 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, - 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, - 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, - 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, - // Bytes 4a80 - 4abf - 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, - 0x01, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11. -type nfcTrie struct{} - -func newNfcTrie(i int) *nfcTrie { - return &nfcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 46: - return uint16(nfcValues[n<<6+uint32(b)]) - default: - n -= 46 - return uint16(nfcSparse.lookup(n, b)) - } -} - -// nfcValues: 48 blocks, 3072 entries, 6144 bytes -// The third block is the zero block. -var nfcValues = [3072]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, - // Block 0x5, offset 0x140 - 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x8100, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x8100, 0x285: 0x35a1, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, - 0x2c6: 0xa000, 0x2c7: 0x3709, - 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, - 0x2de: 0xa000, 0x2e3: 0xa000, - 0x2e7: 0xa000, - 0x2eb: 0xa000, 0x2ed: 0xa000, - 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, - 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x3733, 0x302: 0x37b7, - 0x310: 0x370f, 0x311: 0x3793, - 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, - 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, - 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, - 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, - 0x338: 0x3787, 0x339: 0x380b, - // Block 0xd, offset 0x340 - 0x351: 0x812d, - 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, - 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, - 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, - 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, - 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, - 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, - 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, - 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, - // Block 0xe, offset 0x380 - 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, - 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, - 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x812d, - 0x3b0: 0x811e, - // Block 0xf, offset 0x3c0 - 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, - 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, - 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, - 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, - 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, - 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, - 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, - 0x412: 0x2d4e, - 0x434: 0x8102, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d56, - 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, - // Block 0x11, offset 0x440 - 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, - 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, - 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, - 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, - 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, - 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, - 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, - 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, - 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, - 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, - 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, - // Block 0x12, offset 0x480 - 0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2, - 0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0, - 0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df, - 0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85, - 0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93, - 0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c, - 0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370, - 0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a, - 0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de, - 0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7, - 0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a, - 0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e, - 0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9, - 0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465, - 0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26, - 0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791, - 0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b, - 0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4, - 0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f, - 0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49, - 0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519, - // Block 0x14, offset 0x500 - 0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532, - 0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541, - 0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582, - 0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6, - 0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1, - 0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f, - 0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15, - 0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23, - 0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a, - 0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c, - 0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69, - // Block 0x15, offset 0x540 - 0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70, - 0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1, - 0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf, - 0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6, - 0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5, - 0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11, - 0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73, - 0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a, - 0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578, - 0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a, - // Block 0x16, offset 0x580 - 0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e, - 0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6, - 0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c, - 0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0, - 0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00, - 0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966, - 0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8, - 0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6, - 0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38, - 0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30, - 0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60, - 0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58, - 0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a, - 0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8, - 0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70, - 0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996, - 0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2, - 0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916, - 0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a, - 0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c, - 0x5fc: 0x4870, 0x5fd: 0x4342, - // Block 0x18, offset 0x600 - 0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac, - 0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee, - 0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0, - 0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2, - 0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134, - 0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a, - 0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88, - 0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a, - 0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98, - 0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee, - 0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, - // Block 0x19, offset 0x640 - 0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0, - 0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa, - 0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af, - 0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10, - 0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4, - 0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec, - 0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b, - 0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081, - 0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8, - 0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318, - 0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100, - // Block 0x1a, offset 0x680 - 0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000, - 0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b, - 0x68d: 0xa000, - 0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29, - 0x6a4: 0xa000, 0x6a5: 0xa000, - 0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a, - 0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45, - 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000, - 0x6bc: 0xa000, 0x6bd: 0xa000, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d, - 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b, - 0x6d1: 0xa000, - 0x6d2: 0xa000, - 0x6e2: 0xa000, - 0x6e8: 0xa000, 0x6e9: 0xa000, - 0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5, - 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, - // Block 0x1c, offset 0x700 - 0x706: 0xa000, 0x70b: 0xa000, - 0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000, - 0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000, - 0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000, - 0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60, - 0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78, - 0x72f: 0xa000, - 0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000, - 0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000, - 0x73c: 0x3fc0, 0x73d: 0x3fc8, - // Block 0x1d, offset 0x740 - 0x754: 0x3f00, - 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, - 0x75e: 0x3fd0, - 0x766: 0xa000, - 0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000, - 0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000, - 0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000, - 0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000, - // Block 0x1e, offset 0x780 - 0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040, - 0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050, - 0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060, - 0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080, - 0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0, - 0x7af: 0xa000, - 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8, - 0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0, - 0x7bd: 0xa000, 0x7be: 0x40c8, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, - 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, - 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, - 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, - 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, - 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, - 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, - 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, - 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, - 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, - 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, - // Block 0x20, offset 0x800 - 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, - 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, - 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, - 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, - 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, - 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, - 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, - 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, - 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, - 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, - 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, - // Block 0x21, offset 0x840 - 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, - 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, - 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, - 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, - 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, - 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, - 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, - 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, - 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, - 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, - 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, - // Block 0x22, offset 0x880 - 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, - 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, - 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, - 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, - 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, - 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, - 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, - 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, - 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, - 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, - 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, - 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, - 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, - 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, - 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, - 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, - 0x8e5: 0x1407, 0x8e6: 0x1433, - 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, - 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, - 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, - 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, - // Block 0x24, offset 0x900 - 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, - 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, - 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, - 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, - 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, - 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, - 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, - 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, - 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, - 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, - 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, - // Block 0x25, offset 0x940 - 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, - 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, - 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, - 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, - 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, - 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, - 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, - 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, - 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, - 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, - 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, - // Block 0x26, offset 0x980 - 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, - 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, - 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, - 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, - 0x998: 0x1617, 0x999: 0x1627, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, - 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, - 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, - 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, - 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, - 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, - 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, - 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, - 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, - 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, - 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, - // Block 0x28, offset 0xa00 - 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, - 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, - 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, - 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, - 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, - 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, - 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, - 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, - 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, - 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, - 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, - // Block 0x29, offset 0xa40 - 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, - 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, - 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, - 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, - 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, - 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, - 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, - 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, - 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, - 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, - 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, - 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, - 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, - 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, - 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, - 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, - 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, - 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, - 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, - 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, - 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, - // Block 0x2b, offset 0xac0 - 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, - 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, - 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, - 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, - 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, - 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, - 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, - 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, - 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, - 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, - 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, - // Block 0x2c, offset 0xb00 - 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, - 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, - 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, - 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, - 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, - 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, - 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, - 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, - 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, - 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, - 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, - // Block 0x2d, offset 0xb40 - 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, - 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, - 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, - 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, - 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, - 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, - 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, - 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, - 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, - 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, - 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, - // Block 0x2e, offset 0xb80 - 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, - 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, - 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, - 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, - 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, - 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, - 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, - 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, - 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, - 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, - 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, - 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, - 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, - 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, - 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, -} - -// nfcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, - 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, - 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, - 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, - 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, - 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, - // Block 0x5, offset 0x140 - 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, - 0x14d: 0x5c, - 0x15c: 0x5d, 0x15f: 0x5e, - 0x162: 0x5f, 0x164: 0x60, - 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, - 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, - 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, - // Block 0x6, offset 0x180 - 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, - 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, - 0x1ab: 0x71, - 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, - 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, - // Block 0x8, offset 0x200 - 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, - 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, - 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, - 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, - 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, - // Block 0x9, offset 0x240 - 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, - 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, - 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, - 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, - 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, - 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, - 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, - 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, - // Block 0xa, offset 0x280 - 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, - 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, - 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, - 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, - 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, - 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, - 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, - 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, - 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, - 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, - 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, - // Block 0xc, offset 0x300 - 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, - 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, - 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, - 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, - // Block 0xd, offset 0x340 - 0x347: 0x9c, - 0x34b: 0x9d, 0x34d: 0x9e, - 0x368: 0x9f, 0x36b: 0xa0, - 0x374: 0xa1, - 0x37d: 0xa2, - // Block 0xe, offset 0x380 - 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, - 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, - 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, - 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, - 0x3a0: 0xb2, - 0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5, - 0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xb8, 0x3ec: 0xb9, - // Block 0x10, offset 0x400 - 0x432: 0xba, - // Block 0x11, offset 0x440 - 0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd, - 0x449: 0xbe, - // Block 0x12, offset 0x480 - 0x480: 0xbf, - 0x4a3: 0xc0, 0x4a5: 0xc1, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xc2, - // Block 0x14, offset 0x500 - 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, - 0x528: 0x2d, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfcSparseOffset: 149 entries, 298 bytes -var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa} - -// nfcSparseValues: 684 entries, 2736 bytes -var nfcSparseValues = [684]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0000, lo: 0x04}, - {value: 0xa100, lo: 0xa8, hi: 0xa8}, - {value: 0x8100, lo: 0xaf, hi: 0xaf}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb8, hi: 0xb8}, - // Block 0x1, offset 0x5 - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x9 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - // Block 0x3, offset 0xb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x98, hi: 0x9d}, - // Block 0x4, offset 0xd - {value: 0x0006, lo: 0x0a}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x85, hi: 0x85}, - {value: 0xa000, lo: 0x89, hi: 0x89}, - {value: 0x4840, lo: 0x8a, hi: 0x8a}, - {value: 0x485e, lo: 0x8b, hi: 0x8b}, - {value: 0x36c7, lo: 0x8c, hi: 0x8c}, - {value: 0x36df, lo: 0x8d, hi: 0x8d}, - {value: 0x4876, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x36fd, lo: 0x93, hi: 0x94}, - // Block 0x5, offset 0x18 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x6, offset 0x28 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x7, offset 0x2a - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x8, offset 0x2f - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0xa, offset 0x49 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xb, offset 0x56 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xc, offset 0x5e - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0xd, offset 0x63 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xe, offset 0x68 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xf, offset 0x6a - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x72 - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x79 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x7c - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x84 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0x88 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0x8c - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0x8e - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0x90 - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0x99 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0x9d - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xa4 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xa9 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xac - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xb9 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xc0 - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xc8 - {value: 0x0000, lo: 0x02}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xcb - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xcd - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x23, offset 0xcf - {value: 0x0000, lo: 0x01}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - // Block 0x24, offset 0xd1 - {value: 0x0000, lo: 0x04}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x25, offset 0xd6 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0xe7 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0xf3 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0xf5 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x29, offset 0xfb - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0xfd - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0xff - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x101 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x103 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x105 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x107 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x10a - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x10d - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x10f - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x112 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x115 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x119 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x36, offset 0x11e - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x37, offset 0x127 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x38, offset 0x129 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x39, offset 0x12c - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3a, offset 0x12e - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3b, offset 0x139 - {value: 0x0004, lo: 0x03}, - {value: 0x0433, lo: 0x80, hi: 0x81}, - {value: 0x8100, lo: 0x97, hi: 0x97}, - {value: 0x8100, lo: 0xbe, hi: 0xbe}, - // Block 0x3c, offset 0x13d - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x3d, offset 0x14b - {value: 0x427b, lo: 0x02}, - {value: 0x01b8, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x3e, offset 0x14e - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x3f, offset 0x154 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x40, offset 0x15a - {value: 0x6408, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x41, offset 0x165 - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x42, offset 0x169 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x43, offset 0x16b - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x44, offset 0x16d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x45, offset 0x16f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x46, offset 0x171 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x47, offset 0x173 - {value: 0x0000, lo: 0x05}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xaf}, - // Block 0x48, offset 0x179 - {value: 0x0000, lo: 0x03}, - {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, - {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, - {value: 0x4a9f, lo: 0xba, hi: 0xbf}, - // Block 0x49, offset 0x17d - {value: 0x0000, lo: 0x01}, - {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, - // Block 0x4a, offset 0x17f - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4b, offset 0x181 - {value: 0x0000, lo: 0x07}, - {value: 0x8100, lo: 0x84, hi: 0x84}, - {value: 0x8100, lo: 0x87, hi: 0x87}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - {value: 0x8100, lo: 0x9e, hi: 0x9e}, - {value: 0x8100, lo: 0xa1, hi: 0xa1}, - {value: 0x8100, lo: 0xb2, hi: 0xb2}, - {value: 0x8100, lo: 0xbb, hi: 0xbb}, - // Block 0x4c, offset 0x189 - {value: 0x0000, lo: 0x03}, - {value: 0x8100, lo: 0x80, hi: 0x80}, - {value: 0x8100, lo: 0x8b, hi: 0x8b}, - {value: 0x8100, lo: 0x8e, hi: 0x8e}, - // Block 0x4d, offset 0x18d - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x4e, offset 0x190 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x4f, offset 0x192 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x50, offset 0x194 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x51, offset 0x196 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x52, offset 0x199 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x53, offset 0x19b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x54, offset 0x19d - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x55, offset 0x19f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x56, offset 0x1a1 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x57, offset 0x1a7 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x58, offset 0x1aa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x59, offset 0x1ac - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x5a, offset 0x1b3 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x5b, offset 0x1b9 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x5c, offset 0x1bf - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x5d, offset 0x1c7 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x5e, offset 0x1cd - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x5f, offset 0x1d3 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x60, offset 0x1d9 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x61, offset 0x1dd - {value: 0x0006, lo: 0x0d}, - {value: 0x4390, lo: 0x9d, hi: 0x9d}, - {value: 0x8115, lo: 0x9e, hi: 0x9e}, - {value: 0x4402, lo: 0x9f, hi: 0x9f}, - {value: 0x43f0, lo: 0xaa, hi: 0xab}, - {value: 0x44f4, lo: 0xac, hi: 0xac}, - {value: 0x44fc, lo: 0xad, hi: 0xad}, - {value: 0x4348, lo: 0xae, hi: 0xb1}, - {value: 0x4366, lo: 0xb2, hi: 0xb4}, - {value: 0x437e, lo: 0xb5, hi: 0xb6}, - {value: 0x438a, lo: 0xb8, hi: 0xb8}, - {value: 0x4396, lo: 0xb9, hi: 0xbb}, - {value: 0x43ae, lo: 0xbc, hi: 0xbc}, - {value: 0x43b4, lo: 0xbe, hi: 0xbe}, - // Block 0x62, offset 0x1eb - {value: 0x0006, lo: 0x08}, - {value: 0x43ba, lo: 0x80, hi: 0x81}, - {value: 0x43c6, lo: 0x83, hi: 0x84}, - {value: 0x43d8, lo: 0x86, hi: 0x89}, - {value: 0x43fc, lo: 0x8a, hi: 0x8a}, - {value: 0x4378, lo: 0x8b, hi: 0x8b}, - {value: 0x4360, lo: 0x8c, hi: 0x8c}, - {value: 0x43a8, lo: 0x8d, hi: 0x8d}, - {value: 0x43d2, lo: 0x8e, hi: 0x8e}, - // Block 0x63, offset 0x1f4 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x64, offset 0x1f7 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x65, offset 0x1fa - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x66, offset 0x1fc - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x67, offset 0x1ff - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x68, offset 0x201 - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xa0, hi: 0xa6}, - {value: 0x812d, lo: 0xa7, hi: 0xad}, - {value: 0x8132, lo: 0xae, hi: 0xaf}, - // Block 0x69, offset 0x205 - {value: 0x0000, lo: 0x04}, - {value: 0x8100, lo: 0x89, hi: 0x8c}, - {value: 0x8100, lo: 0xb0, hi: 0xb2}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb6, hi: 0xbf}, - // Block 0x6a, offset 0x20a - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6b, offset 0x20c - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6c, offset 0x20e - {value: 0x0000, lo: 0x04}, - {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, - {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, - {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, - {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, - // Block 0x6d, offset 0x213 - {value: 0x0000, lo: 0x05}, - {value: 0x4a9f, lo: 0x82, hi: 0x87}, - {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, - {value: 0x4a9f, lo: 0x92, hi: 0x97}, - {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x6e, offset 0x219 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6f, offset 0x21b - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x70, offset 0x21d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x71, offset 0x21f - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x225 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x73, offset 0x228 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa4, hi: 0xa7}, - // Block 0x74, offset 0x22a - {value: 0x0000, lo: 0x05}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x8132, lo: 0x88, hi: 0x8a}, - {value: 0x812d, lo: 0x8b, hi: 0x8b}, - {value: 0x8132, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x8d, hi: 0x90}, - // Block 0x75, offset 0x230 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x76, offset 0x233 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x77, offset 0x23b - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x78, offset 0x242 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x79, offset 0x245 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x7a, offset 0x248 - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x7b, offset 0x24a - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x7c, offset 0x24d - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x7d, offset 0x255 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - {value: 0x8132, lo: 0x9e, hi: 0x9e}, - // Block 0x7e, offset 0x259 - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7f, offset 0x260 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x80, offset 0x263 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x81, offset 0x269 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x82, offset 0x26b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x83, offset 0x26e - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x84, offset 0x270 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb9, hi: 0xb9}, - {value: 0x8102, lo: 0xba, hi: 0xba}, - // Block 0x85, offset 0x273 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x86, offset 0x275 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x87, offset 0x277 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x88, offset 0x279 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x89, offset 0x27c - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x97, hi: 0x97}, - // Block 0x8a, offset 0x27e - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x8b, offset 0x280 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x8c, offset 0x282 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x8d, offset 0x284 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x8e, offset 0x291 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x8f, offset 0x29b - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x90, offset 0x29d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x91, offset 0x29f - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x92, offset 0x2a5 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x93, offset 0x2a7 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x94, offset 0x2aa - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x93, hi: 0x93}, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27. -type nfkcTrie struct{} - -func newNfkcTrie(i int) *nfkcTrie { - return &nfkcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 92: - return uint16(nfkcValues[n<<6+uint32(b)]) - default: - n -= 92 - return uint16(nfkcSparse.lookup(n, b)) - } -} - -// nfkcValues: 94 blocks, 6016 entries, 12032 bytes -// The third block is the zero block. -var nfkcValues = [6016]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, - // Block 0x5, offset 0x140 - 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2dee, 0x185: 0x2df4, - 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, - 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x42a5, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x425a, 0x285: 0x447b, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, - 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, - 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, - 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, - 0x2f9: 0x01a6, - // Block 0xc, offset 0x300 - 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, - 0x306: 0xa000, 0x307: 0x3709, - 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, - 0x31e: 0xa000, 0x323: 0xa000, - 0x327: 0xa000, - 0x32b: 0xa000, 0x32d: 0xa000, - 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, - 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x3733, 0x342: 0x37b7, - 0x350: 0x370f, 0x351: 0x3793, - 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, - 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, - 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, - 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, - 0x378: 0x3787, 0x379: 0x380b, - // Block 0xe, offset 0x380 - 0x387: 0x1d61, - 0x391: 0x812d, - 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, - 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, - 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, - 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, - 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, - 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, - // Block 0xf, offset 0x3c0 - 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, - 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, - 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x812d, - 0x3f0: 0x811e, 0x3f5: 0x1d84, - 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, - // Block 0x10, offset 0x400 - 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, - 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, - 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, - 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, - 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, - 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, - 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, - 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, - // Block 0x11, offset 0x440 - 0x445: 0xa000, - 0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000, - 0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000, - 0x452: 0x2d4e, - 0x474: 0x8102, 0x475: 0x9900, - 0x47a: 0xa000, 0x47b: 0x2d56, - 0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000, - // Block 0x12, offset 0x480 - 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, - 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, - 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, - 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, - 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, - 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, - 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, - 0x4aa: 0x01fd, - 0x4b8: 0x020c, - // Block 0x13, offset 0x4c0 - 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, - 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, - 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, - 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, - 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, - 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, - 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, - // Block 0x14, offset 0x500 - 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, - 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, - 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, - 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, - 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, - 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, - 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, - 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, - 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, - 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, - 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, - // Block 0x15, offset 0x540 - 0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2, - 0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0, - 0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df, - 0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85, - 0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93, - 0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c, - 0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370, - 0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a, - 0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de, - 0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7, - 0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc, - // Block 0x16, offset 0x580 - 0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a, - 0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e, - 0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9, - 0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465, - 0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26, - 0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791, - 0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b, - 0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4, - 0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f, - 0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49, - 0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532, - 0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541, - 0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582, - 0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6, - 0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7, - 0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f, - 0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15, - 0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23, - 0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a, - 0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c, - 0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69, - // Block 0x18, offset 0x600 - 0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70, - 0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1, - 0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf, - 0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6, - 0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5, - 0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11, - 0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73, - 0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a, - 0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578, - 0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a, - // Block 0x19, offset 0x640 - 0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e, - 0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6, - 0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c, - 0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0, - 0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00, - 0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966, - 0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8, - 0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6, - 0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38, - 0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30, - 0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40, - // Block 0x1a, offset 0x680 - 0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60, - 0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58, - 0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a, - 0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8, - 0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70, - 0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996, - 0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2, - 0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916, - 0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a, - 0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c, - 0x6bc: 0x4870, 0x6bd: 0x4342, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac, - 0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee, - 0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0, - 0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2, - 0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134, - 0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a, - 0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88, - 0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a, - 0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98, - 0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee, - 0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287, - // Block 0x1c, offset 0x700 - 0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0, - 0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa, - 0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af, - 0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10, - 0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e, - 0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec, - 0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b, - 0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081, - 0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8, - 0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318, - 0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c, - // Block 0x1d, offset 0x740 - 0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8, - 0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051, - 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, - 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d, - 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, - 0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8, - 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, - 0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, - 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, - 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98, - 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, - // Block 0x1e, offset 0x780 - 0x780: 0x0463, 0x785: 0x0049, - 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, - 0x790: 0x222e, 0x791: 0x223a, - 0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8, - 0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0, - 0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963, - 0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071, - 0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, - 0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62, - 0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50, - 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, - // Block 0x1f, offset 0x7c0 - 0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000, - 0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b, - 0x7cd: 0xa000, - 0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29, - 0x7e4: 0xa000, 0x7e5: 0xa000, - 0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a, - 0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45, - 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000, - 0x7fc: 0xa000, 0x7fd: 0xa000, - // Block 0x20, offset 0x800 - 0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d, - 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b, - 0x811: 0xa000, - 0x812: 0xa000, - 0x822: 0xa000, - 0x828: 0xa000, 0x829: 0xa000, - 0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5, - 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, - // Block 0x21, offset 0x840 - 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, - 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, - 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, - 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c, - 0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84, - 0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a, - // Block 0x22, offset 0x880 - 0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8, - 0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, - 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60, - 0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78, - 0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8, - 0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10, - 0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28, - 0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40, - 0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58, - 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, - 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, - 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, - 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, - 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, - 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, - 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, - 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, - 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, - 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, - 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, - 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, - // Block 0x24, offset 0x900 - 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, - 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, - 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, - 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, - 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, - 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, - 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, - 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, - 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, - 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, - 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, - // Block 0x25, offset 0x940 - 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, - 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, - 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, - 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, - 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, - 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, - 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, - 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, - 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, - 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, - 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, - // Block 0x26, offset 0x980 - 0x986: 0xa000, 0x98b: 0xa000, - 0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000, - 0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000, - 0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000, - 0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60, - 0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78, - 0x9af: 0xa000, - 0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000, - 0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000, - 0x9bc: 0x3fc0, 0x9bd: 0x3fc8, - // Block 0x27, offset 0x9c0 - 0x9d4: 0x3f00, - 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000, - 0x9de: 0x3fd0, 0x9df: 0x26b4, - 0x9e6: 0xa000, - 0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000, - 0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000, - 0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000, - 0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000, - // Block 0x28, offset 0xa00 - 0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040, - 0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050, - 0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060, - 0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080, - 0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0, - 0xa2f: 0xa000, - 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8, - 0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0, - 0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9, - // Block 0x29, offset 0xa40 - 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, - 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, - 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9, - 0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed, - 0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11, - 0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35, - 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, - 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, - 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, - 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, - 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, - // Block 0x2a, offset 0xa80 - 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, - 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, - 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, - 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, - 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, - 0xa9e: 0x098f, 0xa9f: 0x072f, - // Block 0x2b, offset 0xac0 - 0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072, - 0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096, - 0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741, - 0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780, - 0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac, - 0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108, - 0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0, - 0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e, - 0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144, - 0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114, - 0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6, - // Block 0x2c, offset 0xb00 - 0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03, - 0xb06: 0x0ca7, 0xb07: 0x10c7, - 0xb10: 0x1bc4, 0xb11: 0x18a9, - 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, - 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, - 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, - 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, - 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20, - 0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50, - 0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88, - 0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58, - // Block 0x2d, offset 0xb40 - 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, - 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, - 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, - 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, - 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, - 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, - 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, - 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, - 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, - 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, - 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, - // Block 0x2e, offset 0xb80 - 0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11, - 0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0, - 0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3, - 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, - 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, - 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, - 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, - 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, - 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, - 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, - 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a, - 0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2, - 0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6, - 0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c, - 0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6, - 0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da, - 0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8, - 0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51, - 0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920, - 0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06, - 0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de, - // Block 0x30, offset 0xc00 - 0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c, - 0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90, - 0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6, - 0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984, - 0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07, - 0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4, - 0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2, - 0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a, - 0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47, - 0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701, - 0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0, - // Block 0x31, offset 0xc40 - 0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969, - 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35, - 0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c, - 0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9, - 0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0, - 0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40, - 0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996, - 0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad, - 0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38, - 0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b, - 0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984, - // Block 0x32, offset 0xc80 - 0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd, - 0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e, - 0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e, - 0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990, - 0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4, - 0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee, - 0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186, - 0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0, - 0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258, - 0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e, - 0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, - 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, - 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, - 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, - 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, - 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, - 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, - 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, - 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, - 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, - 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, - // Block 0x34, offset 0xd00 - 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, - 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, - 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, - 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, - 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, - 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, - 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, - 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, - 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, - 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, - 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, - // Block 0x35, offset 0xd40 - 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, - 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, - 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, - 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, - 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, - 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, - 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, - 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, - 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, - 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, - 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, - // Block 0x36, offset 0xd80 - 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, - 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, - 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, - 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, - 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, - 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, - 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, - 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, - 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, - 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, - 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, - 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, - 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, - 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, - 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, - 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, - 0xde5: 0x1407, 0xde6: 0x1433, - 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, - 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, - 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, - 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, - // Block 0x38, offset 0xe00 - 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, - 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, - 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, - 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, - 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, - 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, - 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, - 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, - 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, - 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, - 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, - // Block 0x39, offset 0xe40 - 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, - 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, - 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, - 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, - 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, - 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, - 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, - 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, - 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, - 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, - 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, - // Block 0x3a, offset 0xe80 - 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, - 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, - 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, - 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, - 0xe98: 0x1617, 0xe99: 0x1627, - // Block 0x3b, offset 0xec0 - 0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f, - 0xec6: 0x1a5f, - 0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70, - 0xedd: 0x4390, - 0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, - 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, - 0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e, - 0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e, - 0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2, - 0xefc: 0x43ae, 0xefe: 0x43b4, - // Block 0x3c, offset 0xf00 - 0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc, - 0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378, - 0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299, - 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, - 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, - 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, - 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, - 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, - 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, - 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, - 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, - // Block 0x3d, offset 0xf40 - 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, - 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, - 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, - 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, - 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, - 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, - 0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, - 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, - 0xf70: 0x4468, 0xf71: 0x4468, - // Block 0x3e, offset 0xf80 - 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, - 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f, - 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, - 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, - 0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9, - 0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c, - 0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0, - 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89, - 0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb, - 0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded, - 0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29, - 0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b, - 0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9, - 0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00, - 0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32, - 0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50, - 0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e, - 0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf, - 0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd, - 0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff, - 0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022, - 0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c, - 0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6, - 0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7, - 0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6, - 0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8, - 0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10, - 0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55, - // Block 0x41, offset 0x1040 - 0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96, - 0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1, - 0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027, - 0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1, - 0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e, - 0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5, - 0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29, - 0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60, - 0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9, - 0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05, - 0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d, - // Block 0x42, offset 0x1080 - 0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64, - 0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91, - 0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe, - 0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff, - 0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031, - 0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4, - 0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92, - 0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0, - 0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1, - 0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74, - 0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba, - 0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88, - 0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1, - 0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74, - 0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f, - 0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd, - 0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d, - 0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88, - 0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b, - 0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb, - 0x10fc: 0x4408, 0x10fd: 0x4408, - // Block 0x44, offset 0x1100 - 0x1110: 0x2311, 0x1111: 0x2326, - 0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357, - 0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4, - 0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5, - 0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc, - 0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430, - 0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c, - 0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f, - 0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499, - // Block 0x45, offset 0x1140 - 0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df, - 0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e, - 0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c, - 0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548, - 0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c, - 0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365, - 0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406, - 0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e, - 0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca, - 0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7, - 0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f, - // Block 0x46, offset 0x1180 - 0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b, - 0x1186: 0x23c0, 0x1187: 0x2556, - 0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da, - 0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc, - 0x11bc: 0x27d1, - // Block 0x47, offset 0x11c0 - 0x11d0: 0x0019, 0x11d1: 0x0483, - 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, - 0x11d8: 0x04c3, 0x11d9: 0x1b5c, - 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, - 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, - 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, - 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, - 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, - 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, - // Block 0x48, offset 0x1200 - 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, - 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269, - 0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, - 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, - 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, - 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, - 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, - 0x122a: 0x000b, 0x122b: 0x0041, - 0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4, - 0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e, - 0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a, - // Block 0x49, offset 0x1240 - 0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456, - 0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462, - 0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, - 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, - 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, - 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, - 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, - 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, - 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, - 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, - 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, - // Block 0x4a, offset 0x1280 - 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, - 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, - 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, - 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, - 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, - 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, - 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, - 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, - 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00, - 0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82, - 0x12bc: 0x1f82, - // Block 0x4b, offset 0x12c0 - 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, - 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, - 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, - 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, - 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, - 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, - 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, - 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, - 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, - 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, - 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, - // Block 0x4c, offset 0x1300 - 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, - 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, - 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, - 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, - 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, - 0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b, - 0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, - 0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b, - 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, - 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, - 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, - // Block 0x4d, offset 0x1340 - 0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf, - 0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7, - 0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff, - 0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23, - 0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35, - 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264, - 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, - 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, - // Block 0x4e, offset 0x1380 - 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, - 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, - 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, - 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, - 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, - 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, - 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, - 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, - 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, - 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, - 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, - 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, - 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, - 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, - 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, - 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, - 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, - 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, - 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, - 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, - 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, - // Block 0x50, offset 0x1400 - 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, - 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, - 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, - 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, - 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, - 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, - 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, - 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, - 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, - 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, - // Block 0x51, offset 0x1440 - 0x1442: 0x0248, - 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, - 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, - 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, - 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, - 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, - 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, - 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, - 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, - 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, - 0x147c: 0x0293, 0x147e: 0x02cc, - // Block 0x52, offset 0x1480 - 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, - 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, - 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, - 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, - 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, - 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, - 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, - 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, - 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, - 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, - 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, - 0x14d0: 0x1a8c, 0x14d1: 0x1a90, - 0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8, - 0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0, - 0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8, - 0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0, - 0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1, - 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, - 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, - 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, - // Block 0x54, offset 0x1500 - 0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503, - 0x1510: 0x0c0f, 0x1511: 0x0a47, - 0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, - 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, - 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, - 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, - 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, - 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, - 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, - // Block 0x55, offset 0x1540 - 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, - 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, - 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, - 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, - 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, - 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, - 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, - 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, - 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, - 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, - 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, - // Block 0x56, offset 0x1580 - 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, - 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, - 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, - 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, - 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, - 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, - 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, - 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, - 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, - 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, - 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, - 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, - 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, - 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, - 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, - 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, - 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, - 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, - 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, - 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, - 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, - // Block 0x58, offset 0x1600 - 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, - 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, - 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, - 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, - 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, - 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, - 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, - 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, - 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, - 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, - 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, - // Block 0x59, offset 0x1640 - 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, - 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, - 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, - 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, - 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, - 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, - 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, - 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, - 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, - 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, - 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, - // Block 0x5a, offset 0x1680 - 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, - 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, - 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, - 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, - 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, - 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, - 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, - 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, - 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, - 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, - 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, - 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, - 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, - 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, - 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, - 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, - 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, - 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, - 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, - 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, - 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, - // Block 0x5c, offset 0x1700 - 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, - 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, - 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, - 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, - 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, - 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, - 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, - 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, - 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, - 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, - 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, - // Block 0x5d, offset 0x1740 - 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, - 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, - 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, - 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, - 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, -} - -// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfkcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, - 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, - 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, - 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, - 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, - 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, - // Block 0x5, offset 0x140 - 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, - 0x14d: 0x8a, - 0x15c: 0x8b, 0x15f: 0x8c, - 0x162: 0x8d, 0x164: 0x8e, - 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, - 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, - 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, - // Block 0x6, offset 0x180 - 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, - 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, - 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, - 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, - 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, - 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, - // Block 0x7, offset 0x1c0 - 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, - 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, - // Block 0x8, offset 0x200 - 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, - 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, - 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, - 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, - 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, - // Block 0x9, offset 0x240 - 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, - 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, - 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, - 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, - 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, - 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, - 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, - 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, - // Block 0xa, offset 0x280 - 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, - 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, - 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, - 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, - 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, - 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, - 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, - 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, - // Block 0xb, offset 0x2c0 - 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, - 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, - 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, - 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, - // Block 0xc, offset 0x300 - 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, - 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, - 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, - 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, - // Block 0xd, offset 0x340 - 0x347: 0xc6, - 0x34b: 0xc7, 0x34d: 0xc8, - 0x368: 0xc9, 0x36b: 0xca, - 0x374: 0xcb, - 0x37d: 0xcc, - // Block 0xe, offset 0x380 - 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, - 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, - 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, - 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, - 0x3a0: 0xdd, - 0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0, - 0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xe3, 0x3ec: 0xe4, - // Block 0x10, offset 0x400 - 0x432: 0xe5, - // Block 0x11, offset 0x440 - 0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8, - 0x449: 0xe9, - 0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1, - 0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d, - // Block 0x12, offset 0x480 - 0x480: 0xf8, - 0x4a3: 0xf9, 0x4a5: 0xfa, - 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc, - 0x4c8: 0x52, 0x4c9: 0xfd, - // Block 0x14, offset 0x500 - 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, - 0x528: 0x5b, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfkcSparseOffset: 162 entries, 324 bytes -var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d} - -// nfkcSparseValues: 871 entries, 3484 bytes -var nfkcSparseValues = [871]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x4278, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x4264, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x425a, lo: 0xb4, hi: 0xb4}, - {value: 0x01dc, lo: 0xb5, hi: 0xb5}, - {value: 0x4291, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x221c, lo: 0xbc, hi: 0xbc}, - {value: 0x2210, lo: 0xbd, hi: 0xbd}, - {value: 0x22b2, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x12 - {value: 0x0003, lo: 0x08}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x0091, lo: 0xb0, hi: 0xb0}, - {value: 0x0119, lo: 0xb1, hi: 0xb1}, - {value: 0x0095, lo: 0xb2, hi: 0xb2}, - {value: 0x00a5, lo: 0xb3, hi: 0xb3}, - {value: 0x0143, lo: 0xb4, hi: 0xb6}, - {value: 0x00af, lo: 0xb7, hi: 0xb7}, - {value: 0x00b3, lo: 0xb8, hi: 0xb8}, - // Block 0x3, offset 0x1b - {value: 0x000a, lo: 0x09}, - {value: 0x426e, lo: 0x98, hi: 0x98}, - {value: 0x4273, lo: 0x99, hi: 0x9a}, - {value: 0x4296, lo: 0x9b, hi: 0x9b}, - {value: 0x425f, lo: 0x9c, hi: 0x9c}, - {value: 0x4282, lo: 0x9d, hi: 0x9d}, - {value: 0x0113, lo: 0xa0, hi: 0xa0}, - {value: 0x0099, lo: 0xa1, hi: 0xa1}, - {value: 0x00a7, lo: 0xa2, hi: 0xa3}, - {value: 0x0167, lo: 0xa4, hi: 0xa4}, - // Block 0x4, offset 0x25 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x5, offset 0x35 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x6, offset 0x37 - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x7, offset 0x3c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0x9, offset 0x56 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xa, offset 0x63 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xb, offset 0x6b - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0xc, offset 0x70 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xd, offset 0x75 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xe, offset 0x77 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0xf, offset 0x7f - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x10, offset 0x86 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x11, offset 0x89 - {value: 0x0008, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x91 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x13, offset 0x95 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x14, offset 0x99 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x9b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x16, offset 0x9d - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x17, offset 0xa6 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x18, offset 0xaa - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x19, offset 0xb1 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1a, offset 0xb6 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1b, offset 0xb9 - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xc3 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1d, offset 0xc6 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1e, offset 0xcd - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x1f, offset 0xd5 - {value: 0x0000, lo: 0x03}, - {value: 0x2621, lo: 0xb3, hi: 0xb3}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x20, offset 0xd9 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x21, offset 0xdb - {value: 0x0000, lo: 0x02}, - {value: 0x2636, lo: 0xb3, hi: 0xb3}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x22, offset 0xde - {value: 0x0000, lo: 0x03}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - {value: 0x2628, lo: 0x9c, hi: 0x9c}, - {value: 0x262f, lo: 0x9d, hi: 0x9d}, - // Block 0x23, offset 0xe2 - {value: 0x0000, lo: 0x05}, - {value: 0x030b, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x24, offset 0xe8 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x45f4, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x45ff, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x25, offset 0xf9 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x26, offset 0x105 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x27, offset 0x107 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x28, offset 0x10d - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x29, offset 0x10f - {value: 0x0000, lo: 0x01}, - {value: 0x030f, lo: 0xbc, hi: 0xbc}, - // Block 0x2a, offset 0x111 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2b, offset 0x113 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2c, offset 0x115 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2d, offset 0x117 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2e, offset 0x119 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x2f, offset 0x11b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x30, offset 0x11e - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x31, offset 0x121 - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x32, offset 0x123 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x33, offset 0x126 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x34, offset 0x129 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x12d - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x36, offset 0x132 - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x37, offset 0x13b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x38, offset 0x13d - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x39, offset 0x140 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3a, offset 0x142 - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3b, offset 0x14d - {value: 0x0002, lo: 0x0a}, - {value: 0x0043, lo: 0xac, hi: 0xac}, - {value: 0x00d1, lo: 0xad, hi: 0xad}, - {value: 0x0045, lo: 0xae, hi: 0xae}, - {value: 0x0049, lo: 0xb0, hi: 0xb1}, - {value: 0x00e6, lo: 0xb2, hi: 0xb2}, - {value: 0x004f, lo: 0xb3, hi: 0xba}, - {value: 0x005f, lo: 0xbc, hi: 0xbc}, - {value: 0x00ef, lo: 0xbd, hi: 0xbd}, - {value: 0x0061, lo: 0xbe, hi: 0xbe}, - {value: 0x0065, lo: 0xbf, hi: 0xbf}, - // Block 0x3c, offset 0x158 - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043b, lo: 0x91, hi: 0x91}, - {value: 0x429b, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x1873, lo: 0xa5, hi: 0xa5}, - {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x2691, lo: 0xb3, hi: 0xb3}, - {value: 0x27fe, lo: 0xb4, hi: 0xb4}, - {value: 0x2698, lo: 0xb6, hi: 0xb6}, - {value: 0x2808, lo: 0xb7, hi: 0xb7}, - {value: 0x186d, lo: 0xbc, hi: 0xbc}, - {value: 0x4269, lo: 0xbe, hi: 0xbe}, - // Block 0x3d, offset 0x166 - {value: 0x0002, lo: 0x0d}, - {value: 0x1933, lo: 0x87, hi: 0x87}, - {value: 0x1930, lo: 0x88, hi: 0x88}, - {value: 0x1870, lo: 0x89, hi: 0x89}, - {value: 0x298e, lo: 0x97, hi: 0x97}, - {value: 0x0001, lo: 0x9f, hi: 0x9f}, - {value: 0x0021, lo: 0xb0, hi: 0xb0}, - {value: 0x0093, lo: 0xb1, hi: 0xb1}, - {value: 0x0029, lo: 0xb4, hi: 0xb9}, - {value: 0x0017, lo: 0xba, hi: 0xba}, - {value: 0x0467, lo: 0xbb, hi: 0xbb}, - {value: 0x003b, lo: 0xbc, hi: 0xbc}, - {value: 0x0011, lo: 0xbd, hi: 0xbe}, - {value: 0x009d, lo: 0xbf, hi: 0xbf}, - // Block 0x3e, offset 0x174 - {value: 0x0002, lo: 0x0f}, - {value: 0x0021, lo: 0x80, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8a}, - {value: 0x0467, lo: 0x8b, hi: 0x8b}, - {value: 0x003b, lo: 0x8c, hi: 0x8c}, - {value: 0x0011, lo: 0x8d, hi: 0x8e}, - {value: 0x0083, lo: 0x90, hi: 0x90}, - {value: 0x008b, lo: 0x91, hi: 0x91}, - {value: 0x009f, lo: 0x92, hi: 0x92}, - {value: 0x00b1, lo: 0x93, hi: 0x93}, - {value: 0x0104, lo: 0x94, hi: 0x94}, - {value: 0x0091, lo: 0x95, hi: 0x95}, - {value: 0x0097, lo: 0x96, hi: 0x99}, - {value: 0x00a1, lo: 0x9a, hi: 0x9a}, - {value: 0x00a7, lo: 0x9b, hi: 0x9c}, - {value: 0x1999, lo: 0xa8, hi: 0xa8}, - // Block 0x3f, offset 0x184 - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x40, offset 0x192 - {value: 0x0007, lo: 0x06}, - {value: 0x2180, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x41, offset 0x199 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x42, offset 0x19f - {value: 0x0173, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0x269f, lo: 0xac, hi: 0xad}, - {value: 0x26a6, lo: 0xaf, hi: 0xaf}, - {value: 0x281c, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x43, offset 0x1ae - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x44, offset 0x1b2 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x45, offset 0x1b4 - {value: 0x0002, lo: 0x03}, - {value: 0x0057, lo: 0x80, hi: 0x8f}, - {value: 0x0083, lo: 0x90, hi: 0xa9}, - {value: 0x0021, lo: 0xaa, hi: 0xaa}, - // Block 0x46, offset 0x1b8 - {value: 0x0000, lo: 0x01}, - {value: 0x299b, lo: 0x8c, hi: 0x8c}, - // Block 0x47, offset 0x1ba - {value: 0x0263, lo: 0x02}, - {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, - {value: 0x192d, lo: 0xb5, hi: 0xb6}, - // Block 0x48, offset 0x1bd - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x49, offset 0x1bf - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4a, offset 0x1c2 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x4b, offset 0x1c4 - {value: 0x0000, lo: 0x02}, - {value: 0x047f, lo: 0xaf, hi: 0xaf}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x4c, offset 0x1c7 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x4d, offset 0x1c9 - {value: 0x0000, lo: 0x01}, - {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, - // Block 0x4e, offset 0x1cb - {value: 0x0000, lo: 0x01}, - {value: 0x162f, lo: 0xb3, hi: 0xb3}, - // Block 0x4f, offset 0x1cd - {value: 0x0004, lo: 0x0b}, - {value: 0x1597, lo: 0x80, hi: 0x82}, - {value: 0x15af, lo: 0x83, hi: 0x83}, - {value: 0x15c7, lo: 0x84, hi: 0x85}, - {value: 0x15d7, lo: 0x86, hi: 0x89}, - {value: 0x15eb, lo: 0x8a, hi: 0x8c}, - {value: 0x15ff, lo: 0x8d, hi: 0x8d}, - {value: 0x1607, lo: 0x8e, hi: 0x8e}, - {value: 0x160f, lo: 0x8f, hi: 0x90}, - {value: 0x161b, lo: 0x91, hi: 0x93}, - {value: 0x162b, lo: 0x94, hi: 0x94}, - {value: 0x1633, lo: 0x95, hi: 0x95}, - // Block 0x50, offset 0x1d9 - {value: 0x0004, lo: 0x09}, - {value: 0x0001, lo: 0x80, hi: 0x80}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xae}, - {value: 0x812f, lo: 0xaf, hi: 0xaf}, - {value: 0x04b3, lo: 0xb6, hi: 0xb6}, - {value: 0x0887, lo: 0xb8, hi: 0xba}, - // Block 0x51, offset 0x1e3 - {value: 0x0006, lo: 0x09}, - {value: 0x0313, lo: 0xb1, hi: 0xb1}, - {value: 0x0317, lo: 0xb2, hi: 0xb2}, - {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, - {value: 0x031b, lo: 0xb4, hi: 0xb4}, - {value: 0x4a41, lo: 0xb5, hi: 0xb6}, - {value: 0x031f, lo: 0xb7, hi: 0xb7}, - {value: 0x0323, lo: 0xb8, hi: 0xb8}, - {value: 0x0327, lo: 0xb9, hi: 0xb9}, - {value: 0x4a4d, lo: 0xba, hi: 0xbf}, - // Block 0x52, offset 0x1ed - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x53, offset 0x1f0 - {value: 0x0000, lo: 0x03}, - {value: 0x020f, lo: 0x9c, hi: 0x9c}, - {value: 0x0212, lo: 0x9d, hi: 0x9d}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x54, offset 0x1f4 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x55, offset 0x1f6 - {value: 0x0000, lo: 0x01}, - {value: 0x163b, lo: 0xb0, hi: 0xb0}, - // Block 0x56, offset 0x1f8 - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x57, offset 0x1fa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x58, offset 0x1fc - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x59, offset 0x1ff - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x5a, offset 0x201 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x5b, offset 0x203 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x5c, offset 0x205 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x5d, offset 0x207 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x5e, offset 0x20d - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x5f, offset 0x210 - {value: 0x0008, lo: 0x03}, - {value: 0x1637, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x1643, lo: 0x9f, hi: 0x9f}, - // Block 0x60, offset 0x214 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x61, offset 0x216 - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x62, offset 0x21d - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x63, offset 0x223 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x64, offset 0x229 - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x65, offset 0x231 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x66, offset 0x237 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x67, offset 0x23d - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x68, offset 0x243 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x69, offset 0x247 - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6a, offset 0x249 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6b, offset 0x24b - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x6c, offset 0x24d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x6d, offset 0x24f - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x6e, offset 0x255 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x6f, offset 0x258 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa4, hi: 0xa7}, - // Block 0x70, offset 0x25a - {value: 0x0000, lo: 0x05}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x8132, lo: 0x88, hi: 0x8a}, - {value: 0x812d, lo: 0x8b, hi: 0x8b}, - {value: 0x8132, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x8d, hi: 0x90}, - // Block 0x71, offset 0x260 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x263 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x73, offset 0x26b - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x74, offset 0x272 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x75, offset 0x275 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x76, offset 0x278 - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x77, offset 0x27a - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbb, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x78, offset 0x27d - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x79, offset 0x285 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - {value: 0x8132, lo: 0x9e, hi: 0x9e}, - // Block 0x7a, offset 0x289 - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7b, offset 0x290 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7c, offset 0x293 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7d, offset 0x299 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x7e, offset 0x29b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7f, offset 0x29d - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x80, offset 0x2a0 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x81, offset 0x2a2 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb9, hi: 0xb9}, - {value: 0x8102, lo: 0xba, hi: 0xba}, - // Block 0x82, offset 0x2a5 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x83, offset 0x2a7 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x87, hi: 0x87}, - // Block 0x84, offset 0x2a9 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x99, hi: 0x99}, - // Block 0x85, offset 0x2ab - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0x82, hi: 0x82}, - {value: 0x8104, lo: 0x84, hi: 0x85}, - // Block 0x86, offset 0x2ae - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x97, hi: 0x97}, - // Block 0x87, offset 0x2b0 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x88, offset 0x2b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x89, offset 0x2b4 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x8a, offset 0x2b6 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x8b, offset 0x2c3 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x8c, offset 0x2cd - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x8d, offset 0x2cf - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x8e, offset 0x2d1 - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x8f, offset 0x2d5 - {value: 0x0002, lo: 0x04}, - {value: 0x005b, lo: 0x80, hi: 0x8d}, - {value: 0x0083, lo: 0x8e, hi: 0x94}, - {value: 0x0093, lo: 0x96, hi: 0xa7}, - {value: 0x0043, lo: 0xa8, hi: 0xbf}, - // Block 0x90, offset 0x2da - {value: 0x0002, lo: 0x0b}, - {value: 0x0073, lo: 0x80, hi: 0x81}, - {value: 0x0083, lo: 0x82, hi: 0x9b}, - {value: 0x0043, lo: 0x9c, hi: 0x9c}, - {value: 0x0047, lo: 0x9e, hi: 0x9f}, - {value: 0x004f, lo: 0xa2, hi: 0xa2}, - {value: 0x0055, lo: 0xa5, hi: 0xa6}, - {value: 0x005d, lo: 0xa9, hi: 0xac}, - {value: 0x0067, lo: 0xae, hi: 0xb5}, - {value: 0x0083, lo: 0xb6, hi: 0xb9}, - {value: 0x008d, lo: 0xbb, hi: 0xbb}, - {value: 0x0091, lo: 0xbd, hi: 0xbf}, - // Block 0x91, offset 0x2e6 - {value: 0x0002, lo: 0x04}, - {value: 0x0097, lo: 0x80, hi: 0x83}, - {value: 0x00a1, lo: 0x85, hi: 0x8f}, - {value: 0x0043, lo: 0x90, hi: 0xa9}, - {value: 0x0083, lo: 0xaa, hi: 0xbf}, - // Block 0x92, offset 0x2eb - {value: 0x0002, lo: 0x08}, - {value: 0x00af, lo: 0x80, hi: 0x83}, - {value: 0x0043, lo: 0x84, hi: 0x85}, - {value: 0x0049, lo: 0x87, hi: 0x8a}, - {value: 0x0055, lo: 0x8d, hi: 0x94}, - {value: 0x0067, lo: 0x96, hi: 0x9c}, - {value: 0x0083, lo: 0x9e, hi: 0xb7}, - {value: 0x0043, lo: 0xb8, hi: 0xb9}, - {value: 0x0049, lo: 0xbb, hi: 0xbe}, - // Block 0x93, offset 0x2f4 - {value: 0x0002, lo: 0x05}, - {value: 0x0053, lo: 0x80, hi: 0x84}, - {value: 0x005f, lo: 0x86, hi: 0x86}, - {value: 0x0067, lo: 0x8a, hi: 0x90}, - {value: 0x0083, lo: 0x92, hi: 0xab}, - {value: 0x0043, lo: 0xac, hi: 0xbf}, - // Block 0x94, offset 0x2fa - {value: 0x0002, lo: 0x04}, - {value: 0x006b, lo: 0x80, hi: 0x85}, - {value: 0x0083, lo: 0x86, hi: 0x9f}, - {value: 0x0043, lo: 0xa0, hi: 0xb9}, - {value: 0x0083, lo: 0xba, hi: 0xbf}, - // Block 0x95, offset 0x2ff - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x96, offset 0x303 - {value: 0x0002, lo: 0x04}, - {value: 0x00a7, lo: 0x80, hi: 0x87}, - {value: 0x0043, lo: 0x88, hi: 0xa1}, - {value: 0x0083, lo: 0xa2, hi: 0xbb}, - {value: 0x0043, lo: 0xbc, hi: 0xbf}, - // Block 0x97, offset 0x308 - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x98, offset 0x30c - {value: 0x0003, lo: 0x0f}, - {value: 0x01b8, lo: 0x80, hi: 0x80}, - {value: 0x045f, lo: 0x81, hi: 0x81}, - {value: 0x01bb, lo: 0x82, hi: 0x9a}, - {value: 0x045b, lo: 0x9b, hi: 0x9b}, - {value: 0x01c7, lo: 0x9c, hi: 0x9c}, - {value: 0x01d0, lo: 0x9d, hi: 0x9d}, - {value: 0x01d6, lo: 0x9e, hi: 0x9e}, - {value: 0x01fa, lo: 0x9f, hi: 0x9f}, - {value: 0x01eb, lo: 0xa0, hi: 0xa0}, - {value: 0x01e8, lo: 0xa1, hi: 0xa1}, - {value: 0x0173, lo: 0xa2, hi: 0xb2}, - {value: 0x0188, lo: 0xb3, hi: 0xb3}, - {value: 0x01a6, lo: 0xb4, hi: 0xba}, - {value: 0x045f, lo: 0xbb, hi: 0xbb}, - {value: 0x01bb, lo: 0xbc, hi: 0xbf}, - // Block 0x99, offset 0x31c - {value: 0x0003, lo: 0x0d}, - {value: 0x01c7, lo: 0x80, hi: 0x94}, - {value: 0x045b, lo: 0x95, hi: 0x95}, - {value: 0x01c7, lo: 0x96, hi: 0x96}, - {value: 0x01d0, lo: 0x97, hi: 0x97}, - {value: 0x01d6, lo: 0x98, hi: 0x98}, - {value: 0x01fa, lo: 0x99, hi: 0x99}, - {value: 0x01eb, lo: 0x9a, hi: 0x9a}, - {value: 0x01e8, lo: 0x9b, hi: 0x9b}, - {value: 0x0173, lo: 0x9c, hi: 0xac}, - {value: 0x0188, lo: 0xad, hi: 0xad}, - {value: 0x01a6, lo: 0xae, hi: 0xb4}, - {value: 0x045f, lo: 0xb5, hi: 0xb5}, - {value: 0x01bb, lo: 0xb6, hi: 0xbf}, - // Block 0x9a, offset 0x32a - {value: 0x0003, lo: 0x0d}, - {value: 0x01d9, lo: 0x80, hi: 0x8e}, - {value: 0x045b, lo: 0x8f, hi: 0x8f}, - {value: 0x01c7, lo: 0x90, hi: 0x90}, - {value: 0x01d0, lo: 0x91, hi: 0x91}, - {value: 0x01d6, lo: 0x92, hi: 0x92}, - {value: 0x01fa, lo: 0x93, hi: 0x93}, - {value: 0x01eb, lo: 0x94, hi: 0x94}, - {value: 0x01e8, lo: 0x95, hi: 0x95}, - {value: 0x0173, lo: 0x96, hi: 0xa6}, - {value: 0x0188, lo: 0xa7, hi: 0xa7}, - {value: 0x01a6, lo: 0xa8, hi: 0xae}, - {value: 0x045f, lo: 0xaf, hi: 0xaf}, - {value: 0x01bb, lo: 0xb0, hi: 0xbf}, - // Block 0x9b, offset 0x338 - {value: 0x0003, lo: 0x0d}, - {value: 0x01eb, lo: 0x80, hi: 0x88}, - {value: 0x045b, lo: 0x89, hi: 0x89}, - {value: 0x01c7, lo: 0x8a, hi: 0x8a}, - {value: 0x01d0, lo: 0x8b, hi: 0x8b}, - {value: 0x01d6, lo: 0x8c, hi: 0x8c}, - {value: 0x01fa, lo: 0x8d, hi: 0x8d}, - {value: 0x01eb, lo: 0x8e, hi: 0x8e}, - {value: 0x01e8, lo: 0x8f, hi: 0x8f}, - {value: 0x0173, lo: 0x90, hi: 0xa0}, - {value: 0x0188, lo: 0xa1, hi: 0xa1}, - {value: 0x01a6, lo: 0xa2, hi: 0xa8}, - {value: 0x045f, lo: 0xa9, hi: 0xa9}, - {value: 0x01bb, lo: 0xaa, hi: 0xbf}, - // Block 0x9c, offset 0x346 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x9d, offset 0x34c - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x9e, offset 0x34e - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x9f, offset 0x351 - {value: 0x0002, lo: 0x09}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x1951, lo: 0x8a, hi: 0x8a}, - {value: 0x1981, lo: 0x8b, hi: 0x8b}, - {value: 0x199c, lo: 0x8c, hi: 0x8c}, - {value: 0x19a2, lo: 0x8d, hi: 0x8d}, - {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, - {value: 0x19ae, lo: 0x8f, hi: 0x8f}, - {value: 0x197b, lo: 0xaa, hi: 0xaa}, - {value: 0x197e, lo: 0xab, hi: 0xab}, - // Block 0xa0, offset 0x35b - {value: 0x0000, lo: 0x01}, - {value: 0x193f, lo: 0x90, hi: 0x90}, - // Block 0xa1, offset 0x35d - {value: 0x0028, lo: 0x09}, - {value: 0x2862, lo: 0x80, hi: 0x80}, - {value: 0x2826, lo: 0x81, hi: 0x81}, - {value: 0x2830, lo: 0x82, hi: 0x82}, - {value: 0x2844, lo: 0x83, hi: 0x84}, - {value: 0x284e, lo: 0x85, hi: 0x86}, - {value: 0x283a, lo: 0x87, hi: 0x87}, - {value: 0x2858, lo: 0x88, hi: 0x88}, - {value: 0x0b6f, lo: 0x90, hi: 0x90}, - {value: 0x08e7, lo: 0x91, hi: 0x91}, -} - -// recompMap: 7520 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once - -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "" - // Total size of tables: 53KB (54514 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go index 942906929..a01274a8e 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go @@ -4,8 +4,6 @@ package norm -import "sync" - const ( // Version is the Unicode edition from which the tables are derived. Version = "9.0.0" @@ -6689,949 +6687,947 @@ var nfkcSparseValues = [875]valueRange{ } // recompMap: 7520 bytes (entries only) -var recompMap map[uint32]rune -var recompMapOnce sync.Once +var recompMap = map[uint32]rune{ + 0x00410300: 0x00C0, + 0x00410301: 0x00C1, + 0x00410302: 0x00C2, + 0x00410303: 0x00C3, + 0x00410308: 0x00C4, + 0x0041030A: 0x00C5, + 0x00430327: 0x00C7, + 0x00450300: 0x00C8, + 0x00450301: 0x00C9, + 0x00450302: 0x00CA, + 0x00450308: 0x00CB, + 0x00490300: 0x00CC, + 0x00490301: 0x00CD, + 0x00490302: 0x00CE, + 0x00490308: 0x00CF, + 0x004E0303: 0x00D1, + 0x004F0300: 0x00D2, + 0x004F0301: 0x00D3, + 0x004F0302: 0x00D4, + 0x004F0303: 0x00D5, + 0x004F0308: 0x00D6, + 0x00550300: 0x00D9, + 0x00550301: 0x00DA, + 0x00550302: 0x00DB, + 0x00550308: 0x00DC, + 0x00590301: 0x00DD, + 0x00610300: 0x00E0, + 0x00610301: 0x00E1, + 0x00610302: 0x00E2, + 0x00610303: 0x00E3, + 0x00610308: 0x00E4, + 0x0061030A: 0x00E5, + 0x00630327: 0x00E7, + 0x00650300: 0x00E8, + 0x00650301: 0x00E9, + 0x00650302: 0x00EA, + 0x00650308: 0x00EB, + 0x00690300: 0x00EC, + 0x00690301: 0x00ED, + 0x00690302: 0x00EE, + 0x00690308: 0x00EF, + 0x006E0303: 0x00F1, + 0x006F0300: 0x00F2, + 0x006F0301: 0x00F3, + 0x006F0302: 0x00F4, + 0x006F0303: 0x00F5, + 0x006F0308: 0x00F6, + 0x00750300: 0x00F9, + 0x00750301: 0x00FA, + 0x00750302: 0x00FB, + 0x00750308: 0x00FC, + 0x00790301: 0x00FD, + 0x00790308: 0x00FF, + 0x00410304: 0x0100, + 0x00610304: 0x0101, + 0x00410306: 0x0102, + 0x00610306: 0x0103, + 0x00410328: 0x0104, + 0x00610328: 0x0105, + 0x00430301: 0x0106, + 0x00630301: 0x0107, + 0x00430302: 0x0108, + 0x00630302: 0x0109, + 0x00430307: 0x010A, + 0x00630307: 0x010B, + 0x0043030C: 0x010C, + 0x0063030C: 0x010D, + 0x0044030C: 0x010E, + 0x0064030C: 0x010F, + 0x00450304: 0x0112, + 0x00650304: 0x0113, + 0x00450306: 0x0114, + 0x00650306: 0x0115, + 0x00450307: 0x0116, + 0x00650307: 0x0117, + 0x00450328: 0x0118, + 0x00650328: 0x0119, + 0x0045030C: 0x011A, + 0x0065030C: 0x011B, + 0x00470302: 0x011C, + 0x00670302: 0x011D, + 0x00470306: 0x011E, + 0x00670306: 0x011F, + 0x00470307: 0x0120, + 0x00670307: 0x0121, + 0x00470327: 0x0122, + 0x00670327: 0x0123, + 0x00480302: 0x0124, + 0x00680302: 0x0125, + 0x00490303: 0x0128, + 0x00690303: 0x0129, + 0x00490304: 0x012A, + 0x00690304: 0x012B, + 0x00490306: 0x012C, + 0x00690306: 0x012D, + 0x00490328: 0x012E, + 0x00690328: 0x012F, + 0x00490307: 0x0130, + 0x004A0302: 0x0134, + 0x006A0302: 0x0135, + 0x004B0327: 0x0136, + 0x006B0327: 0x0137, + 0x004C0301: 0x0139, + 0x006C0301: 0x013A, + 0x004C0327: 0x013B, + 0x006C0327: 0x013C, + 0x004C030C: 0x013D, + 0x006C030C: 0x013E, + 0x004E0301: 0x0143, + 0x006E0301: 0x0144, + 0x004E0327: 0x0145, + 0x006E0327: 0x0146, + 0x004E030C: 0x0147, + 0x006E030C: 0x0148, + 0x004F0304: 0x014C, + 0x006F0304: 0x014D, + 0x004F0306: 0x014E, + 0x006F0306: 0x014F, + 0x004F030B: 0x0150, + 0x006F030B: 0x0151, + 0x00520301: 0x0154, + 0x00720301: 0x0155, + 0x00520327: 0x0156, + 0x00720327: 0x0157, + 0x0052030C: 0x0158, + 0x0072030C: 0x0159, + 0x00530301: 0x015A, + 0x00730301: 0x015B, + 0x00530302: 0x015C, + 0x00730302: 0x015D, + 0x00530327: 0x015E, + 0x00730327: 0x015F, + 0x0053030C: 0x0160, + 0x0073030C: 0x0161, + 0x00540327: 0x0162, + 0x00740327: 0x0163, + 0x0054030C: 0x0164, + 0x0074030C: 0x0165, + 0x00550303: 0x0168, + 0x00750303: 0x0169, + 0x00550304: 0x016A, + 0x00750304: 0x016B, + 0x00550306: 0x016C, + 0x00750306: 0x016D, + 0x0055030A: 0x016E, + 0x0075030A: 0x016F, + 0x0055030B: 0x0170, + 0x0075030B: 0x0171, + 0x00550328: 0x0172, + 0x00750328: 0x0173, + 0x00570302: 0x0174, + 0x00770302: 0x0175, + 0x00590302: 0x0176, + 0x00790302: 0x0177, + 0x00590308: 0x0178, + 0x005A0301: 0x0179, + 0x007A0301: 0x017A, + 0x005A0307: 0x017B, + 0x007A0307: 0x017C, + 0x005A030C: 0x017D, + 0x007A030C: 0x017E, + 0x004F031B: 0x01A0, + 0x006F031B: 0x01A1, + 0x0055031B: 0x01AF, + 0x0075031B: 0x01B0, + 0x0041030C: 0x01CD, + 0x0061030C: 0x01CE, + 0x0049030C: 0x01CF, + 0x0069030C: 0x01D0, + 0x004F030C: 0x01D1, + 0x006F030C: 0x01D2, + 0x0055030C: 0x01D3, + 0x0075030C: 0x01D4, + 0x00DC0304: 0x01D5, + 0x00FC0304: 0x01D6, + 0x00DC0301: 0x01D7, + 0x00FC0301: 0x01D8, + 0x00DC030C: 0x01D9, + 0x00FC030C: 0x01DA, + 0x00DC0300: 0x01DB, + 0x00FC0300: 0x01DC, + 0x00C40304: 0x01DE, + 0x00E40304: 0x01DF, + 0x02260304: 0x01E0, + 0x02270304: 0x01E1, + 0x00C60304: 0x01E2, + 0x00E60304: 0x01E3, + 0x0047030C: 0x01E6, + 0x0067030C: 0x01E7, + 0x004B030C: 0x01E8, + 0x006B030C: 0x01E9, + 0x004F0328: 0x01EA, + 0x006F0328: 0x01EB, + 0x01EA0304: 0x01EC, + 0x01EB0304: 0x01ED, + 0x01B7030C: 0x01EE, + 0x0292030C: 0x01EF, + 0x006A030C: 0x01F0, + 0x00470301: 0x01F4, + 0x00670301: 0x01F5, + 0x004E0300: 0x01F8, + 0x006E0300: 0x01F9, + 0x00C50301: 0x01FA, + 0x00E50301: 0x01FB, + 0x00C60301: 0x01FC, + 0x00E60301: 0x01FD, + 0x00D80301: 0x01FE, + 0x00F80301: 0x01FF, + 0x0041030F: 0x0200, + 0x0061030F: 0x0201, + 0x00410311: 0x0202, + 0x00610311: 0x0203, + 0x0045030F: 0x0204, + 0x0065030F: 0x0205, + 0x00450311: 0x0206, + 0x00650311: 0x0207, + 0x0049030F: 0x0208, + 0x0069030F: 0x0209, + 0x00490311: 0x020A, + 0x00690311: 0x020B, + 0x004F030F: 0x020C, + 0x006F030F: 0x020D, + 0x004F0311: 0x020E, + 0x006F0311: 0x020F, + 0x0052030F: 0x0210, + 0x0072030F: 0x0211, + 0x00520311: 0x0212, + 0x00720311: 0x0213, + 0x0055030F: 0x0214, + 0x0075030F: 0x0215, + 0x00550311: 0x0216, + 0x00750311: 0x0217, + 0x00530326: 0x0218, + 0x00730326: 0x0219, + 0x00540326: 0x021A, + 0x00740326: 0x021B, + 0x0048030C: 0x021E, + 0x0068030C: 0x021F, + 0x00410307: 0x0226, + 0x00610307: 0x0227, + 0x00450327: 0x0228, + 0x00650327: 0x0229, + 0x00D60304: 0x022A, + 0x00F60304: 0x022B, + 0x00D50304: 0x022C, + 0x00F50304: 0x022D, + 0x004F0307: 0x022E, + 0x006F0307: 0x022F, + 0x022E0304: 0x0230, + 0x022F0304: 0x0231, + 0x00590304: 0x0232, + 0x00790304: 0x0233, + 0x00A80301: 0x0385, + 0x03910301: 0x0386, + 0x03950301: 0x0388, + 0x03970301: 0x0389, + 0x03990301: 0x038A, + 0x039F0301: 0x038C, + 0x03A50301: 0x038E, + 0x03A90301: 0x038F, + 0x03CA0301: 0x0390, + 0x03990308: 0x03AA, + 0x03A50308: 0x03AB, + 0x03B10301: 0x03AC, + 0x03B50301: 0x03AD, + 0x03B70301: 0x03AE, + 0x03B90301: 0x03AF, + 0x03CB0301: 0x03B0, + 0x03B90308: 0x03CA, + 0x03C50308: 0x03CB, + 0x03BF0301: 0x03CC, + 0x03C50301: 0x03CD, + 0x03C90301: 0x03CE, + 0x03D20301: 0x03D3, + 0x03D20308: 0x03D4, + 0x04150300: 0x0400, + 0x04150308: 0x0401, + 0x04130301: 0x0403, + 0x04060308: 0x0407, + 0x041A0301: 0x040C, + 0x04180300: 0x040D, + 0x04230306: 0x040E, + 0x04180306: 0x0419, + 0x04380306: 0x0439, + 0x04350300: 0x0450, + 0x04350308: 0x0451, + 0x04330301: 0x0453, + 0x04560308: 0x0457, + 0x043A0301: 0x045C, + 0x04380300: 0x045D, + 0x04430306: 0x045E, + 0x0474030F: 0x0476, + 0x0475030F: 0x0477, + 0x04160306: 0x04C1, + 0x04360306: 0x04C2, + 0x04100306: 0x04D0, + 0x04300306: 0x04D1, + 0x04100308: 0x04D2, + 0x04300308: 0x04D3, + 0x04150306: 0x04D6, + 0x04350306: 0x04D7, + 0x04D80308: 0x04DA, + 0x04D90308: 0x04DB, + 0x04160308: 0x04DC, + 0x04360308: 0x04DD, + 0x04170308: 0x04DE, + 0x04370308: 0x04DF, + 0x04180304: 0x04E2, + 0x04380304: 0x04E3, + 0x04180308: 0x04E4, + 0x04380308: 0x04E5, + 0x041E0308: 0x04E6, + 0x043E0308: 0x04E7, + 0x04E80308: 0x04EA, + 0x04E90308: 0x04EB, + 0x042D0308: 0x04EC, + 0x044D0308: 0x04ED, + 0x04230304: 0x04EE, + 0x04430304: 0x04EF, + 0x04230308: 0x04F0, + 0x04430308: 0x04F1, + 0x0423030B: 0x04F2, + 0x0443030B: 0x04F3, + 0x04270308: 0x04F4, + 0x04470308: 0x04F5, + 0x042B0308: 0x04F8, + 0x044B0308: 0x04F9, + 0x06270653: 0x0622, + 0x06270654: 0x0623, + 0x06480654: 0x0624, + 0x06270655: 0x0625, + 0x064A0654: 0x0626, + 0x06D50654: 0x06C0, + 0x06C10654: 0x06C2, + 0x06D20654: 0x06D3, + 0x0928093C: 0x0929, + 0x0930093C: 0x0931, + 0x0933093C: 0x0934, + 0x09C709BE: 0x09CB, + 0x09C709D7: 0x09CC, + 0x0B470B56: 0x0B48, + 0x0B470B3E: 0x0B4B, + 0x0B470B57: 0x0B4C, + 0x0B920BD7: 0x0B94, + 0x0BC60BBE: 0x0BCA, + 0x0BC70BBE: 0x0BCB, + 0x0BC60BD7: 0x0BCC, + 0x0C460C56: 0x0C48, + 0x0CBF0CD5: 0x0CC0, + 0x0CC60CD5: 0x0CC7, + 0x0CC60CD6: 0x0CC8, + 0x0CC60CC2: 0x0CCA, + 0x0CCA0CD5: 0x0CCB, + 0x0D460D3E: 0x0D4A, + 0x0D470D3E: 0x0D4B, + 0x0D460D57: 0x0D4C, + 0x0DD90DCA: 0x0DDA, + 0x0DD90DCF: 0x0DDC, + 0x0DDC0DCA: 0x0DDD, + 0x0DD90DDF: 0x0DDE, + 0x1025102E: 0x1026, + 0x1B051B35: 0x1B06, + 0x1B071B35: 0x1B08, + 0x1B091B35: 0x1B0A, + 0x1B0B1B35: 0x1B0C, + 0x1B0D1B35: 0x1B0E, + 0x1B111B35: 0x1B12, + 0x1B3A1B35: 0x1B3B, + 0x1B3C1B35: 0x1B3D, + 0x1B3E1B35: 0x1B40, + 0x1B3F1B35: 0x1B41, + 0x1B421B35: 0x1B43, + 0x00410325: 0x1E00, + 0x00610325: 0x1E01, + 0x00420307: 0x1E02, + 0x00620307: 0x1E03, + 0x00420323: 0x1E04, + 0x00620323: 0x1E05, + 0x00420331: 0x1E06, + 0x00620331: 0x1E07, + 0x00C70301: 0x1E08, + 0x00E70301: 0x1E09, + 0x00440307: 0x1E0A, + 0x00640307: 0x1E0B, + 0x00440323: 0x1E0C, + 0x00640323: 0x1E0D, + 0x00440331: 0x1E0E, + 0x00640331: 0x1E0F, + 0x00440327: 0x1E10, + 0x00640327: 0x1E11, + 0x0044032D: 0x1E12, + 0x0064032D: 0x1E13, + 0x01120300: 0x1E14, + 0x01130300: 0x1E15, + 0x01120301: 0x1E16, + 0x01130301: 0x1E17, + 0x0045032D: 0x1E18, + 0x0065032D: 0x1E19, + 0x00450330: 0x1E1A, + 0x00650330: 0x1E1B, + 0x02280306: 0x1E1C, + 0x02290306: 0x1E1D, + 0x00460307: 0x1E1E, + 0x00660307: 0x1E1F, + 0x00470304: 0x1E20, + 0x00670304: 0x1E21, + 0x00480307: 0x1E22, + 0x00680307: 0x1E23, + 0x00480323: 0x1E24, + 0x00680323: 0x1E25, + 0x00480308: 0x1E26, + 0x00680308: 0x1E27, + 0x00480327: 0x1E28, + 0x00680327: 0x1E29, + 0x0048032E: 0x1E2A, + 0x0068032E: 0x1E2B, + 0x00490330: 0x1E2C, + 0x00690330: 0x1E2D, + 0x00CF0301: 0x1E2E, + 0x00EF0301: 0x1E2F, + 0x004B0301: 0x1E30, + 0x006B0301: 0x1E31, + 0x004B0323: 0x1E32, + 0x006B0323: 0x1E33, + 0x004B0331: 0x1E34, + 0x006B0331: 0x1E35, + 0x004C0323: 0x1E36, + 0x006C0323: 0x1E37, + 0x1E360304: 0x1E38, + 0x1E370304: 0x1E39, + 0x004C0331: 0x1E3A, + 0x006C0331: 0x1E3B, + 0x004C032D: 0x1E3C, + 0x006C032D: 0x1E3D, + 0x004D0301: 0x1E3E, + 0x006D0301: 0x1E3F, + 0x004D0307: 0x1E40, + 0x006D0307: 0x1E41, + 0x004D0323: 0x1E42, + 0x006D0323: 0x1E43, + 0x004E0307: 0x1E44, + 0x006E0307: 0x1E45, + 0x004E0323: 0x1E46, + 0x006E0323: 0x1E47, + 0x004E0331: 0x1E48, + 0x006E0331: 0x1E49, + 0x004E032D: 0x1E4A, + 0x006E032D: 0x1E4B, + 0x00D50301: 0x1E4C, + 0x00F50301: 0x1E4D, + 0x00D50308: 0x1E4E, + 0x00F50308: 0x1E4F, + 0x014C0300: 0x1E50, + 0x014D0300: 0x1E51, + 0x014C0301: 0x1E52, + 0x014D0301: 0x1E53, + 0x00500301: 0x1E54, + 0x00700301: 0x1E55, + 0x00500307: 0x1E56, + 0x00700307: 0x1E57, + 0x00520307: 0x1E58, + 0x00720307: 0x1E59, + 0x00520323: 0x1E5A, + 0x00720323: 0x1E5B, + 0x1E5A0304: 0x1E5C, + 0x1E5B0304: 0x1E5D, + 0x00520331: 0x1E5E, + 0x00720331: 0x1E5F, + 0x00530307: 0x1E60, + 0x00730307: 0x1E61, + 0x00530323: 0x1E62, + 0x00730323: 0x1E63, + 0x015A0307: 0x1E64, + 0x015B0307: 0x1E65, + 0x01600307: 0x1E66, + 0x01610307: 0x1E67, + 0x1E620307: 0x1E68, + 0x1E630307: 0x1E69, + 0x00540307: 0x1E6A, + 0x00740307: 0x1E6B, + 0x00540323: 0x1E6C, + 0x00740323: 0x1E6D, + 0x00540331: 0x1E6E, + 0x00740331: 0x1E6F, + 0x0054032D: 0x1E70, + 0x0074032D: 0x1E71, + 0x00550324: 0x1E72, + 0x00750324: 0x1E73, + 0x00550330: 0x1E74, + 0x00750330: 0x1E75, + 0x0055032D: 0x1E76, + 0x0075032D: 0x1E77, + 0x01680301: 0x1E78, + 0x01690301: 0x1E79, + 0x016A0308: 0x1E7A, + 0x016B0308: 0x1E7B, + 0x00560303: 0x1E7C, + 0x00760303: 0x1E7D, + 0x00560323: 0x1E7E, + 0x00760323: 0x1E7F, + 0x00570300: 0x1E80, + 0x00770300: 0x1E81, + 0x00570301: 0x1E82, + 0x00770301: 0x1E83, + 0x00570308: 0x1E84, + 0x00770308: 0x1E85, + 0x00570307: 0x1E86, + 0x00770307: 0x1E87, + 0x00570323: 0x1E88, + 0x00770323: 0x1E89, + 0x00580307: 0x1E8A, + 0x00780307: 0x1E8B, + 0x00580308: 0x1E8C, + 0x00780308: 0x1E8D, + 0x00590307: 0x1E8E, + 0x00790307: 0x1E8F, + 0x005A0302: 0x1E90, + 0x007A0302: 0x1E91, + 0x005A0323: 0x1E92, + 0x007A0323: 0x1E93, + 0x005A0331: 0x1E94, + 0x007A0331: 0x1E95, + 0x00680331: 0x1E96, + 0x00740308: 0x1E97, + 0x0077030A: 0x1E98, + 0x0079030A: 0x1E99, + 0x017F0307: 0x1E9B, + 0x00410323: 0x1EA0, + 0x00610323: 0x1EA1, + 0x00410309: 0x1EA2, + 0x00610309: 0x1EA3, + 0x00C20301: 0x1EA4, + 0x00E20301: 0x1EA5, + 0x00C20300: 0x1EA6, + 0x00E20300: 0x1EA7, + 0x00C20309: 0x1EA8, + 0x00E20309: 0x1EA9, + 0x00C20303: 0x1EAA, + 0x00E20303: 0x1EAB, + 0x1EA00302: 0x1EAC, + 0x1EA10302: 0x1EAD, + 0x01020301: 0x1EAE, + 0x01030301: 0x1EAF, + 0x01020300: 0x1EB0, + 0x01030300: 0x1EB1, + 0x01020309: 0x1EB2, + 0x01030309: 0x1EB3, + 0x01020303: 0x1EB4, + 0x01030303: 0x1EB5, + 0x1EA00306: 0x1EB6, + 0x1EA10306: 0x1EB7, + 0x00450323: 0x1EB8, + 0x00650323: 0x1EB9, + 0x00450309: 0x1EBA, + 0x00650309: 0x1EBB, + 0x00450303: 0x1EBC, + 0x00650303: 0x1EBD, + 0x00CA0301: 0x1EBE, + 0x00EA0301: 0x1EBF, + 0x00CA0300: 0x1EC0, + 0x00EA0300: 0x1EC1, + 0x00CA0309: 0x1EC2, + 0x00EA0309: 0x1EC3, + 0x00CA0303: 0x1EC4, + 0x00EA0303: 0x1EC5, + 0x1EB80302: 0x1EC6, + 0x1EB90302: 0x1EC7, + 0x00490309: 0x1EC8, + 0x00690309: 0x1EC9, + 0x00490323: 0x1ECA, + 0x00690323: 0x1ECB, + 0x004F0323: 0x1ECC, + 0x006F0323: 0x1ECD, + 0x004F0309: 0x1ECE, + 0x006F0309: 0x1ECF, + 0x00D40301: 0x1ED0, + 0x00F40301: 0x1ED1, + 0x00D40300: 0x1ED2, + 0x00F40300: 0x1ED3, + 0x00D40309: 0x1ED4, + 0x00F40309: 0x1ED5, + 0x00D40303: 0x1ED6, + 0x00F40303: 0x1ED7, + 0x1ECC0302: 0x1ED8, + 0x1ECD0302: 0x1ED9, + 0x01A00301: 0x1EDA, + 0x01A10301: 0x1EDB, + 0x01A00300: 0x1EDC, + 0x01A10300: 0x1EDD, + 0x01A00309: 0x1EDE, + 0x01A10309: 0x1EDF, + 0x01A00303: 0x1EE0, + 0x01A10303: 0x1EE1, + 0x01A00323: 0x1EE2, + 0x01A10323: 0x1EE3, + 0x00550323: 0x1EE4, + 0x00750323: 0x1EE5, + 0x00550309: 0x1EE6, + 0x00750309: 0x1EE7, + 0x01AF0301: 0x1EE8, + 0x01B00301: 0x1EE9, + 0x01AF0300: 0x1EEA, + 0x01B00300: 0x1EEB, + 0x01AF0309: 0x1EEC, + 0x01B00309: 0x1EED, + 0x01AF0303: 0x1EEE, + 0x01B00303: 0x1EEF, + 0x01AF0323: 0x1EF0, + 0x01B00323: 0x1EF1, + 0x00590300: 0x1EF2, + 0x00790300: 0x1EF3, + 0x00590323: 0x1EF4, + 0x00790323: 0x1EF5, + 0x00590309: 0x1EF6, + 0x00790309: 0x1EF7, + 0x00590303: 0x1EF8, + 0x00790303: 0x1EF9, + 0x03B10313: 0x1F00, + 0x03B10314: 0x1F01, + 0x1F000300: 0x1F02, + 0x1F010300: 0x1F03, + 0x1F000301: 0x1F04, + 0x1F010301: 0x1F05, + 0x1F000342: 0x1F06, + 0x1F010342: 0x1F07, + 0x03910313: 0x1F08, + 0x03910314: 0x1F09, + 0x1F080300: 0x1F0A, + 0x1F090300: 0x1F0B, + 0x1F080301: 0x1F0C, + 0x1F090301: 0x1F0D, + 0x1F080342: 0x1F0E, + 0x1F090342: 0x1F0F, + 0x03B50313: 0x1F10, + 0x03B50314: 0x1F11, + 0x1F100300: 0x1F12, + 0x1F110300: 0x1F13, + 0x1F100301: 0x1F14, + 0x1F110301: 0x1F15, + 0x03950313: 0x1F18, + 0x03950314: 0x1F19, + 0x1F180300: 0x1F1A, + 0x1F190300: 0x1F1B, + 0x1F180301: 0x1F1C, + 0x1F190301: 0x1F1D, + 0x03B70313: 0x1F20, + 0x03B70314: 0x1F21, + 0x1F200300: 0x1F22, + 0x1F210300: 0x1F23, + 0x1F200301: 0x1F24, + 0x1F210301: 0x1F25, + 0x1F200342: 0x1F26, + 0x1F210342: 0x1F27, + 0x03970313: 0x1F28, + 0x03970314: 0x1F29, + 0x1F280300: 0x1F2A, + 0x1F290300: 0x1F2B, + 0x1F280301: 0x1F2C, + 0x1F290301: 0x1F2D, + 0x1F280342: 0x1F2E, + 0x1F290342: 0x1F2F, + 0x03B90313: 0x1F30, + 0x03B90314: 0x1F31, + 0x1F300300: 0x1F32, + 0x1F310300: 0x1F33, + 0x1F300301: 0x1F34, + 0x1F310301: 0x1F35, + 0x1F300342: 0x1F36, + 0x1F310342: 0x1F37, + 0x03990313: 0x1F38, + 0x03990314: 0x1F39, + 0x1F380300: 0x1F3A, + 0x1F390300: 0x1F3B, + 0x1F380301: 0x1F3C, + 0x1F390301: 0x1F3D, + 0x1F380342: 0x1F3E, + 0x1F390342: 0x1F3F, + 0x03BF0313: 0x1F40, + 0x03BF0314: 0x1F41, + 0x1F400300: 0x1F42, + 0x1F410300: 0x1F43, + 0x1F400301: 0x1F44, + 0x1F410301: 0x1F45, + 0x039F0313: 0x1F48, + 0x039F0314: 0x1F49, + 0x1F480300: 0x1F4A, + 0x1F490300: 0x1F4B, + 0x1F480301: 0x1F4C, + 0x1F490301: 0x1F4D, + 0x03C50313: 0x1F50, + 0x03C50314: 0x1F51, + 0x1F500300: 0x1F52, + 0x1F510300: 0x1F53, + 0x1F500301: 0x1F54, + 0x1F510301: 0x1F55, + 0x1F500342: 0x1F56, + 0x1F510342: 0x1F57, + 0x03A50314: 0x1F59, + 0x1F590300: 0x1F5B, + 0x1F590301: 0x1F5D, + 0x1F590342: 0x1F5F, + 0x03C90313: 0x1F60, + 0x03C90314: 0x1F61, + 0x1F600300: 0x1F62, + 0x1F610300: 0x1F63, + 0x1F600301: 0x1F64, + 0x1F610301: 0x1F65, + 0x1F600342: 0x1F66, + 0x1F610342: 0x1F67, + 0x03A90313: 0x1F68, + 0x03A90314: 0x1F69, + 0x1F680300: 0x1F6A, + 0x1F690300: 0x1F6B, + 0x1F680301: 0x1F6C, + 0x1F690301: 0x1F6D, + 0x1F680342: 0x1F6E, + 0x1F690342: 0x1F6F, + 0x03B10300: 0x1F70, + 0x03B50300: 0x1F72, + 0x03B70300: 0x1F74, + 0x03B90300: 0x1F76, + 0x03BF0300: 0x1F78, + 0x03C50300: 0x1F7A, + 0x03C90300: 0x1F7C, + 0x1F000345: 0x1F80, + 0x1F010345: 0x1F81, + 0x1F020345: 0x1F82, + 0x1F030345: 0x1F83, + 0x1F040345: 0x1F84, + 0x1F050345: 0x1F85, + 0x1F060345: 0x1F86, + 0x1F070345: 0x1F87, + 0x1F080345: 0x1F88, + 0x1F090345: 0x1F89, + 0x1F0A0345: 0x1F8A, + 0x1F0B0345: 0x1F8B, + 0x1F0C0345: 0x1F8C, + 0x1F0D0345: 0x1F8D, + 0x1F0E0345: 0x1F8E, + 0x1F0F0345: 0x1F8F, + 0x1F200345: 0x1F90, + 0x1F210345: 0x1F91, + 0x1F220345: 0x1F92, + 0x1F230345: 0x1F93, + 0x1F240345: 0x1F94, + 0x1F250345: 0x1F95, + 0x1F260345: 0x1F96, + 0x1F270345: 0x1F97, + 0x1F280345: 0x1F98, + 0x1F290345: 0x1F99, + 0x1F2A0345: 0x1F9A, + 0x1F2B0345: 0x1F9B, + 0x1F2C0345: 0x1F9C, + 0x1F2D0345: 0x1F9D, + 0x1F2E0345: 0x1F9E, + 0x1F2F0345: 0x1F9F, + 0x1F600345: 0x1FA0, + 0x1F610345: 0x1FA1, + 0x1F620345: 0x1FA2, + 0x1F630345: 0x1FA3, + 0x1F640345: 0x1FA4, + 0x1F650345: 0x1FA5, + 0x1F660345: 0x1FA6, + 0x1F670345: 0x1FA7, + 0x1F680345: 0x1FA8, + 0x1F690345: 0x1FA9, + 0x1F6A0345: 0x1FAA, + 0x1F6B0345: 0x1FAB, + 0x1F6C0345: 0x1FAC, + 0x1F6D0345: 0x1FAD, + 0x1F6E0345: 0x1FAE, + 0x1F6F0345: 0x1FAF, + 0x03B10306: 0x1FB0, + 0x03B10304: 0x1FB1, + 0x1F700345: 0x1FB2, + 0x03B10345: 0x1FB3, + 0x03AC0345: 0x1FB4, + 0x03B10342: 0x1FB6, + 0x1FB60345: 0x1FB7, + 0x03910306: 0x1FB8, + 0x03910304: 0x1FB9, + 0x03910300: 0x1FBA, + 0x03910345: 0x1FBC, + 0x00A80342: 0x1FC1, + 0x1F740345: 0x1FC2, + 0x03B70345: 0x1FC3, + 0x03AE0345: 0x1FC4, + 0x03B70342: 0x1FC6, + 0x1FC60345: 0x1FC7, + 0x03950300: 0x1FC8, + 0x03970300: 0x1FCA, + 0x03970345: 0x1FCC, + 0x1FBF0300: 0x1FCD, + 0x1FBF0301: 0x1FCE, + 0x1FBF0342: 0x1FCF, + 0x03B90306: 0x1FD0, + 0x03B90304: 0x1FD1, + 0x03CA0300: 0x1FD2, + 0x03B90342: 0x1FD6, + 0x03CA0342: 0x1FD7, + 0x03990306: 0x1FD8, + 0x03990304: 0x1FD9, + 0x03990300: 0x1FDA, + 0x1FFE0300: 0x1FDD, + 0x1FFE0301: 0x1FDE, + 0x1FFE0342: 0x1FDF, + 0x03C50306: 0x1FE0, + 0x03C50304: 0x1FE1, + 0x03CB0300: 0x1FE2, + 0x03C10313: 0x1FE4, + 0x03C10314: 0x1FE5, + 0x03C50342: 0x1FE6, + 0x03CB0342: 0x1FE7, + 0x03A50306: 0x1FE8, + 0x03A50304: 0x1FE9, + 0x03A50300: 0x1FEA, + 0x03A10314: 0x1FEC, + 0x00A80300: 0x1FED, + 0x1F7C0345: 0x1FF2, + 0x03C90345: 0x1FF3, + 0x03CE0345: 0x1FF4, + 0x03C90342: 0x1FF6, + 0x1FF60345: 0x1FF7, + 0x039F0300: 0x1FF8, + 0x03A90300: 0x1FFA, + 0x03A90345: 0x1FFC, + 0x21900338: 0x219A, + 0x21920338: 0x219B, + 0x21940338: 0x21AE, + 0x21D00338: 0x21CD, + 0x21D40338: 0x21CE, + 0x21D20338: 0x21CF, + 0x22030338: 0x2204, + 0x22080338: 0x2209, + 0x220B0338: 0x220C, + 0x22230338: 0x2224, + 0x22250338: 0x2226, + 0x223C0338: 0x2241, + 0x22430338: 0x2244, + 0x22450338: 0x2247, + 0x22480338: 0x2249, + 0x003D0338: 0x2260, + 0x22610338: 0x2262, + 0x224D0338: 0x226D, + 0x003C0338: 0x226E, + 0x003E0338: 0x226F, + 0x22640338: 0x2270, + 0x22650338: 0x2271, + 0x22720338: 0x2274, + 0x22730338: 0x2275, + 0x22760338: 0x2278, + 0x22770338: 0x2279, + 0x227A0338: 0x2280, + 0x227B0338: 0x2281, + 0x22820338: 0x2284, + 0x22830338: 0x2285, + 0x22860338: 0x2288, + 0x22870338: 0x2289, + 0x22A20338: 0x22AC, + 0x22A80338: 0x22AD, + 0x22A90338: 0x22AE, + 0x22AB0338: 0x22AF, + 0x227C0338: 0x22E0, + 0x227D0338: 0x22E1, + 0x22910338: 0x22E2, + 0x22920338: 0x22E3, + 0x22B20338: 0x22EA, + 0x22B30338: 0x22EB, + 0x22B40338: 0x22EC, + 0x22B50338: 0x22ED, + 0x304B3099: 0x304C, + 0x304D3099: 0x304E, + 0x304F3099: 0x3050, + 0x30513099: 0x3052, + 0x30533099: 0x3054, + 0x30553099: 0x3056, + 0x30573099: 0x3058, + 0x30593099: 0x305A, + 0x305B3099: 0x305C, + 0x305D3099: 0x305E, + 0x305F3099: 0x3060, + 0x30613099: 0x3062, + 0x30643099: 0x3065, + 0x30663099: 0x3067, + 0x30683099: 0x3069, + 0x306F3099: 0x3070, + 0x306F309A: 0x3071, + 0x30723099: 0x3073, + 0x3072309A: 0x3074, + 0x30753099: 0x3076, + 0x3075309A: 0x3077, + 0x30783099: 0x3079, + 0x3078309A: 0x307A, + 0x307B3099: 0x307C, + 0x307B309A: 0x307D, + 0x30463099: 0x3094, + 0x309D3099: 0x309E, + 0x30AB3099: 0x30AC, + 0x30AD3099: 0x30AE, + 0x30AF3099: 0x30B0, + 0x30B13099: 0x30B2, + 0x30B33099: 0x30B4, + 0x30B53099: 0x30B6, + 0x30B73099: 0x30B8, + 0x30B93099: 0x30BA, + 0x30BB3099: 0x30BC, + 0x30BD3099: 0x30BE, + 0x30BF3099: 0x30C0, + 0x30C13099: 0x30C2, + 0x30C43099: 0x30C5, + 0x30C63099: 0x30C7, + 0x30C83099: 0x30C9, + 0x30CF3099: 0x30D0, + 0x30CF309A: 0x30D1, + 0x30D23099: 0x30D3, + 0x30D2309A: 0x30D4, + 0x30D53099: 0x30D6, + 0x30D5309A: 0x30D7, + 0x30D83099: 0x30D9, + 0x30D8309A: 0x30DA, + 0x30DB3099: 0x30DC, + 0x30DB309A: 0x30DD, + 0x30A63099: 0x30F4, + 0x30EF3099: 0x30F7, + 0x30F03099: 0x30F8, + 0x30F13099: 0x30F9, + 0x30F23099: 0x30FA, + 0x30FD3099: 0x30FE, + 0x109910BA: 0x1109A, + 0x109B10BA: 0x1109C, + 0x10A510BA: 0x110AB, + 0x11311127: 0x1112E, + 0x11321127: 0x1112F, + 0x1347133E: 0x1134B, + 0x13471357: 0x1134C, + 0x14B914BA: 0x114BB, + 0x14B914B0: 0x114BC, + 0x14B914BD: 0x114BE, + 0x15B815AF: 0x115BA, + 0x15B915AF: 0x115BB, +} -const recompMapPacked = "" + - "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 - "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 - "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 - "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 - "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 - "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 - "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 - "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 - "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 - "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA - "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB - "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC - "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD - "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE - "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF - "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 - "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 - "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 - "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 - "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 - "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 - "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 - "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA - "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB - "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC - "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD - "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 - "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 - "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 - "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 - "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 - "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 - "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 - "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 - "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 - "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA - "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB - "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC - "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED - "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE - "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF - "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 - "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 - "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 - "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 - "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 - "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 - "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 - "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA - "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB - "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC - "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD - "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF - "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 - "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 - "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 - "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 - "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 - "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 - "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 - "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 - "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 - "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 - "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A - "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B - "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C - "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D - "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E - "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F - "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 - "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 - "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 - "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 - "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 - "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 - "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 - "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 - "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A - "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B - "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C - "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D - "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E - "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F - "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 - "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 - "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 - "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 - "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 - "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 - "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 - "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 - "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A - "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B - "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C - "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D - "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E - "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F - "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 - "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 - "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 - "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 - "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 - "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 - "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A - "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B - "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C - "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D - "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E - "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 - "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 - "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 - "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 - "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 - "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 - "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C - "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D - "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E - "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F - "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 - "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 - "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 - "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 - "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 - "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 - "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 - "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 - "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A - "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B - "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C - "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D - "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E - "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F - "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 - "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 - "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 - "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 - "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 - "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 - "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 - "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 - "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A - "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B - "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C - "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D - "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E - "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F - "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 - "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 - "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 - "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 - "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 - "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 - "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 - "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 - "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 - "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 - "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A - "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B - "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C - "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D - "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E - "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 - "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 - "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF - "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 - "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD - "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE - "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF - "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 - "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 - "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 - "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 - "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 - "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 - "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 - "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 - "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 - "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 - "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA - "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB - "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC - "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE - "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF - "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 - "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 - "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 - "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 - "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 - "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 - "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 - "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 - "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA - "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB - "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC - "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED - "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE - "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF - "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 - "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 - "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 - "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 - "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 - "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA - "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB - "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC - "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD - "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE - "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF - "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 - "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 - "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 - "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 - "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 - "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 - "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 - "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 - "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 - "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 - "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A - "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B - "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C - "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D - "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E - "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F - "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 - "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 - "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 - "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 - "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 - "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 - "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 - "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 - "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 - "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 - "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A - "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B - "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E - "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F - "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 - "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 - "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 - "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 - "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A - "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B - "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C - "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D - "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E - "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F - "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 - "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 - "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 - "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 - "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 - "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 - "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 - "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 - "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A - "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C - "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E - "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F - "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 - "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA - "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB - "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC - "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD - "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE - "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF - "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 - "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA - "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB - "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC - "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD - "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE - "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 - "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 - "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 - "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 - "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 - "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 - "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C - "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D - "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E - "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 - "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 - "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 - "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 - "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 - "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 - "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C - "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D - "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E - "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 - "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 - "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 - "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 - "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 - "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 - "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 - "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 - "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 - "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 - "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA - "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB - "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC - "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD - "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE - "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF - "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 - "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 - "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 - "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 - "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 - "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 - "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA - "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB - "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC - "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED - "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE - "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF - "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 - "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 - "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 - "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 - "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 - "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 - "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 - "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 - "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 - "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 - "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 - "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 - "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 - "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 - "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 - "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 - "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 - "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 - "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 - "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB - "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC - "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 - "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B - "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C - "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 - "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA - "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB - "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC - "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 - "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 - "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 - "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 - "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA - "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB - "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A - "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B - "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C - "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA - "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC - "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD - "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE - "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 - "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 - "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 - "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A - "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C - "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E - "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 - "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B - "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D - "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 - "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 - "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 - "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 - "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 - "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 - "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 - "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 - "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 - "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 - "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 - "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 - "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 - "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A - "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B - "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C - "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D - "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E - "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F - "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 - "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 - "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 - "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 - "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 - "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 - "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 - "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 - "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 - "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 - "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A - "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B - "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C - "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D - "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E - "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F - "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 - "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 - "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 - "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 - "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 - "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 - "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 - "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 - "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 - "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 - "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A - "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B - "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C - "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D - "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E - "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F - "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 - "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 - "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 - "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 - "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 - "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 - "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 - "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 - "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 - "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 - "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A - "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B - "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C - "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D - "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E - "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F - "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 - "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 - "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 - "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 - "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 - "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 - "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 - "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 - "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 - "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 - "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A - "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B - "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C - "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D - "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E - "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F - "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 - "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 - "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 - "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 - "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 - "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 - "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 - "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 - "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 - "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 - "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A - "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B - "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C - "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D - "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E - "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F - "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 - "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 - "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 - "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 - "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 - "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 - "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 - "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 - "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 - "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 - "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A - "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B - "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C - "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D - "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E - "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F - "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 - "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 - "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 - "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 - "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 - "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 - "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 - "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 - "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 - "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 - "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A - "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B - "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C - "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D - "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F - "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 - "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 - "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 - "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 - "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 - "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 - "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 - "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 - "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 - "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 - "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A - "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B - "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C - "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D - "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E - "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F - "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 - "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 - "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 - "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 - "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 - "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 - "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 - "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 - "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 - "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B - "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 - "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 - "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 - "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 - "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 - "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 - "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 - "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 - "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 - "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 - "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA - "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB - "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC - "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD - "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE - "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF - "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 - "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 - "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 - "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 - "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 - "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 - "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 - "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 - "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 - "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 - "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA - "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB - "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC - "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD - "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE - "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF - "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 - "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 - "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 - "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 - "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 - "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 - "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 - "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 - "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 - "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 - "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA - "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB - "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC - "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD - "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE - "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF - "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 - "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 - "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 - "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 - "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 - "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 - "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 - "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 - "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 - "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 - "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA - "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB - "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC - "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD - "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE - "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF - "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 - "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 - "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 - "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 - "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 - "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 - "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 - "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 - "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 - "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 - "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA - "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB - "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC - "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED - "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE - "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF - "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 - "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 - "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 - "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 - "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 - "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 - "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 - "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 - "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 - "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 - "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 - "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 - "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 - "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 - "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 - "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 - "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 - "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 - "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 - "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 - "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A - "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B - "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C - "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D - "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E - "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F - "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 - "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 - "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 - "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 - "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 - "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 - "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 - "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 - "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A - "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B - "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C - "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D - "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 - "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 - "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 - "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 - "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 - "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 - "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 - "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 - "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 - "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 - "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A - "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B - "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C - "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D - "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E - "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F - "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 - "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 - "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 - "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 - "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 - "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 - "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 - "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 - "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 - "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 - "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A - "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B - "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C - "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D - "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E - "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F - "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 - "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 - "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 - "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 - "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 - "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 - "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 - "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 - "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A - "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B - "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C - "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D - "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 - "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 - "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 - "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 - "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 - "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 - "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 - "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 - "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 - "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B - "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D - "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F - "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 - "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 - "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 - "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 - "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 - "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 - "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 - "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 - "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 - "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 - "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A - "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B - "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C - "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D - "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E - "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F - "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 - "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 - "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 - "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 - "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 - "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A - "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C - "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 - "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 - "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 - "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 - "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 - "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 - "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 - "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 - "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 - "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 - "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A - "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B - "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C - "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D - "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E - "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F - "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 - "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 - "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 - "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 - "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 - "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 - "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 - "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 - "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 - "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 - "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A - "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B - "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C - "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D - "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E - "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F - "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 - "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 - "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 - "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 - "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 - "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 - "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 - "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 - "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 - "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 - "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA - "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB - "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC - "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD - "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE - "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF - "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 - "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 - "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 - "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 - "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 - "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 - "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 - "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 - "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 - "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA - "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC - "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 - "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 - "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 - "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 - "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 - "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 - "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 - "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA - "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC - "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD - "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE - "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF - "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 - "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 - "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 - "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 - "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 - "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 - "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 - "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA - "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD - "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE - "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF - "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 - "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 - "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 - "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 - "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 - "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 - "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 - "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 - "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 - "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA - "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC - "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED - "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 - "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 - "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 - "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 - "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 - "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 - "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA - "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC - "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A - "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B - "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE - "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD - "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE - "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF - "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 - "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 - "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C - "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 - "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 - "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 - "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 - "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 - "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 - "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 - "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 - "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D - "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E - "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F - "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 - "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 - "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 - "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 - "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 - "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 - "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 - "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 - "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 - "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 - "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 - "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 - "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC - "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD - "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE - "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF - "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 - "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 - "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 - "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 - "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA - "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB - "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC - "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED - "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C - "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E - "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 - "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 - "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 - "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 - "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 - "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A - "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C - "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E - "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 - "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 - "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 - "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 - "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 - "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 - "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 - "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 - "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 - "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 - "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 - "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 - "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A - "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C - "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D - "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 - "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E - "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC - "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE - "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 - "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 - "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 - "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 - "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 - "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA - "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC - "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE - "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 - "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 - "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 - "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 - "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 - "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 - "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 - "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 - "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 - "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 - "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 - "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 - "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA - "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC - "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD - "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 - "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 - "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 - "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 - "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA - "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE - "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A - "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C - "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB - "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E - "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F - "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B - "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C - "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB - "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC - "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE - "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA - "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB - "" - // Total size of tables: 53KB (54006 bytes) +// Total size of tables: 53KB (54006 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/transform.go b/vendor/golang.org/x/text/unicode/norm/transform.go index a1d366ae4..9f47efbaf 100644 --- a/vendor/golang.org/x/text/unicode/norm/transform.go +++ b/vendor/golang.org/x/text/unicode/norm/transform.go @@ -18,6 +18,7 @@ func (Form) Reset() {} // Users should either catch ErrShortDst and allow dst to grow or have dst be at // least of size MaxTransformChunkSize to be guaranteed of progress. func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := 0 // Cap the maximum number of src bytes to check. b := src eof := atEOF @@ -26,14 +27,13 @@ func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) eof = false b = b[:ns] } - i, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof) - n := copy(dst, b[:i]) + i, ok := formTable[f].quickSpan(inputBytes(b), n, len(b), eof) + n += copy(dst[n:], b[n:i]) if !ok { nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) return nDst + n, nSrc + n, err } - - if err == nil && n < len(src) && !atEOF { + if n < len(src) && !atEOF { err = transform.ErrShortSrc } return n, n, err @@ -79,7 +79,7 @@ func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) nSrc += n nDst += n if ok { - if err == nil && n < rb.nsrc && !atEOF { + if n < rb.nsrc && !atEOF { err = transform.ErrShortSrc } return nDst, nSrc, err diff --git a/vendor/golang.org/x/text/width/kind_string.go b/vendor/golang.org/x/text/width/kind_string.go index dd3febd43..49bfbf726 100644 --- a/vendor/golang.org/x/text/width/kind_string.go +++ b/vendor/golang.org/x/text/width/kind_string.go @@ -2,19 +2,7 @@ package width -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[Neutral-0] - _ = x[EastAsianAmbiguous-1] - _ = x[EastAsianWide-2] - _ = x[EastAsianNarrow-3] - _ = x[EastAsianFullwidth-4] - _ = x[EastAsianHalfwidth-5] -} +import "fmt" const _Kind_name = "NeutralEastAsianAmbiguousEastAsianWideEastAsianNarrowEastAsianFullwidthEastAsianHalfwidth" @@ -22,7 +10,7 @@ var _Kind_index = [...]uint8{0, 7, 25, 38, 53, 71, 89} func (i Kind) String() string { if i < 0 || i >= Kind(len(_Kind_index)-1) { - return "Kind(" + strconv.FormatInt(int64(i), 10) + ")" + return fmt.Sprintf("Kind(%d)", i) } return _Kind_name[_Kind_index[i]:_Kind_index[i+1]] } diff --git a/vendor/golang.org/x/text/width/tables10.0.0.go b/vendor/golang.org/x/text/width/tables10.0.0.go index decb8e480..f49886267 100644 --- a/vendor/golang.org/x/text/width/tables10.0.0.go +++ b/vendor/golang.org/x/text/width/tables10.0.0.go @@ -1,6 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -// +build go1.10,!go1.13 +// +build go1.10 package width diff --git a/vendor/golang.org/x/text/width/tables11.0.0.go b/vendor/golang.org/x/text/width/tables11.0.0.go deleted file mode 100644 index d6def0e7b..000000000 --- a/vendor/golang.org/x/text/width/tables11.0.0.go +++ /dev/null @@ -1,1330 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -// +build go1.13 - -package width - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "11.0.0" - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *widthTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return widthValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = widthIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *widthTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return widthValues[c0] - } - i := widthIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = widthIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = widthIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *widthTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return widthValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = widthIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *widthTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return widthValues[c0] - } - i := widthIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = widthIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = widthIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// widthTrie. Total size: 14336 bytes (14.00 KiB). Checksum: c0f7712776e71cd4. -type widthTrie struct{} - -func newWidthTrie(i int) *widthTrie { - return &widthTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *widthTrie) lookupValue(n uint32, b byte) uint16 { - switch { - default: - return uint16(widthValues[n<<6+uint32(b)]) - } -} - -// widthValues: 101 blocks, 6464 entries, 12928 bytes -// The third block is the zero block. -var widthValues = [6464]uint16{ - // Block 0x0, offset 0x0 - 0x20: 0x6001, 0x21: 0x6002, 0x22: 0x6002, 0x23: 0x6002, - 0x24: 0x6002, 0x25: 0x6002, 0x26: 0x6002, 0x27: 0x6002, 0x28: 0x6002, 0x29: 0x6002, - 0x2a: 0x6002, 0x2b: 0x6002, 0x2c: 0x6002, 0x2d: 0x6002, 0x2e: 0x6002, 0x2f: 0x6002, - 0x30: 0x6002, 0x31: 0x6002, 0x32: 0x6002, 0x33: 0x6002, 0x34: 0x6002, 0x35: 0x6002, - 0x36: 0x6002, 0x37: 0x6002, 0x38: 0x6002, 0x39: 0x6002, 0x3a: 0x6002, 0x3b: 0x6002, - 0x3c: 0x6002, 0x3d: 0x6002, 0x3e: 0x6002, 0x3f: 0x6002, - // Block 0x1, offset 0x40 - 0x40: 0x6003, 0x41: 0x6003, 0x42: 0x6003, 0x43: 0x6003, 0x44: 0x6003, 0x45: 0x6003, - 0x46: 0x6003, 0x47: 0x6003, 0x48: 0x6003, 0x49: 0x6003, 0x4a: 0x6003, 0x4b: 0x6003, - 0x4c: 0x6003, 0x4d: 0x6003, 0x4e: 0x6003, 0x4f: 0x6003, 0x50: 0x6003, 0x51: 0x6003, - 0x52: 0x6003, 0x53: 0x6003, 0x54: 0x6003, 0x55: 0x6003, 0x56: 0x6003, 0x57: 0x6003, - 0x58: 0x6003, 0x59: 0x6003, 0x5a: 0x6003, 0x5b: 0x6003, 0x5c: 0x6003, 0x5d: 0x6003, - 0x5e: 0x6003, 0x5f: 0x6003, 0x60: 0x6004, 0x61: 0x6004, 0x62: 0x6004, 0x63: 0x6004, - 0x64: 0x6004, 0x65: 0x6004, 0x66: 0x6004, 0x67: 0x6004, 0x68: 0x6004, 0x69: 0x6004, - 0x6a: 0x6004, 0x6b: 0x6004, 0x6c: 0x6004, 0x6d: 0x6004, 0x6e: 0x6004, 0x6f: 0x6004, - 0x70: 0x6004, 0x71: 0x6004, 0x72: 0x6004, 0x73: 0x6004, 0x74: 0x6004, 0x75: 0x6004, - 0x76: 0x6004, 0x77: 0x6004, 0x78: 0x6004, 0x79: 0x6004, 0x7a: 0x6004, 0x7b: 0x6004, - 0x7c: 0x6004, 0x7d: 0x6004, 0x7e: 0x6004, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xe1: 0x2000, 0xe2: 0x6005, 0xe3: 0x6005, - 0xe4: 0x2000, 0xe5: 0x6006, 0xe6: 0x6005, 0xe7: 0x2000, 0xe8: 0x2000, - 0xea: 0x2000, 0xec: 0x6007, 0xed: 0x2000, 0xee: 0x2000, 0xef: 0x6008, - 0xf0: 0x2000, 0xf1: 0x2000, 0xf2: 0x2000, 0xf3: 0x2000, 0xf4: 0x2000, - 0xf6: 0x2000, 0xf7: 0x2000, 0xf8: 0x2000, 0xf9: 0x2000, 0xfa: 0x2000, - 0xfc: 0x2000, 0xfd: 0x2000, 0xfe: 0x2000, 0xff: 0x2000, - // Block 0x4, offset 0x100 - 0x106: 0x2000, - 0x110: 0x2000, - 0x117: 0x2000, - 0x118: 0x2000, - 0x11e: 0x2000, 0x11f: 0x2000, 0x120: 0x2000, 0x121: 0x2000, - 0x126: 0x2000, 0x128: 0x2000, 0x129: 0x2000, - 0x12a: 0x2000, 0x12c: 0x2000, 0x12d: 0x2000, - 0x130: 0x2000, 0x132: 0x2000, 0x133: 0x2000, - 0x137: 0x2000, 0x138: 0x2000, 0x139: 0x2000, 0x13a: 0x2000, - 0x13c: 0x2000, 0x13e: 0x2000, - // Block 0x5, offset 0x140 - 0x141: 0x2000, - 0x151: 0x2000, - 0x153: 0x2000, - 0x15b: 0x2000, - 0x166: 0x2000, 0x167: 0x2000, - 0x16b: 0x2000, - 0x171: 0x2000, 0x172: 0x2000, 0x173: 0x2000, - 0x178: 0x2000, - 0x17f: 0x2000, - // Block 0x6, offset 0x180 - 0x180: 0x2000, 0x181: 0x2000, 0x182: 0x2000, 0x184: 0x2000, - 0x188: 0x2000, 0x189: 0x2000, 0x18a: 0x2000, 0x18b: 0x2000, - 0x18d: 0x2000, - 0x192: 0x2000, 0x193: 0x2000, - 0x1a6: 0x2000, 0x1a7: 0x2000, - 0x1ab: 0x2000, - // Block 0x7, offset 0x1c0 - 0x1ce: 0x2000, 0x1d0: 0x2000, - 0x1d2: 0x2000, 0x1d4: 0x2000, 0x1d6: 0x2000, - 0x1d8: 0x2000, 0x1da: 0x2000, 0x1dc: 0x2000, - // Block 0x8, offset 0x200 - 0x211: 0x2000, - 0x221: 0x2000, - // Block 0x9, offset 0x240 - 0x244: 0x2000, - 0x247: 0x2000, 0x249: 0x2000, 0x24a: 0x2000, 0x24b: 0x2000, - 0x24d: 0x2000, 0x250: 0x2000, - 0x258: 0x2000, 0x259: 0x2000, 0x25a: 0x2000, 0x25b: 0x2000, 0x25d: 0x2000, - 0x25f: 0x2000, - // Block 0xa, offset 0x280 - 0x280: 0x2000, 0x281: 0x2000, 0x282: 0x2000, 0x283: 0x2000, 0x284: 0x2000, 0x285: 0x2000, - 0x286: 0x2000, 0x287: 0x2000, 0x288: 0x2000, 0x289: 0x2000, 0x28a: 0x2000, 0x28b: 0x2000, - 0x28c: 0x2000, 0x28d: 0x2000, 0x28e: 0x2000, 0x28f: 0x2000, 0x290: 0x2000, 0x291: 0x2000, - 0x292: 0x2000, 0x293: 0x2000, 0x294: 0x2000, 0x295: 0x2000, 0x296: 0x2000, 0x297: 0x2000, - 0x298: 0x2000, 0x299: 0x2000, 0x29a: 0x2000, 0x29b: 0x2000, 0x29c: 0x2000, 0x29d: 0x2000, - 0x29e: 0x2000, 0x29f: 0x2000, 0x2a0: 0x2000, 0x2a1: 0x2000, 0x2a2: 0x2000, 0x2a3: 0x2000, - 0x2a4: 0x2000, 0x2a5: 0x2000, 0x2a6: 0x2000, 0x2a7: 0x2000, 0x2a8: 0x2000, 0x2a9: 0x2000, - 0x2aa: 0x2000, 0x2ab: 0x2000, 0x2ac: 0x2000, 0x2ad: 0x2000, 0x2ae: 0x2000, 0x2af: 0x2000, - 0x2b0: 0x2000, 0x2b1: 0x2000, 0x2b2: 0x2000, 0x2b3: 0x2000, 0x2b4: 0x2000, 0x2b5: 0x2000, - 0x2b6: 0x2000, 0x2b7: 0x2000, 0x2b8: 0x2000, 0x2b9: 0x2000, 0x2ba: 0x2000, 0x2bb: 0x2000, - 0x2bc: 0x2000, 0x2bd: 0x2000, 0x2be: 0x2000, 0x2bf: 0x2000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x2000, 0x2c1: 0x2000, 0x2c2: 0x2000, 0x2c3: 0x2000, 0x2c4: 0x2000, 0x2c5: 0x2000, - 0x2c6: 0x2000, 0x2c7: 0x2000, 0x2c8: 0x2000, 0x2c9: 0x2000, 0x2ca: 0x2000, 0x2cb: 0x2000, - 0x2cc: 0x2000, 0x2cd: 0x2000, 0x2ce: 0x2000, 0x2cf: 0x2000, 0x2d0: 0x2000, 0x2d1: 0x2000, - 0x2d2: 0x2000, 0x2d3: 0x2000, 0x2d4: 0x2000, 0x2d5: 0x2000, 0x2d6: 0x2000, 0x2d7: 0x2000, - 0x2d8: 0x2000, 0x2d9: 0x2000, 0x2da: 0x2000, 0x2db: 0x2000, 0x2dc: 0x2000, 0x2dd: 0x2000, - 0x2de: 0x2000, 0x2df: 0x2000, 0x2e0: 0x2000, 0x2e1: 0x2000, 0x2e2: 0x2000, 0x2e3: 0x2000, - 0x2e4: 0x2000, 0x2e5: 0x2000, 0x2e6: 0x2000, 0x2e7: 0x2000, 0x2e8: 0x2000, 0x2e9: 0x2000, - 0x2ea: 0x2000, 0x2eb: 0x2000, 0x2ec: 0x2000, 0x2ed: 0x2000, 0x2ee: 0x2000, 0x2ef: 0x2000, - // Block 0xc, offset 0x300 - 0x311: 0x2000, - 0x312: 0x2000, 0x313: 0x2000, 0x314: 0x2000, 0x315: 0x2000, 0x316: 0x2000, 0x317: 0x2000, - 0x318: 0x2000, 0x319: 0x2000, 0x31a: 0x2000, 0x31b: 0x2000, 0x31c: 0x2000, 0x31d: 0x2000, - 0x31e: 0x2000, 0x31f: 0x2000, 0x320: 0x2000, 0x321: 0x2000, 0x323: 0x2000, - 0x324: 0x2000, 0x325: 0x2000, 0x326: 0x2000, 0x327: 0x2000, 0x328: 0x2000, 0x329: 0x2000, - 0x331: 0x2000, 0x332: 0x2000, 0x333: 0x2000, 0x334: 0x2000, 0x335: 0x2000, - 0x336: 0x2000, 0x337: 0x2000, 0x338: 0x2000, 0x339: 0x2000, 0x33a: 0x2000, 0x33b: 0x2000, - 0x33c: 0x2000, 0x33d: 0x2000, 0x33e: 0x2000, 0x33f: 0x2000, - // Block 0xd, offset 0x340 - 0x340: 0x2000, 0x341: 0x2000, 0x343: 0x2000, 0x344: 0x2000, 0x345: 0x2000, - 0x346: 0x2000, 0x347: 0x2000, 0x348: 0x2000, 0x349: 0x2000, - // Block 0xe, offset 0x380 - 0x381: 0x2000, - 0x390: 0x2000, 0x391: 0x2000, - 0x392: 0x2000, 0x393: 0x2000, 0x394: 0x2000, 0x395: 0x2000, 0x396: 0x2000, 0x397: 0x2000, - 0x398: 0x2000, 0x399: 0x2000, 0x39a: 0x2000, 0x39b: 0x2000, 0x39c: 0x2000, 0x39d: 0x2000, - 0x39e: 0x2000, 0x39f: 0x2000, 0x3a0: 0x2000, 0x3a1: 0x2000, 0x3a2: 0x2000, 0x3a3: 0x2000, - 0x3a4: 0x2000, 0x3a5: 0x2000, 0x3a6: 0x2000, 0x3a7: 0x2000, 0x3a8: 0x2000, 0x3a9: 0x2000, - 0x3aa: 0x2000, 0x3ab: 0x2000, 0x3ac: 0x2000, 0x3ad: 0x2000, 0x3ae: 0x2000, 0x3af: 0x2000, - 0x3b0: 0x2000, 0x3b1: 0x2000, 0x3b2: 0x2000, 0x3b3: 0x2000, 0x3b4: 0x2000, 0x3b5: 0x2000, - 0x3b6: 0x2000, 0x3b7: 0x2000, 0x3b8: 0x2000, 0x3b9: 0x2000, 0x3ba: 0x2000, 0x3bb: 0x2000, - 0x3bc: 0x2000, 0x3bd: 0x2000, 0x3be: 0x2000, 0x3bf: 0x2000, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x2000, 0x3c1: 0x2000, 0x3c2: 0x2000, 0x3c3: 0x2000, 0x3c4: 0x2000, 0x3c5: 0x2000, - 0x3c6: 0x2000, 0x3c7: 0x2000, 0x3c8: 0x2000, 0x3c9: 0x2000, 0x3ca: 0x2000, 0x3cb: 0x2000, - 0x3cc: 0x2000, 0x3cd: 0x2000, 0x3ce: 0x2000, 0x3cf: 0x2000, 0x3d1: 0x2000, - // Block 0x10, offset 0x400 - 0x400: 0x4000, 0x401: 0x4000, 0x402: 0x4000, 0x403: 0x4000, 0x404: 0x4000, 0x405: 0x4000, - 0x406: 0x4000, 0x407: 0x4000, 0x408: 0x4000, 0x409: 0x4000, 0x40a: 0x4000, 0x40b: 0x4000, - 0x40c: 0x4000, 0x40d: 0x4000, 0x40e: 0x4000, 0x40f: 0x4000, 0x410: 0x4000, 0x411: 0x4000, - 0x412: 0x4000, 0x413: 0x4000, 0x414: 0x4000, 0x415: 0x4000, 0x416: 0x4000, 0x417: 0x4000, - 0x418: 0x4000, 0x419: 0x4000, 0x41a: 0x4000, 0x41b: 0x4000, 0x41c: 0x4000, 0x41d: 0x4000, - 0x41e: 0x4000, 0x41f: 0x4000, 0x420: 0x4000, 0x421: 0x4000, 0x422: 0x4000, 0x423: 0x4000, - 0x424: 0x4000, 0x425: 0x4000, 0x426: 0x4000, 0x427: 0x4000, 0x428: 0x4000, 0x429: 0x4000, - 0x42a: 0x4000, 0x42b: 0x4000, 0x42c: 0x4000, 0x42d: 0x4000, 0x42e: 0x4000, 0x42f: 0x4000, - 0x430: 0x4000, 0x431: 0x4000, 0x432: 0x4000, 0x433: 0x4000, 0x434: 0x4000, 0x435: 0x4000, - 0x436: 0x4000, 0x437: 0x4000, 0x438: 0x4000, 0x439: 0x4000, 0x43a: 0x4000, 0x43b: 0x4000, - 0x43c: 0x4000, 0x43d: 0x4000, 0x43e: 0x4000, 0x43f: 0x4000, - // Block 0x11, offset 0x440 - 0x440: 0x4000, 0x441: 0x4000, 0x442: 0x4000, 0x443: 0x4000, 0x444: 0x4000, 0x445: 0x4000, - 0x446: 0x4000, 0x447: 0x4000, 0x448: 0x4000, 0x449: 0x4000, 0x44a: 0x4000, 0x44b: 0x4000, - 0x44c: 0x4000, 0x44d: 0x4000, 0x44e: 0x4000, 0x44f: 0x4000, 0x450: 0x4000, 0x451: 0x4000, - 0x452: 0x4000, 0x453: 0x4000, 0x454: 0x4000, 0x455: 0x4000, 0x456: 0x4000, 0x457: 0x4000, - 0x458: 0x4000, 0x459: 0x4000, 0x45a: 0x4000, 0x45b: 0x4000, 0x45c: 0x4000, 0x45d: 0x4000, - 0x45e: 0x4000, 0x45f: 0x4000, - // Block 0x12, offset 0x480 - 0x490: 0x2000, - 0x493: 0x2000, 0x494: 0x2000, 0x495: 0x2000, 0x496: 0x2000, - 0x498: 0x2000, 0x499: 0x2000, 0x49c: 0x2000, 0x49d: 0x2000, - 0x4a0: 0x2000, 0x4a1: 0x2000, 0x4a2: 0x2000, - 0x4a4: 0x2000, 0x4a5: 0x2000, 0x4a6: 0x2000, 0x4a7: 0x2000, - 0x4b0: 0x2000, 0x4b2: 0x2000, 0x4b3: 0x2000, 0x4b5: 0x2000, - 0x4bb: 0x2000, - 0x4be: 0x2000, - // Block 0x13, offset 0x4c0 - 0x4f4: 0x2000, - 0x4ff: 0x2000, - // Block 0x14, offset 0x500 - 0x501: 0x2000, 0x502: 0x2000, 0x503: 0x2000, 0x504: 0x2000, - 0x529: 0xa009, - 0x52c: 0x2000, - // Block 0x15, offset 0x540 - 0x543: 0x2000, 0x545: 0x2000, - 0x549: 0x2000, - 0x553: 0x2000, 0x556: 0x2000, - 0x561: 0x2000, 0x562: 0x2000, - 0x566: 0x2000, - 0x56b: 0x2000, - // Block 0x16, offset 0x580 - 0x593: 0x2000, 0x594: 0x2000, - 0x59b: 0x2000, 0x59c: 0x2000, 0x59d: 0x2000, - 0x59e: 0x2000, 0x5a0: 0x2000, 0x5a1: 0x2000, 0x5a2: 0x2000, 0x5a3: 0x2000, - 0x5a4: 0x2000, 0x5a5: 0x2000, 0x5a6: 0x2000, 0x5a7: 0x2000, 0x5a8: 0x2000, 0x5a9: 0x2000, - 0x5aa: 0x2000, 0x5ab: 0x2000, - 0x5b0: 0x2000, 0x5b1: 0x2000, 0x5b2: 0x2000, 0x5b3: 0x2000, 0x5b4: 0x2000, 0x5b5: 0x2000, - 0x5b6: 0x2000, 0x5b7: 0x2000, 0x5b8: 0x2000, 0x5b9: 0x2000, - // Block 0x17, offset 0x5c0 - 0x5c9: 0x2000, - 0x5d0: 0x200a, 0x5d1: 0x200b, - 0x5d2: 0x200a, 0x5d3: 0x200c, 0x5d4: 0x2000, 0x5d5: 0x2000, 0x5d6: 0x2000, 0x5d7: 0x2000, - 0x5d8: 0x2000, 0x5d9: 0x2000, - 0x5f8: 0x2000, 0x5f9: 0x2000, - // Block 0x18, offset 0x600 - 0x612: 0x2000, 0x614: 0x2000, - 0x627: 0x2000, - // Block 0x19, offset 0x640 - 0x640: 0x2000, 0x642: 0x2000, 0x643: 0x2000, - 0x647: 0x2000, 0x648: 0x2000, 0x64b: 0x2000, - 0x64f: 0x2000, 0x651: 0x2000, - 0x655: 0x2000, - 0x65a: 0x2000, 0x65d: 0x2000, - 0x65e: 0x2000, 0x65f: 0x2000, 0x660: 0x2000, 0x663: 0x2000, - 0x665: 0x2000, 0x667: 0x2000, 0x668: 0x2000, 0x669: 0x2000, - 0x66a: 0x2000, 0x66b: 0x2000, 0x66c: 0x2000, 0x66e: 0x2000, - 0x674: 0x2000, 0x675: 0x2000, - 0x676: 0x2000, 0x677: 0x2000, - 0x67c: 0x2000, 0x67d: 0x2000, - // Block 0x1a, offset 0x680 - 0x688: 0x2000, - 0x68c: 0x2000, - 0x692: 0x2000, - 0x6a0: 0x2000, 0x6a1: 0x2000, - 0x6a4: 0x2000, 0x6a5: 0x2000, 0x6a6: 0x2000, 0x6a7: 0x2000, - 0x6aa: 0x2000, 0x6ab: 0x2000, 0x6ae: 0x2000, 0x6af: 0x2000, - // Block 0x1b, offset 0x6c0 - 0x6c2: 0x2000, 0x6c3: 0x2000, - 0x6c6: 0x2000, 0x6c7: 0x2000, - 0x6d5: 0x2000, - 0x6d9: 0x2000, - 0x6e5: 0x2000, - 0x6ff: 0x2000, - // Block 0x1c, offset 0x700 - 0x712: 0x2000, - 0x71a: 0x4000, 0x71b: 0x4000, - 0x729: 0x4000, - 0x72a: 0x4000, - // Block 0x1d, offset 0x740 - 0x769: 0x4000, - 0x76a: 0x4000, 0x76b: 0x4000, 0x76c: 0x4000, - 0x770: 0x4000, 0x773: 0x4000, - // Block 0x1e, offset 0x780 - 0x7a0: 0x2000, 0x7a1: 0x2000, 0x7a2: 0x2000, 0x7a3: 0x2000, - 0x7a4: 0x2000, 0x7a5: 0x2000, 0x7a6: 0x2000, 0x7a7: 0x2000, 0x7a8: 0x2000, 0x7a9: 0x2000, - 0x7aa: 0x2000, 0x7ab: 0x2000, 0x7ac: 0x2000, 0x7ad: 0x2000, 0x7ae: 0x2000, 0x7af: 0x2000, - 0x7b0: 0x2000, 0x7b1: 0x2000, 0x7b2: 0x2000, 0x7b3: 0x2000, 0x7b4: 0x2000, 0x7b5: 0x2000, - 0x7b6: 0x2000, 0x7b7: 0x2000, 0x7b8: 0x2000, 0x7b9: 0x2000, 0x7ba: 0x2000, 0x7bb: 0x2000, - 0x7bc: 0x2000, 0x7bd: 0x2000, 0x7be: 0x2000, 0x7bf: 0x2000, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x2000, 0x7c1: 0x2000, 0x7c2: 0x2000, 0x7c3: 0x2000, 0x7c4: 0x2000, 0x7c5: 0x2000, - 0x7c6: 0x2000, 0x7c7: 0x2000, 0x7c8: 0x2000, 0x7c9: 0x2000, 0x7ca: 0x2000, 0x7cb: 0x2000, - 0x7cc: 0x2000, 0x7cd: 0x2000, 0x7ce: 0x2000, 0x7cf: 0x2000, 0x7d0: 0x2000, 0x7d1: 0x2000, - 0x7d2: 0x2000, 0x7d3: 0x2000, 0x7d4: 0x2000, 0x7d5: 0x2000, 0x7d6: 0x2000, 0x7d7: 0x2000, - 0x7d8: 0x2000, 0x7d9: 0x2000, 0x7da: 0x2000, 0x7db: 0x2000, 0x7dc: 0x2000, 0x7dd: 0x2000, - 0x7de: 0x2000, 0x7df: 0x2000, 0x7e0: 0x2000, 0x7e1: 0x2000, 0x7e2: 0x2000, 0x7e3: 0x2000, - 0x7e4: 0x2000, 0x7e5: 0x2000, 0x7e6: 0x2000, 0x7e7: 0x2000, 0x7e8: 0x2000, 0x7e9: 0x2000, - 0x7eb: 0x2000, 0x7ec: 0x2000, 0x7ed: 0x2000, 0x7ee: 0x2000, 0x7ef: 0x2000, - 0x7f0: 0x2000, 0x7f1: 0x2000, 0x7f2: 0x2000, 0x7f3: 0x2000, 0x7f4: 0x2000, 0x7f5: 0x2000, - 0x7f6: 0x2000, 0x7f7: 0x2000, 0x7f8: 0x2000, 0x7f9: 0x2000, 0x7fa: 0x2000, 0x7fb: 0x2000, - 0x7fc: 0x2000, 0x7fd: 0x2000, 0x7fe: 0x2000, 0x7ff: 0x2000, - // Block 0x20, offset 0x800 - 0x800: 0x2000, 0x801: 0x2000, 0x802: 0x200d, 0x803: 0x2000, 0x804: 0x2000, 0x805: 0x2000, - 0x806: 0x2000, 0x807: 0x2000, 0x808: 0x2000, 0x809: 0x2000, 0x80a: 0x2000, 0x80b: 0x2000, - 0x80c: 0x2000, 0x80d: 0x2000, 0x80e: 0x2000, 0x80f: 0x2000, 0x810: 0x2000, 0x811: 0x2000, - 0x812: 0x2000, 0x813: 0x2000, 0x814: 0x2000, 0x815: 0x2000, 0x816: 0x2000, 0x817: 0x2000, - 0x818: 0x2000, 0x819: 0x2000, 0x81a: 0x2000, 0x81b: 0x2000, 0x81c: 0x2000, 0x81d: 0x2000, - 0x81e: 0x2000, 0x81f: 0x2000, 0x820: 0x2000, 0x821: 0x2000, 0x822: 0x2000, 0x823: 0x2000, - 0x824: 0x2000, 0x825: 0x2000, 0x826: 0x2000, 0x827: 0x2000, 0x828: 0x2000, 0x829: 0x2000, - 0x82a: 0x2000, 0x82b: 0x2000, 0x82c: 0x2000, 0x82d: 0x2000, 0x82e: 0x2000, 0x82f: 0x2000, - 0x830: 0x2000, 0x831: 0x2000, 0x832: 0x2000, 0x833: 0x2000, 0x834: 0x2000, 0x835: 0x2000, - 0x836: 0x2000, 0x837: 0x2000, 0x838: 0x2000, 0x839: 0x2000, 0x83a: 0x2000, 0x83b: 0x2000, - 0x83c: 0x2000, 0x83d: 0x2000, 0x83e: 0x2000, 0x83f: 0x2000, - // Block 0x21, offset 0x840 - 0x840: 0x2000, 0x841: 0x2000, 0x842: 0x2000, 0x843: 0x2000, 0x844: 0x2000, 0x845: 0x2000, - 0x846: 0x2000, 0x847: 0x2000, 0x848: 0x2000, 0x849: 0x2000, 0x84a: 0x2000, 0x84b: 0x2000, - 0x850: 0x2000, 0x851: 0x2000, - 0x852: 0x2000, 0x853: 0x2000, 0x854: 0x2000, 0x855: 0x2000, 0x856: 0x2000, 0x857: 0x2000, - 0x858: 0x2000, 0x859: 0x2000, 0x85a: 0x2000, 0x85b: 0x2000, 0x85c: 0x2000, 0x85d: 0x2000, - 0x85e: 0x2000, 0x85f: 0x2000, 0x860: 0x2000, 0x861: 0x2000, 0x862: 0x2000, 0x863: 0x2000, - 0x864: 0x2000, 0x865: 0x2000, 0x866: 0x2000, 0x867: 0x2000, 0x868: 0x2000, 0x869: 0x2000, - 0x86a: 0x2000, 0x86b: 0x2000, 0x86c: 0x2000, 0x86d: 0x2000, 0x86e: 0x2000, 0x86f: 0x2000, - 0x870: 0x2000, 0x871: 0x2000, 0x872: 0x2000, 0x873: 0x2000, - // Block 0x22, offset 0x880 - 0x880: 0x2000, 0x881: 0x2000, 0x882: 0x2000, 0x883: 0x2000, 0x884: 0x2000, 0x885: 0x2000, - 0x886: 0x2000, 0x887: 0x2000, 0x888: 0x2000, 0x889: 0x2000, 0x88a: 0x2000, 0x88b: 0x2000, - 0x88c: 0x2000, 0x88d: 0x2000, 0x88e: 0x2000, 0x88f: 0x2000, - 0x892: 0x2000, 0x893: 0x2000, 0x894: 0x2000, 0x895: 0x2000, - 0x8a0: 0x200e, 0x8a1: 0x2000, 0x8a3: 0x2000, - 0x8a4: 0x2000, 0x8a5: 0x2000, 0x8a6: 0x2000, 0x8a7: 0x2000, 0x8a8: 0x2000, 0x8a9: 0x2000, - 0x8b2: 0x2000, 0x8b3: 0x2000, - 0x8b6: 0x2000, 0x8b7: 0x2000, - 0x8bc: 0x2000, 0x8bd: 0x2000, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x2000, 0x8c1: 0x2000, - 0x8c6: 0x2000, 0x8c7: 0x2000, 0x8c8: 0x2000, 0x8cb: 0x200f, - 0x8ce: 0x2000, 0x8cf: 0x2000, 0x8d0: 0x2000, 0x8d1: 0x2000, - 0x8e2: 0x2000, 0x8e3: 0x2000, - 0x8e4: 0x2000, 0x8e5: 0x2000, - 0x8ef: 0x2000, - 0x8fd: 0x4000, 0x8fe: 0x4000, - // Block 0x24, offset 0x900 - 0x905: 0x2000, - 0x906: 0x2000, 0x909: 0x2000, - 0x90e: 0x2000, 0x90f: 0x2000, - 0x914: 0x4000, 0x915: 0x4000, - 0x91c: 0x2000, - 0x91e: 0x2000, - // Block 0x25, offset 0x940 - 0x940: 0x2000, 0x942: 0x2000, - 0x948: 0x4000, 0x949: 0x4000, 0x94a: 0x4000, 0x94b: 0x4000, - 0x94c: 0x4000, 0x94d: 0x4000, 0x94e: 0x4000, 0x94f: 0x4000, 0x950: 0x4000, 0x951: 0x4000, - 0x952: 0x4000, 0x953: 0x4000, - 0x960: 0x2000, 0x961: 0x2000, 0x963: 0x2000, - 0x964: 0x2000, 0x965: 0x2000, 0x967: 0x2000, 0x968: 0x2000, 0x969: 0x2000, - 0x96a: 0x2000, 0x96c: 0x2000, 0x96d: 0x2000, 0x96f: 0x2000, - 0x97f: 0x4000, - // Block 0x26, offset 0x980 - 0x993: 0x4000, - 0x99e: 0x2000, 0x99f: 0x2000, 0x9a1: 0x4000, - 0x9aa: 0x4000, 0x9ab: 0x4000, - 0x9bd: 0x4000, 0x9be: 0x4000, 0x9bf: 0x2000, - // Block 0x27, offset 0x9c0 - 0x9c4: 0x4000, 0x9c5: 0x4000, - 0x9c6: 0x2000, 0x9c7: 0x2000, 0x9c8: 0x2000, 0x9c9: 0x2000, 0x9ca: 0x2000, 0x9cb: 0x2000, - 0x9cc: 0x2000, 0x9cd: 0x2000, 0x9ce: 0x4000, 0x9cf: 0x2000, 0x9d0: 0x2000, 0x9d1: 0x2000, - 0x9d2: 0x2000, 0x9d3: 0x2000, 0x9d4: 0x4000, 0x9d5: 0x2000, 0x9d6: 0x2000, 0x9d7: 0x2000, - 0x9d8: 0x2000, 0x9d9: 0x2000, 0x9da: 0x2000, 0x9db: 0x2000, 0x9dc: 0x2000, 0x9dd: 0x2000, - 0x9de: 0x2000, 0x9df: 0x2000, 0x9e0: 0x2000, 0x9e1: 0x2000, 0x9e3: 0x2000, - 0x9e8: 0x2000, 0x9e9: 0x2000, - 0x9ea: 0x4000, 0x9eb: 0x2000, 0x9ec: 0x2000, 0x9ed: 0x2000, 0x9ee: 0x2000, 0x9ef: 0x2000, - 0x9f0: 0x2000, 0x9f1: 0x2000, 0x9f2: 0x4000, 0x9f3: 0x4000, 0x9f4: 0x2000, 0x9f5: 0x4000, - 0x9f6: 0x2000, 0x9f7: 0x2000, 0x9f8: 0x2000, 0x9f9: 0x2000, 0x9fa: 0x4000, 0x9fb: 0x2000, - 0x9fc: 0x2000, 0x9fd: 0x4000, 0x9fe: 0x2000, 0x9ff: 0x2000, - // Block 0x28, offset 0xa00 - 0xa05: 0x4000, - 0xa0a: 0x4000, 0xa0b: 0x4000, - 0xa28: 0x4000, - 0xa3d: 0x2000, - // Block 0x29, offset 0xa40 - 0xa4c: 0x4000, 0xa4e: 0x4000, - 0xa53: 0x4000, 0xa54: 0x4000, 0xa55: 0x4000, 0xa57: 0x4000, - 0xa76: 0x2000, 0xa77: 0x2000, 0xa78: 0x2000, 0xa79: 0x2000, 0xa7a: 0x2000, 0xa7b: 0x2000, - 0xa7c: 0x2000, 0xa7d: 0x2000, 0xa7e: 0x2000, 0xa7f: 0x2000, - // Block 0x2a, offset 0xa80 - 0xa95: 0x4000, 0xa96: 0x4000, 0xa97: 0x4000, - 0xab0: 0x4000, - 0xabf: 0x4000, - // Block 0x2b, offset 0xac0 - 0xae6: 0x6000, 0xae7: 0x6000, 0xae8: 0x6000, 0xae9: 0x6000, - 0xaea: 0x6000, 0xaeb: 0x6000, 0xaec: 0x6000, 0xaed: 0x6000, - // Block 0x2c, offset 0xb00 - 0xb05: 0x6010, - 0xb06: 0x6011, - // Block 0x2d, offset 0xb40 - 0xb5b: 0x4000, 0xb5c: 0x4000, - // Block 0x2e, offset 0xb80 - 0xb90: 0x4000, - 0xb95: 0x4000, 0xb96: 0x2000, 0xb97: 0x2000, - 0xb98: 0x2000, 0xb99: 0x2000, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x4000, 0xbc1: 0x4000, 0xbc2: 0x4000, 0xbc3: 0x4000, 0xbc4: 0x4000, 0xbc5: 0x4000, - 0xbc6: 0x4000, 0xbc7: 0x4000, 0xbc8: 0x4000, 0xbc9: 0x4000, 0xbca: 0x4000, 0xbcb: 0x4000, - 0xbcc: 0x4000, 0xbcd: 0x4000, 0xbce: 0x4000, 0xbcf: 0x4000, 0xbd0: 0x4000, 0xbd1: 0x4000, - 0xbd2: 0x4000, 0xbd3: 0x4000, 0xbd4: 0x4000, 0xbd5: 0x4000, 0xbd6: 0x4000, 0xbd7: 0x4000, - 0xbd8: 0x4000, 0xbd9: 0x4000, 0xbdb: 0x4000, 0xbdc: 0x4000, 0xbdd: 0x4000, - 0xbde: 0x4000, 0xbdf: 0x4000, 0xbe0: 0x4000, 0xbe1: 0x4000, 0xbe2: 0x4000, 0xbe3: 0x4000, - 0xbe4: 0x4000, 0xbe5: 0x4000, 0xbe6: 0x4000, 0xbe7: 0x4000, 0xbe8: 0x4000, 0xbe9: 0x4000, - 0xbea: 0x4000, 0xbeb: 0x4000, 0xbec: 0x4000, 0xbed: 0x4000, 0xbee: 0x4000, 0xbef: 0x4000, - 0xbf0: 0x4000, 0xbf1: 0x4000, 0xbf2: 0x4000, 0xbf3: 0x4000, 0xbf4: 0x4000, 0xbf5: 0x4000, - 0xbf6: 0x4000, 0xbf7: 0x4000, 0xbf8: 0x4000, 0xbf9: 0x4000, 0xbfa: 0x4000, 0xbfb: 0x4000, - 0xbfc: 0x4000, 0xbfd: 0x4000, 0xbfe: 0x4000, 0xbff: 0x4000, - // Block 0x30, offset 0xc00 - 0xc00: 0x4000, 0xc01: 0x4000, 0xc02: 0x4000, 0xc03: 0x4000, 0xc04: 0x4000, 0xc05: 0x4000, - 0xc06: 0x4000, 0xc07: 0x4000, 0xc08: 0x4000, 0xc09: 0x4000, 0xc0a: 0x4000, 0xc0b: 0x4000, - 0xc0c: 0x4000, 0xc0d: 0x4000, 0xc0e: 0x4000, 0xc0f: 0x4000, 0xc10: 0x4000, 0xc11: 0x4000, - 0xc12: 0x4000, 0xc13: 0x4000, 0xc14: 0x4000, 0xc15: 0x4000, 0xc16: 0x4000, 0xc17: 0x4000, - 0xc18: 0x4000, 0xc19: 0x4000, 0xc1a: 0x4000, 0xc1b: 0x4000, 0xc1c: 0x4000, 0xc1d: 0x4000, - 0xc1e: 0x4000, 0xc1f: 0x4000, 0xc20: 0x4000, 0xc21: 0x4000, 0xc22: 0x4000, 0xc23: 0x4000, - 0xc24: 0x4000, 0xc25: 0x4000, 0xc26: 0x4000, 0xc27: 0x4000, 0xc28: 0x4000, 0xc29: 0x4000, - 0xc2a: 0x4000, 0xc2b: 0x4000, 0xc2c: 0x4000, 0xc2d: 0x4000, 0xc2e: 0x4000, 0xc2f: 0x4000, - 0xc30: 0x4000, 0xc31: 0x4000, 0xc32: 0x4000, 0xc33: 0x4000, - // Block 0x31, offset 0xc40 - 0xc40: 0x4000, 0xc41: 0x4000, 0xc42: 0x4000, 0xc43: 0x4000, 0xc44: 0x4000, 0xc45: 0x4000, - 0xc46: 0x4000, 0xc47: 0x4000, 0xc48: 0x4000, 0xc49: 0x4000, 0xc4a: 0x4000, 0xc4b: 0x4000, - 0xc4c: 0x4000, 0xc4d: 0x4000, 0xc4e: 0x4000, 0xc4f: 0x4000, 0xc50: 0x4000, 0xc51: 0x4000, - 0xc52: 0x4000, 0xc53: 0x4000, 0xc54: 0x4000, 0xc55: 0x4000, - 0xc70: 0x4000, 0xc71: 0x4000, 0xc72: 0x4000, 0xc73: 0x4000, 0xc74: 0x4000, 0xc75: 0x4000, - 0xc76: 0x4000, 0xc77: 0x4000, 0xc78: 0x4000, 0xc79: 0x4000, 0xc7a: 0x4000, 0xc7b: 0x4000, - // Block 0x32, offset 0xc80 - 0xc80: 0x9012, 0xc81: 0x4013, 0xc82: 0x4014, 0xc83: 0x4000, 0xc84: 0x4000, 0xc85: 0x4000, - 0xc86: 0x4000, 0xc87: 0x4000, 0xc88: 0x4000, 0xc89: 0x4000, 0xc8a: 0x4000, 0xc8b: 0x4000, - 0xc8c: 0x4015, 0xc8d: 0x4015, 0xc8e: 0x4000, 0xc8f: 0x4000, 0xc90: 0x4000, 0xc91: 0x4000, - 0xc92: 0x4000, 0xc93: 0x4000, 0xc94: 0x4000, 0xc95: 0x4000, 0xc96: 0x4000, 0xc97: 0x4000, - 0xc98: 0x4000, 0xc99: 0x4000, 0xc9a: 0x4000, 0xc9b: 0x4000, 0xc9c: 0x4000, 0xc9d: 0x4000, - 0xc9e: 0x4000, 0xc9f: 0x4000, 0xca0: 0x4000, 0xca1: 0x4000, 0xca2: 0x4000, 0xca3: 0x4000, - 0xca4: 0x4000, 0xca5: 0x4000, 0xca6: 0x4000, 0xca7: 0x4000, 0xca8: 0x4000, 0xca9: 0x4000, - 0xcaa: 0x4000, 0xcab: 0x4000, 0xcac: 0x4000, 0xcad: 0x4000, 0xcae: 0x4000, 0xcaf: 0x4000, - 0xcb0: 0x4000, 0xcb1: 0x4000, 0xcb2: 0x4000, 0xcb3: 0x4000, 0xcb4: 0x4000, 0xcb5: 0x4000, - 0xcb6: 0x4000, 0xcb7: 0x4000, 0xcb8: 0x4000, 0xcb9: 0x4000, 0xcba: 0x4000, 0xcbb: 0x4000, - 0xcbc: 0x4000, 0xcbd: 0x4000, 0xcbe: 0x4000, - // Block 0x33, offset 0xcc0 - 0xcc1: 0x4000, 0xcc2: 0x4000, 0xcc3: 0x4000, 0xcc4: 0x4000, 0xcc5: 0x4000, - 0xcc6: 0x4000, 0xcc7: 0x4000, 0xcc8: 0x4000, 0xcc9: 0x4000, 0xcca: 0x4000, 0xccb: 0x4000, - 0xccc: 0x4000, 0xccd: 0x4000, 0xcce: 0x4000, 0xccf: 0x4000, 0xcd0: 0x4000, 0xcd1: 0x4000, - 0xcd2: 0x4000, 0xcd3: 0x4000, 0xcd4: 0x4000, 0xcd5: 0x4000, 0xcd6: 0x4000, 0xcd7: 0x4000, - 0xcd8: 0x4000, 0xcd9: 0x4000, 0xcda: 0x4000, 0xcdb: 0x4000, 0xcdc: 0x4000, 0xcdd: 0x4000, - 0xcde: 0x4000, 0xcdf: 0x4000, 0xce0: 0x4000, 0xce1: 0x4000, 0xce2: 0x4000, 0xce3: 0x4000, - 0xce4: 0x4000, 0xce5: 0x4000, 0xce6: 0x4000, 0xce7: 0x4000, 0xce8: 0x4000, 0xce9: 0x4000, - 0xcea: 0x4000, 0xceb: 0x4000, 0xcec: 0x4000, 0xced: 0x4000, 0xcee: 0x4000, 0xcef: 0x4000, - 0xcf0: 0x4000, 0xcf1: 0x4000, 0xcf2: 0x4000, 0xcf3: 0x4000, 0xcf4: 0x4000, 0xcf5: 0x4000, - 0xcf6: 0x4000, 0xcf7: 0x4000, 0xcf8: 0x4000, 0xcf9: 0x4000, 0xcfa: 0x4000, 0xcfb: 0x4000, - 0xcfc: 0x4000, 0xcfd: 0x4000, 0xcfe: 0x4000, 0xcff: 0x4000, - // Block 0x34, offset 0xd00 - 0xd00: 0x4000, 0xd01: 0x4000, 0xd02: 0x4000, 0xd03: 0x4000, 0xd04: 0x4000, 0xd05: 0x4000, - 0xd06: 0x4000, 0xd07: 0x4000, 0xd08: 0x4000, 0xd09: 0x4000, 0xd0a: 0x4000, 0xd0b: 0x4000, - 0xd0c: 0x4000, 0xd0d: 0x4000, 0xd0e: 0x4000, 0xd0f: 0x4000, 0xd10: 0x4000, 0xd11: 0x4000, - 0xd12: 0x4000, 0xd13: 0x4000, 0xd14: 0x4000, 0xd15: 0x4000, 0xd16: 0x4000, - 0xd19: 0x4016, 0xd1a: 0x4017, 0xd1b: 0x4000, 0xd1c: 0x4000, 0xd1d: 0x4000, - 0xd1e: 0x4000, 0xd1f: 0x4000, 0xd20: 0x4000, 0xd21: 0x4018, 0xd22: 0x4019, 0xd23: 0x401a, - 0xd24: 0x401b, 0xd25: 0x401c, 0xd26: 0x401d, 0xd27: 0x401e, 0xd28: 0x401f, 0xd29: 0x4020, - 0xd2a: 0x4021, 0xd2b: 0x4022, 0xd2c: 0x4000, 0xd2d: 0x4010, 0xd2e: 0x4000, 0xd2f: 0x4023, - 0xd30: 0x4000, 0xd31: 0x4024, 0xd32: 0x4000, 0xd33: 0x4025, 0xd34: 0x4000, 0xd35: 0x4026, - 0xd36: 0x4000, 0xd37: 0x401a, 0xd38: 0x4000, 0xd39: 0x4027, 0xd3a: 0x4000, 0xd3b: 0x4028, - 0xd3c: 0x4000, 0xd3d: 0x4020, 0xd3e: 0x4000, 0xd3f: 0x4029, - // Block 0x35, offset 0xd40 - 0xd40: 0x4000, 0xd41: 0x402a, 0xd42: 0x4000, 0xd43: 0x402b, 0xd44: 0x402c, 0xd45: 0x4000, - 0xd46: 0x4017, 0xd47: 0x4000, 0xd48: 0x402d, 0xd49: 0x4000, 0xd4a: 0x402e, 0xd4b: 0x402f, - 0xd4c: 0x4030, 0xd4d: 0x4017, 0xd4e: 0x4016, 0xd4f: 0x4017, 0xd50: 0x4000, 0xd51: 0x4000, - 0xd52: 0x4031, 0xd53: 0x4000, 0xd54: 0x4000, 0xd55: 0x4031, 0xd56: 0x4000, 0xd57: 0x4000, - 0xd58: 0x4032, 0xd59: 0x4000, 0xd5a: 0x4000, 0xd5b: 0x4032, 0xd5c: 0x4000, 0xd5d: 0x4000, - 0xd5e: 0x4033, 0xd5f: 0x402e, 0xd60: 0x4034, 0xd61: 0x4035, 0xd62: 0x4034, 0xd63: 0x4036, - 0xd64: 0x4037, 0xd65: 0x4024, 0xd66: 0x4035, 0xd67: 0x4025, 0xd68: 0x4038, 0xd69: 0x4038, - 0xd6a: 0x4039, 0xd6b: 0x4039, 0xd6c: 0x403a, 0xd6d: 0x403a, 0xd6e: 0x4000, 0xd6f: 0x4035, - 0xd70: 0x4000, 0xd71: 0x4000, 0xd72: 0x403b, 0xd73: 0x403c, 0xd74: 0x4000, 0xd75: 0x4000, - 0xd76: 0x4000, 0xd77: 0x4000, 0xd78: 0x4000, 0xd79: 0x4000, 0xd7a: 0x4000, 0xd7b: 0x403d, - 0xd7c: 0x401c, 0xd7d: 0x4000, 0xd7e: 0x4000, 0xd7f: 0x4000, - // Block 0x36, offset 0xd80 - 0xd85: 0x4000, - 0xd86: 0x4000, 0xd87: 0x4000, 0xd88: 0x4000, 0xd89: 0x4000, 0xd8a: 0x4000, 0xd8b: 0x4000, - 0xd8c: 0x4000, 0xd8d: 0x4000, 0xd8e: 0x4000, 0xd8f: 0x4000, 0xd90: 0x4000, 0xd91: 0x4000, - 0xd92: 0x4000, 0xd93: 0x4000, 0xd94: 0x4000, 0xd95: 0x4000, 0xd96: 0x4000, 0xd97: 0x4000, - 0xd98: 0x4000, 0xd99: 0x4000, 0xd9a: 0x4000, 0xd9b: 0x4000, 0xd9c: 0x4000, 0xd9d: 0x4000, - 0xd9e: 0x4000, 0xd9f: 0x4000, 0xda0: 0x4000, 0xda1: 0x4000, 0xda2: 0x4000, 0xda3: 0x4000, - 0xda4: 0x4000, 0xda5: 0x4000, 0xda6: 0x4000, 0xda7: 0x4000, 0xda8: 0x4000, 0xda9: 0x4000, - 0xdaa: 0x4000, 0xdab: 0x4000, 0xdac: 0x4000, 0xdad: 0x4000, 0xdae: 0x4000, 0xdaf: 0x4000, - 0xdb1: 0x403e, 0xdb2: 0x403e, 0xdb3: 0x403e, 0xdb4: 0x403e, 0xdb5: 0x403e, - 0xdb6: 0x403e, 0xdb7: 0x403e, 0xdb8: 0x403e, 0xdb9: 0x403e, 0xdba: 0x403e, 0xdbb: 0x403e, - 0xdbc: 0x403e, 0xdbd: 0x403e, 0xdbe: 0x403e, 0xdbf: 0x403e, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x4037, 0xdc1: 0x4037, 0xdc2: 0x4037, 0xdc3: 0x4037, 0xdc4: 0x4037, 0xdc5: 0x4037, - 0xdc6: 0x4037, 0xdc7: 0x4037, 0xdc8: 0x4037, 0xdc9: 0x4037, 0xdca: 0x4037, 0xdcb: 0x4037, - 0xdcc: 0x4037, 0xdcd: 0x4037, 0xdce: 0x4037, 0xdcf: 0x400e, 0xdd0: 0x403f, 0xdd1: 0x4040, - 0xdd2: 0x4041, 0xdd3: 0x4040, 0xdd4: 0x403f, 0xdd5: 0x4042, 0xdd6: 0x4043, 0xdd7: 0x4044, - 0xdd8: 0x4040, 0xdd9: 0x4041, 0xdda: 0x4040, 0xddb: 0x4045, 0xddc: 0x4009, 0xddd: 0x4045, - 0xdde: 0x4046, 0xddf: 0x4045, 0xde0: 0x4047, 0xde1: 0x400b, 0xde2: 0x400a, 0xde3: 0x400c, - 0xde4: 0x4048, 0xde5: 0x4000, 0xde6: 0x4000, 0xde7: 0x4000, 0xde8: 0x4000, 0xde9: 0x4000, - 0xdea: 0x4000, 0xdeb: 0x4000, 0xdec: 0x4000, 0xded: 0x4000, 0xdee: 0x4000, 0xdef: 0x4000, - 0xdf0: 0x4000, 0xdf1: 0x4000, 0xdf2: 0x4000, 0xdf3: 0x4000, 0xdf4: 0x4000, 0xdf5: 0x4000, - 0xdf6: 0x4000, 0xdf7: 0x4000, 0xdf8: 0x4000, 0xdf9: 0x4000, 0xdfa: 0x4000, 0xdfb: 0x4000, - 0xdfc: 0x4000, 0xdfd: 0x4000, 0xdfe: 0x4000, 0xdff: 0x4000, - // Block 0x38, offset 0xe00 - 0xe00: 0x4000, 0xe01: 0x4000, 0xe02: 0x4000, 0xe03: 0x4000, 0xe04: 0x4000, 0xe05: 0x4000, - 0xe06: 0x4000, 0xe07: 0x4000, 0xe08: 0x4000, 0xe09: 0x4000, 0xe0a: 0x4000, 0xe0b: 0x4000, - 0xe0c: 0x4000, 0xe0d: 0x4000, 0xe0e: 0x4000, 0xe10: 0x4000, 0xe11: 0x4000, - 0xe12: 0x4000, 0xe13: 0x4000, 0xe14: 0x4000, 0xe15: 0x4000, 0xe16: 0x4000, 0xe17: 0x4000, - 0xe18: 0x4000, 0xe19: 0x4000, 0xe1a: 0x4000, 0xe1b: 0x4000, 0xe1c: 0x4000, 0xe1d: 0x4000, - 0xe1e: 0x4000, 0xe1f: 0x4000, 0xe20: 0x4000, 0xe21: 0x4000, 0xe22: 0x4000, 0xe23: 0x4000, - 0xe24: 0x4000, 0xe25: 0x4000, 0xe26: 0x4000, 0xe27: 0x4000, 0xe28: 0x4000, 0xe29: 0x4000, - 0xe2a: 0x4000, 0xe2b: 0x4000, 0xe2c: 0x4000, 0xe2d: 0x4000, 0xe2e: 0x4000, 0xe2f: 0x4000, - 0xe30: 0x4000, 0xe31: 0x4000, 0xe32: 0x4000, 0xe33: 0x4000, 0xe34: 0x4000, 0xe35: 0x4000, - 0xe36: 0x4000, 0xe37: 0x4000, 0xe38: 0x4000, 0xe39: 0x4000, 0xe3a: 0x4000, - // Block 0x39, offset 0xe40 - 0xe40: 0x4000, 0xe41: 0x4000, 0xe42: 0x4000, 0xe43: 0x4000, 0xe44: 0x4000, 0xe45: 0x4000, - 0xe46: 0x4000, 0xe47: 0x4000, 0xe48: 0x4000, 0xe49: 0x4000, 0xe4a: 0x4000, 0xe4b: 0x4000, - 0xe4c: 0x4000, 0xe4d: 0x4000, 0xe4e: 0x4000, 0xe4f: 0x4000, 0xe50: 0x4000, 0xe51: 0x4000, - 0xe52: 0x4000, 0xe53: 0x4000, 0xe54: 0x4000, 0xe55: 0x4000, 0xe56: 0x4000, 0xe57: 0x4000, - 0xe58: 0x4000, 0xe59: 0x4000, 0xe5a: 0x4000, 0xe5b: 0x4000, 0xe5c: 0x4000, 0xe5d: 0x4000, - 0xe5e: 0x4000, 0xe5f: 0x4000, 0xe60: 0x4000, 0xe61: 0x4000, 0xe62: 0x4000, 0xe63: 0x4000, - 0xe70: 0x4000, 0xe71: 0x4000, 0xe72: 0x4000, 0xe73: 0x4000, 0xe74: 0x4000, 0xe75: 0x4000, - 0xe76: 0x4000, 0xe77: 0x4000, 0xe78: 0x4000, 0xe79: 0x4000, 0xe7a: 0x4000, 0xe7b: 0x4000, - 0xe7c: 0x4000, 0xe7d: 0x4000, 0xe7e: 0x4000, 0xe7f: 0x4000, - // Block 0x3a, offset 0xe80 - 0xe80: 0x4000, 0xe81: 0x4000, 0xe82: 0x4000, 0xe83: 0x4000, 0xe84: 0x4000, 0xe85: 0x4000, - 0xe86: 0x4000, 0xe87: 0x4000, 0xe88: 0x4000, 0xe89: 0x4000, 0xe8a: 0x4000, 0xe8b: 0x4000, - 0xe8c: 0x4000, 0xe8d: 0x4000, 0xe8e: 0x4000, 0xe8f: 0x4000, 0xe90: 0x4000, 0xe91: 0x4000, - 0xe92: 0x4000, 0xe93: 0x4000, 0xe94: 0x4000, 0xe95: 0x4000, 0xe96: 0x4000, 0xe97: 0x4000, - 0xe98: 0x4000, 0xe99: 0x4000, 0xe9a: 0x4000, 0xe9b: 0x4000, 0xe9c: 0x4000, 0xe9d: 0x4000, - 0xe9e: 0x4000, 0xea0: 0x4000, 0xea1: 0x4000, 0xea2: 0x4000, 0xea3: 0x4000, - 0xea4: 0x4000, 0xea5: 0x4000, 0xea6: 0x4000, 0xea7: 0x4000, 0xea8: 0x4000, 0xea9: 0x4000, - 0xeaa: 0x4000, 0xeab: 0x4000, 0xeac: 0x4000, 0xead: 0x4000, 0xeae: 0x4000, 0xeaf: 0x4000, - 0xeb0: 0x4000, 0xeb1: 0x4000, 0xeb2: 0x4000, 0xeb3: 0x4000, 0xeb4: 0x4000, 0xeb5: 0x4000, - 0xeb6: 0x4000, 0xeb7: 0x4000, 0xeb8: 0x4000, 0xeb9: 0x4000, 0xeba: 0x4000, 0xebb: 0x4000, - 0xebc: 0x4000, 0xebd: 0x4000, 0xebe: 0x4000, 0xebf: 0x4000, - // Block 0x3b, offset 0xec0 - 0xec0: 0x4000, 0xec1: 0x4000, 0xec2: 0x4000, 0xec3: 0x4000, 0xec4: 0x4000, 0xec5: 0x4000, - 0xec6: 0x4000, 0xec7: 0x4000, 0xec8: 0x2000, 0xec9: 0x2000, 0xeca: 0x2000, 0xecb: 0x2000, - 0xecc: 0x2000, 0xecd: 0x2000, 0xece: 0x2000, 0xecf: 0x2000, 0xed0: 0x4000, 0xed1: 0x4000, - 0xed2: 0x4000, 0xed3: 0x4000, 0xed4: 0x4000, 0xed5: 0x4000, 0xed6: 0x4000, 0xed7: 0x4000, - 0xed8: 0x4000, 0xed9: 0x4000, 0xeda: 0x4000, 0xedb: 0x4000, 0xedc: 0x4000, 0xedd: 0x4000, - 0xede: 0x4000, 0xedf: 0x4000, 0xee0: 0x4000, 0xee1: 0x4000, 0xee2: 0x4000, 0xee3: 0x4000, - 0xee4: 0x4000, 0xee5: 0x4000, 0xee6: 0x4000, 0xee7: 0x4000, 0xee8: 0x4000, 0xee9: 0x4000, - 0xeea: 0x4000, 0xeeb: 0x4000, 0xeec: 0x4000, 0xeed: 0x4000, 0xeee: 0x4000, 0xeef: 0x4000, - 0xef0: 0x4000, 0xef1: 0x4000, 0xef2: 0x4000, 0xef3: 0x4000, 0xef4: 0x4000, 0xef5: 0x4000, - 0xef6: 0x4000, 0xef7: 0x4000, 0xef8: 0x4000, 0xef9: 0x4000, 0xefa: 0x4000, 0xefb: 0x4000, - 0xefc: 0x4000, 0xefd: 0x4000, 0xefe: 0x4000, 0xeff: 0x4000, - // Block 0x3c, offset 0xf00 - 0xf00: 0x4000, 0xf01: 0x4000, 0xf02: 0x4000, 0xf03: 0x4000, 0xf04: 0x4000, 0xf05: 0x4000, - 0xf06: 0x4000, 0xf07: 0x4000, 0xf08: 0x4000, 0xf09: 0x4000, 0xf0a: 0x4000, 0xf0b: 0x4000, - 0xf0c: 0x4000, 0xf0d: 0x4000, 0xf0e: 0x4000, 0xf0f: 0x4000, 0xf10: 0x4000, 0xf11: 0x4000, - 0xf12: 0x4000, 0xf13: 0x4000, 0xf14: 0x4000, 0xf15: 0x4000, 0xf16: 0x4000, 0xf17: 0x4000, - 0xf18: 0x4000, 0xf19: 0x4000, 0xf1a: 0x4000, 0xf1b: 0x4000, 0xf1c: 0x4000, 0xf1d: 0x4000, - 0xf1e: 0x4000, 0xf1f: 0x4000, 0xf20: 0x4000, 0xf21: 0x4000, 0xf22: 0x4000, 0xf23: 0x4000, - 0xf24: 0x4000, 0xf25: 0x4000, 0xf26: 0x4000, 0xf27: 0x4000, 0xf28: 0x4000, 0xf29: 0x4000, - 0xf2a: 0x4000, 0xf2b: 0x4000, 0xf2c: 0x4000, 0xf2d: 0x4000, 0xf2e: 0x4000, 0xf2f: 0x4000, - 0xf30: 0x4000, 0xf31: 0x4000, 0xf32: 0x4000, 0xf33: 0x4000, 0xf34: 0x4000, 0xf35: 0x4000, - 0xf36: 0x4000, 0xf37: 0x4000, 0xf38: 0x4000, 0xf39: 0x4000, 0xf3a: 0x4000, 0xf3b: 0x4000, - 0xf3c: 0x4000, 0xf3d: 0x4000, 0xf3e: 0x4000, - // Block 0x3d, offset 0xf40 - 0xf40: 0x4000, 0xf41: 0x4000, 0xf42: 0x4000, 0xf43: 0x4000, 0xf44: 0x4000, 0xf45: 0x4000, - 0xf46: 0x4000, 0xf47: 0x4000, 0xf48: 0x4000, 0xf49: 0x4000, 0xf4a: 0x4000, 0xf4b: 0x4000, - 0xf4c: 0x4000, 0xf50: 0x4000, 0xf51: 0x4000, - 0xf52: 0x4000, 0xf53: 0x4000, 0xf54: 0x4000, 0xf55: 0x4000, 0xf56: 0x4000, 0xf57: 0x4000, - 0xf58: 0x4000, 0xf59: 0x4000, 0xf5a: 0x4000, 0xf5b: 0x4000, 0xf5c: 0x4000, 0xf5d: 0x4000, - 0xf5e: 0x4000, 0xf5f: 0x4000, 0xf60: 0x4000, 0xf61: 0x4000, 0xf62: 0x4000, 0xf63: 0x4000, - 0xf64: 0x4000, 0xf65: 0x4000, 0xf66: 0x4000, 0xf67: 0x4000, 0xf68: 0x4000, 0xf69: 0x4000, - 0xf6a: 0x4000, 0xf6b: 0x4000, 0xf6c: 0x4000, 0xf6d: 0x4000, 0xf6e: 0x4000, 0xf6f: 0x4000, - 0xf70: 0x4000, 0xf71: 0x4000, 0xf72: 0x4000, 0xf73: 0x4000, 0xf74: 0x4000, 0xf75: 0x4000, - 0xf76: 0x4000, 0xf77: 0x4000, 0xf78: 0x4000, 0xf79: 0x4000, 0xf7a: 0x4000, 0xf7b: 0x4000, - 0xf7c: 0x4000, 0xf7d: 0x4000, 0xf7e: 0x4000, 0xf7f: 0x4000, - // Block 0x3e, offset 0xf80 - 0xf80: 0x4000, 0xf81: 0x4000, 0xf82: 0x4000, 0xf83: 0x4000, 0xf84: 0x4000, 0xf85: 0x4000, - 0xf86: 0x4000, - // Block 0x3f, offset 0xfc0 - 0xfe0: 0x4000, 0xfe1: 0x4000, 0xfe2: 0x4000, 0xfe3: 0x4000, - 0xfe4: 0x4000, 0xfe5: 0x4000, 0xfe6: 0x4000, 0xfe7: 0x4000, 0xfe8: 0x4000, 0xfe9: 0x4000, - 0xfea: 0x4000, 0xfeb: 0x4000, 0xfec: 0x4000, 0xfed: 0x4000, 0xfee: 0x4000, 0xfef: 0x4000, - 0xff0: 0x4000, 0xff1: 0x4000, 0xff2: 0x4000, 0xff3: 0x4000, 0xff4: 0x4000, 0xff5: 0x4000, - 0xff6: 0x4000, 0xff7: 0x4000, 0xff8: 0x4000, 0xff9: 0x4000, 0xffa: 0x4000, 0xffb: 0x4000, - 0xffc: 0x4000, - // Block 0x40, offset 0x1000 - 0x1000: 0x4000, 0x1001: 0x4000, 0x1002: 0x4000, 0x1003: 0x4000, 0x1004: 0x4000, 0x1005: 0x4000, - 0x1006: 0x4000, 0x1007: 0x4000, 0x1008: 0x4000, 0x1009: 0x4000, 0x100a: 0x4000, 0x100b: 0x4000, - 0x100c: 0x4000, 0x100d: 0x4000, 0x100e: 0x4000, 0x100f: 0x4000, 0x1010: 0x4000, 0x1011: 0x4000, - 0x1012: 0x4000, 0x1013: 0x4000, 0x1014: 0x4000, 0x1015: 0x4000, 0x1016: 0x4000, 0x1017: 0x4000, - 0x1018: 0x4000, 0x1019: 0x4000, 0x101a: 0x4000, 0x101b: 0x4000, 0x101c: 0x4000, 0x101d: 0x4000, - 0x101e: 0x4000, 0x101f: 0x4000, 0x1020: 0x4000, 0x1021: 0x4000, 0x1022: 0x4000, 0x1023: 0x4000, - // Block 0x41, offset 0x1040 - 0x1040: 0x2000, 0x1041: 0x2000, 0x1042: 0x2000, 0x1043: 0x2000, 0x1044: 0x2000, 0x1045: 0x2000, - 0x1046: 0x2000, 0x1047: 0x2000, 0x1048: 0x2000, 0x1049: 0x2000, 0x104a: 0x2000, 0x104b: 0x2000, - 0x104c: 0x2000, 0x104d: 0x2000, 0x104e: 0x2000, 0x104f: 0x2000, 0x1050: 0x4000, 0x1051: 0x4000, - 0x1052: 0x4000, 0x1053: 0x4000, 0x1054: 0x4000, 0x1055: 0x4000, 0x1056: 0x4000, 0x1057: 0x4000, - 0x1058: 0x4000, 0x1059: 0x4000, - 0x1070: 0x4000, 0x1071: 0x4000, 0x1072: 0x4000, 0x1073: 0x4000, 0x1074: 0x4000, 0x1075: 0x4000, - 0x1076: 0x4000, 0x1077: 0x4000, 0x1078: 0x4000, 0x1079: 0x4000, 0x107a: 0x4000, 0x107b: 0x4000, - 0x107c: 0x4000, 0x107d: 0x4000, 0x107e: 0x4000, 0x107f: 0x4000, - // Block 0x42, offset 0x1080 - 0x1080: 0x4000, 0x1081: 0x4000, 0x1082: 0x4000, 0x1083: 0x4000, 0x1084: 0x4000, 0x1085: 0x4000, - 0x1086: 0x4000, 0x1087: 0x4000, 0x1088: 0x4000, 0x1089: 0x4000, 0x108a: 0x4000, 0x108b: 0x4000, - 0x108c: 0x4000, 0x108d: 0x4000, 0x108e: 0x4000, 0x108f: 0x4000, 0x1090: 0x4000, 0x1091: 0x4000, - 0x1092: 0x4000, 0x1094: 0x4000, 0x1095: 0x4000, 0x1096: 0x4000, 0x1097: 0x4000, - 0x1098: 0x4000, 0x1099: 0x4000, 0x109a: 0x4000, 0x109b: 0x4000, 0x109c: 0x4000, 0x109d: 0x4000, - 0x109e: 0x4000, 0x109f: 0x4000, 0x10a0: 0x4000, 0x10a1: 0x4000, 0x10a2: 0x4000, 0x10a3: 0x4000, - 0x10a4: 0x4000, 0x10a5: 0x4000, 0x10a6: 0x4000, 0x10a8: 0x4000, 0x10a9: 0x4000, - 0x10aa: 0x4000, 0x10ab: 0x4000, - // Block 0x43, offset 0x10c0 - 0x10c1: 0x9012, 0x10c2: 0x9012, 0x10c3: 0x9012, 0x10c4: 0x9012, 0x10c5: 0x9012, - 0x10c6: 0x9012, 0x10c7: 0x9012, 0x10c8: 0x9012, 0x10c9: 0x9012, 0x10ca: 0x9012, 0x10cb: 0x9012, - 0x10cc: 0x9012, 0x10cd: 0x9012, 0x10ce: 0x9012, 0x10cf: 0x9012, 0x10d0: 0x9012, 0x10d1: 0x9012, - 0x10d2: 0x9012, 0x10d3: 0x9012, 0x10d4: 0x9012, 0x10d5: 0x9012, 0x10d6: 0x9012, 0x10d7: 0x9012, - 0x10d8: 0x9012, 0x10d9: 0x9012, 0x10da: 0x9012, 0x10db: 0x9012, 0x10dc: 0x9012, 0x10dd: 0x9012, - 0x10de: 0x9012, 0x10df: 0x9012, 0x10e0: 0x9049, 0x10e1: 0x9049, 0x10e2: 0x9049, 0x10e3: 0x9049, - 0x10e4: 0x9049, 0x10e5: 0x9049, 0x10e6: 0x9049, 0x10e7: 0x9049, 0x10e8: 0x9049, 0x10e9: 0x9049, - 0x10ea: 0x9049, 0x10eb: 0x9049, 0x10ec: 0x9049, 0x10ed: 0x9049, 0x10ee: 0x9049, 0x10ef: 0x9049, - 0x10f0: 0x9049, 0x10f1: 0x9049, 0x10f2: 0x9049, 0x10f3: 0x9049, 0x10f4: 0x9049, 0x10f5: 0x9049, - 0x10f6: 0x9049, 0x10f7: 0x9049, 0x10f8: 0x9049, 0x10f9: 0x9049, 0x10fa: 0x9049, 0x10fb: 0x9049, - 0x10fc: 0x9049, 0x10fd: 0x9049, 0x10fe: 0x9049, 0x10ff: 0x9049, - // Block 0x44, offset 0x1100 - 0x1100: 0x9049, 0x1101: 0x9049, 0x1102: 0x9049, 0x1103: 0x9049, 0x1104: 0x9049, 0x1105: 0x9049, - 0x1106: 0x9049, 0x1107: 0x9049, 0x1108: 0x9049, 0x1109: 0x9049, 0x110a: 0x9049, 0x110b: 0x9049, - 0x110c: 0x9049, 0x110d: 0x9049, 0x110e: 0x9049, 0x110f: 0x9049, 0x1110: 0x9049, 0x1111: 0x9049, - 0x1112: 0x9049, 0x1113: 0x9049, 0x1114: 0x9049, 0x1115: 0x9049, 0x1116: 0x9049, 0x1117: 0x9049, - 0x1118: 0x9049, 0x1119: 0x9049, 0x111a: 0x9049, 0x111b: 0x9049, 0x111c: 0x9049, 0x111d: 0x9049, - 0x111e: 0x9049, 0x111f: 0x904a, 0x1120: 0x904b, 0x1121: 0xb04c, 0x1122: 0xb04d, 0x1123: 0xb04d, - 0x1124: 0xb04e, 0x1125: 0xb04f, 0x1126: 0xb050, 0x1127: 0xb051, 0x1128: 0xb052, 0x1129: 0xb053, - 0x112a: 0xb054, 0x112b: 0xb055, 0x112c: 0xb056, 0x112d: 0xb057, 0x112e: 0xb058, 0x112f: 0xb059, - 0x1130: 0xb05a, 0x1131: 0xb05b, 0x1132: 0xb05c, 0x1133: 0xb05d, 0x1134: 0xb05e, 0x1135: 0xb05f, - 0x1136: 0xb060, 0x1137: 0xb061, 0x1138: 0xb062, 0x1139: 0xb063, 0x113a: 0xb064, 0x113b: 0xb065, - 0x113c: 0xb052, 0x113d: 0xb066, 0x113e: 0xb067, 0x113f: 0xb055, - // Block 0x45, offset 0x1140 - 0x1140: 0xb068, 0x1141: 0xb069, 0x1142: 0xb06a, 0x1143: 0xb06b, 0x1144: 0xb05a, 0x1145: 0xb056, - 0x1146: 0xb06c, 0x1147: 0xb06d, 0x1148: 0xb06b, 0x1149: 0xb06e, 0x114a: 0xb06b, 0x114b: 0xb06f, - 0x114c: 0xb06f, 0x114d: 0xb070, 0x114e: 0xb070, 0x114f: 0xb071, 0x1150: 0xb056, 0x1151: 0xb072, - 0x1152: 0xb073, 0x1153: 0xb072, 0x1154: 0xb074, 0x1155: 0xb073, 0x1156: 0xb075, 0x1157: 0xb075, - 0x1158: 0xb076, 0x1159: 0xb076, 0x115a: 0xb077, 0x115b: 0xb077, 0x115c: 0xb073, 0x115d: 0xb078, - 0x115e: 0xb079, 0x115f: 0xb067, 0x1160: 0xb07a, 0x1161: 0xb07b, 0x1162: 0xb07b, 0x1163: 0xb07b, - 0x1164: 0xb07b, 0x1165: 0xb07b, 0x1166: 0xb07b, 0x1167: 0xb07b, 0x1168: 0xb07b, 0x1169: 0xb07b, - 0x116a: 0xb07b, 0x116b: 0xb07b, 0x116c: 0xb07b, 0x116d: 0xb07b, 0x116e: 0xb07b, 0x116f: 0xb07b, - 0x1170: 0xb07c, 0x1171: 0xb07c, 0x1172: 0xb07c, 0x1173: 0xb07c, 0x1174: 0xb07c, 0x1175: 0xb07c, - 0x1176: 0xb07c, 0x1177: 0xb07c, 0x1178: 0xb07c, 0x1179: 0xb07c, 0x117a: 0xb07c, 0x117b: 0xb07c, - 0x117c: 0xb07c, 0x117d: 0xb07c, 0x117e: 0xb07c, - // Block 0x46, offset 0x1180 - 0x1182: 0xb07d, 0x1183: 0xb07e, 0x1184: 0xb07f, 0x1185: 0xb080, - 0x1186: 0xb07f, 0x1187: 0xb07e, 0x118a: 0xb081, 0x118b: 0xb082, - 0x118c: 0xb083, 0x118d: 0xb07f, 0x118e: 0xb080, 0x118f: 0xb07f, - 0x1192: 0xb084, 0x1193: 0xb085, 0x1194: 0xb084, 0x1195: 0xb086, 0x1196: 0xb084, 0x1197: 0xb087, - 0x119a: 0xb088, 0x119b: 0xb089, 0x119c: 0xb08a, - 0x11a0: 0x908b, 0x11a1: 0x908b, 0x11a2: 0x908c, 0x11a3: 0x908d, - 0x11a4: 0x908b, 0x11a5: 0x908e, 0x11a6: 0x908f, 0x11a8: 0xb090, 0x11a9: 0xb091, - 0x11aa: 0xb092, 0x11ab: 0xb091, 0x11ac: 0xb093, 0x11ad: 0xb094, 0x11ae: 0xb095, - 0x11bd: 0x2000, - // Block 0x47, offset 0x11c0 - 0x11e0: 0x4000, 0x11e1: 0x4000, - // Block 0x48, offset 0x1200 - 0x1200: 0x4000, 0x1201: 0x4000, 0x1202: 0x4000, 0x1203: 0x4000, 0x1204: 0x4000, 0x1205: 0x4000, - 0x1206: 0x4000, 0x1207: 0x4000, 0x1208: 0x4000, 0x1209: 0x4000, 0x120a: 0x4000, 0x120b: 0x4000, - 0x120c: 0x4000, 0x120d: 0x4000, 0x120e: 0x4000, 0x120f: 0x4000, 0x1210: 0x4000, 0x1211: 0x4000, - 0x1212: 0x4000, 0x1213: 0x4000, 0x1214: 0x4000, 0x1215: 0x4000, 0x1216: 0x4000, 0x1217: 0x4000, - 0x1218: 0x4000, 0x1219: 0x4000, 0x121a: 0x4000, 0x121b: 0x4000, 0x121c: 0x4000, 0x121d: 0x4000, - 0x121e: 0x4000, 0x121f: 0x4000, 0x1220: 0x4000, 0x1221: 0x4000, 0x1222: 0x4000, 0x1223: 0x4000, - 0x1224: 0x4000, 0x1225: 0x4000, 0x1226: 0x4000, 0x1227: 0x4000, 0x1228: 0x4000, 0x1229: 0x4000, - 0x122a: 0x4000, 0x122b: 0x4000, 0x122c: 0x4000, 0x122d: 0x4000, 0x122e: 0x4000, 0x122f: 0x4000, - 0x1230: 0x4000, 0x1231: 0x4000, - // Block 0x49, offset 0x1240 - 0x1240: 0x4000, 0x1241: 0x4000, 0x1242: 0x4000, 0x1243: 0x4000, 0x1244: 0x4000, 0x1245: 0x4000, - 0x1246: 0x4000, 0x1247: 0x4000, 0x1248: 0x4000, 0x1249: 0x4000, 0x124a: 0x4000, 0x124b: 0x4000, - 0x124c: 0x4000, 0x124d: 0x4000, 0x124e: 0x4000, 0x124f: 0x4000, 0x1250: 0x4000, 0x1251: 0x4000, - 0x1252: 0x4000, 0x1253: 0x4000, 0x1254: 0x4000, 0x1255: 0x4000, 0x1256: 0x4000, 0x1257: 0x4000, - 0x1258: 0x4000, 0x1259: 0x4000, 0x125a: 0x4000, 0x125b: 0x4000, 0x125c: 0x4000, 0x125d: 0x4000, - 0x125e: 0x4000, 0x125f: 0x4000, 0x1260: 0x4000, 0x1261: 0x4000, 0x1262: 0x4000, 0x1263: 0x4000, - 0x1264: 0x4000, 0x1265: 0x4000, 0x1266: 0x4000, 0x1267: 0x4000, 0x1268: 0x4000, 0x1269: 0x4000, - 0x126a: 0x4000, 0x126b: 0x4000, 0x126c: 0x4000, 0x126d: 0x4000, 0x126e: 0x4000, 0x126f: 0x4000, - 0x1270: 0x4000, 0x1271: 0x4000, 0x1272: 0x4000, - // Block 0x4a, offset 0x1280 - 0x1280: 0x4000, 0x1281: 0x4000, 0x1282: 0x4000, 0x1283: 0x4000, 0x1284: 0x4000, 0x1285: 0x4000, - 0x1286: 0x4000, 0x1287: 0x4000, 0x1288: 0x4000, 0x1289: 0x4000, 0x128a: 0x4000, 0x128b: 0x4000, - 0x128c: 0x4000, 0x128d: 0x4000, 0x128e: 0x4000, 0x128f: 0x4000, 0x1290: 0x4000, 0x1291: 0x4000, - 0x1292: 0x4000, 0x1293: 0x4000, 0x1294: 0x4000, 0x1295: 0x4000, 0x1296: 0x4000, 0x1297: 0x4000, - 0x1298: 0x4000, 0x1299: 0x4000, 0x129a: 0x4000, 0x129b: 0x4000, 0x129c: 0x4000, 0x129d: 0x4000, - 0x129e: 0x4000, - // Block 0x4b, offset 0x12c0 - 0x12f0: 0x4000, 0x12f1: 0x4000, 0x12f2: 0x4000, 0x12f3: 0x4000, 0x12f4: 0x4000, 0x12f5: 0x4000, - 0x12f6: 0x4000, 0x12f7: 0x4000, 0x12f8: 0x4000, 0x12f9: 0x4000, 0x12fa: 0x4000, 0x12fb: 0x4000, - 0x12fc: 0x4000, 0x12fd: 0x4000, 0x12fe: 0x4000, 0x12ff: 0x4000, - // Block 0x4c, offset 0x1300 - 0x1300: 0x4000, 0x1301: 0x4000, 0x1302: 0x4000, 0x1303: 0x4000, 0x1304: 0x4000, 0x1305: 0x4000, - 0x1306: 0x4000, 0x1307: 0x4000, 0x1308: 0x4000, 0x1309: 0x4000, 0x130a: 0x4000, 0x130b: 0x4000, - 0x130c: 0x4000, 0x130d: 0x4000, 0x130e: 0x4000, 0x130f: 0x4000, 0x1310: 0x4000, 0x1311: 0x4000, - 0x1312: 0x4000, 0x1313: 0x4000, 0x1314: 0x4000, 0x1315: 0x4000, 0x1316: 0x4000, 0x1317: 0x4000, - 0x1318: 0x4000, 0x1319: 0x4000, 0x131a: 0x4000, 0x131b: 0x4000, 0x131c: 0x4000, 0x131d: 0x4000, - 0x131e: 0x4000, 0x131f: 0x4000, 0x1320: 0x4000, 0x1321: 0x4000, 0x1322: 0x4000, 0x1323: 0x4000, - 0x1324: 0x4000, 0x1325: 0x4000, 0x1326: 0x4000, 0x1327: 0x4000, 0x1328: 0x4000, 0x1329: 0x4000, - 0x132a: 0x4000, 0x132b: 0x4000, 0x132c: 0x4000, 0x132d: 0x4000, 0x132e: 0x4000, 0x132f: 0x4000, - 0x1330: 0x4000, 0x1331: 0x4000, 0x1332: 0x4000, 0x1333: 0x4000, 0x1334: 0x4000, 0x1335: 0x4000, - 0x1336: 0x4000, 0x1337: 0x4000, 0x1338: 0x4000, 0x1339: 0x4000, 0x133a: 0x4000, 0x133b: 0x4000, - // Block 0x4d, offset 0x1340 - 0x1344: 0x4000, - // Block 0x4e, offset 0x1380 - 0x138f: 0x4000, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x2000, 0x13c1: 0x2000, 0x13c2: 0x2000, 0x13c3: 0x2000, 0x13c4: 0x2000, 0x13c5: 0x2000, - 0x13c6: 0x2000, 0x13c7: 0x2000, 0x13c8: 0x2000, 0x13c9: 0x2000, 0x13ca: 0x2000, - 0x13d0: 0x2000, 0x13d1: 0x2000, - 0x13d2: 0x2000, 0x13d3: 0x2000, 0x13d4: 0x2000, 0x13d5: 0x2000, 0x13d6: 0x2000, 0x13d7: 0x2000, - 0x13d8: 0x2000, 0x13d9: 0x2000, 0x13da: 0x2000, 0x13db: 0x2000, 0x13dc: 0x2000, 0x13dd: 0x2000, - 0x13de: 0x2000, 0x13df: 0x2000, 0x13e0: 0x2000, 0x13e1: 0x2000, 0x13e2: 0x2000, 0x13e3: 0x2000, - 0x13e4: 0x2000, 0x13e5: 0x2000, 0x13e6: 0x2000, 0x13e7: 0x2000, 0x13e8: 0x2000, 0x13e9: 0x2000, - 0x13ea: 0x2000, 0x13eb: 0x2000, 0x13ec: 0x2000, 0x13ed: 0x2000, - 0x13f0: 0x2000, 0x13f1: 0x2000, 0x13f2: 0x2000, 0x13f3: 0x2000, 0x13f4: 0x2000, 0x13f5: 0x2000, - 0x13f6: 0x2000, 0x13f7: 0x2000, 0x13f8: 0x2000, 0x13f9: 0x2000, 0x13fa: 0x2000, 0x13fb: 0x2000, - 0x13fc: 0x2000, 0x13fd: 0x2000, 0x13fe: 0x2000, 0x13ff: 0x2000, - // Block 0x50, offset 0x1400 - 0x1400: 0x2000, 0x1401: 0x2000, 0x1402: 0x2000, 0x1403: 0x2000, 0x1404: 0x2000, 0x1405: 0x2000, - 0x1406: 0x2000, 0x1407: 0x2000, 0x1408: 0x2000, 0x1409: 0x2000, 0x140a: 0x2000, 0x140b: 0x2000, - 0x140c: 0x2000, 0x140d: 0x2000, 0x140e: 0x2000, 0x140f: 0x2000, 0x1410: 0x2000, 0x1411: 0x2000, - 0x1412: 0x2000, 0x1413: 0x2000, 0x1414: 0x2000, 0x1415: 0x2000, 0x1416: 0x2000, 0x1417: 0x2000, - 0x1418: 0x2000, 0x1419: 0x2000, 0x141a: 0x2000, 0x141b: 0x2000, 0x141c: 0x2000, 0x141d: 0x2000, - 0x141e: 0x2000, 0x141f: 0x2000, 0x1420: 0x2000, 0x1421: 0x2000, 0x1422: 0x2000, 0x1423: 0x2000, - 0x1424: 0x2000, 0x1425: 0x2000, 0x1426: 0x2000, 0x1427: 0x2000, 0x1428: 0x2000, 0x1429: 0x2000, - 0x1430: 0x2000, 0x1431: 0x2000, 0x1432: 0x2000, 0x1433: 0x2000, 0x1434: 0x2000, 0x1435: 0x2000, - 0x1436: 0x2000, 0x1437: 0x2000, 0x1438: 0x2000, 0x1439: 0x2000, 0x143a: 0x2000, 0x143b: 0x2000, - 0x143c: 0x2000, 0x143d: 0x2000, 0x143e: 0x2000, 0x143f: 0x2000, - // Block 0x51, offset 0x1440 - 0x1440: 0x2000, 0x1441: 0x2000, 0x1442: 0x2000, 0x1443: 0x2000, 0x1444: 0x2000, 0x1445: 0x2000, - 0x1446: 0x2000, 0x1447: 0x2000, 0x1448: 0x2000, 0x1449: 0x2000, 0x144a: 0x2000, 0x144b: 0x2000, - 0x144c: 0x2000, 0x144d: 0x2000, 0x144e: 0x4000, 0x144f: 0x2000, 0x1450: 0x2000, 0x1451: 0x4000, - 0x1452: 0x4000, 0x1453: 0x4000, 0x1454: 0x4000, 0x1455: 0x4000, 0x1456: 0x4000, 0x1457: 0x4000, - 0x1458: 0x4000, 0x1459: 0x4000, 0x145a: 0x4000, 0x145b: 0x2000, 0x145c: 0x2000, 0x145d: 0x2000, - 0x145e: 0x2000, 0x145f: 0x2000, 0x1460: 0x2000, 0x1461: 0x2000, 0x1462: 0x2000, 0x1463: 0x2000, - 0x1464: 0x2000, 0x1465: 0x2000, 0x1466: 0x2000, 0x1467: 0x2000, 0x1468: 0x2000, 0x1469: 0x2000, - 0x146a: 0x2000, 0x146b: 0x2000, 0x146c: 0x2000, - // Block 0x52, offset 0x1480 - 0x1480: 0x4000, 0x1481: 0x4000, 0x1482: 0x4000, - 0x1490: 0x4000, 0x1491: 0x4000, - 0x1492: 0x4000, 0x1493: 0x4000, 0x1494: 0x4000, 0x1495: 0x4000, 0x1496: 0x4000, 0x1497: 0x4000, - 0x1498: 0x4000, 0x1499: 0x4000, 0x149a: 0x4000, 0x149b: 0x4000, 0x149c: 0x4000, 0x149d: 0x4000, - 0x149e: 0x4000, 0x149f: 0x4000, 0x14a0: 0x4000, 0x14a1: 0x4000, 0x14a2: 0x4000, 0x14a3: 0x4000, - 0x14a4: 0x4000, 0x14a5: 0x4000, 0x14a6: 0x4000, 0x14a7: 0x4000, 0x14a8: 0x4000, 0x14a9: 0x4000, - 0x14aa: 0x4000, 0x14ab: 0x4000, 0x14ac: 0x4000, 0x14ad: 0x4000, 0x14ae: 0x4000, 0x14af: 0x4000, - 0x14b0: 0x4000, 0x14b1: 0x4000, 0x14b2: 0x4000, 0x14b3: 0x4000, 0x14b4: 0x4000, 0x14b5: 0x4000, - 0x14b6: 0x4000, 0x14b7: 0x4000, 0x14b8: 0x4000, 0x14b9: 0x4000, 0x14ba: 0x4000, 0x14bb: 0x4000, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x4000, 0x14c1: 0x4000, 0x14c2: 0x4000, 0x14c3: 0x4000, 0x14c4: 0x4000, 0x14c5: 0x4000, - 0x14c6: 0x4000, 0x14c7: 0x4000, 0x14c8: 0x4000, - 0x14d0: 0x4000, 0x14d1: 0x4000, - 0x14e0: 0x4000, 0x14e1: 0x4000, 0x14e2: 0x4000, 0x14e3: 0x4000, - 0x14e4: 0x4000, 0x14e5: 0x4000, - // Block 0x54, offset 0x1500 - 0x1500: 0x4000, 0x1501: 0x4000, 0x1502: 0x4000, 0x1503: 0x4000, 0x1504: 0x4000, 0x1505: 0x4000, - 0x1506: 0x4000, 0x1507: 0x4000, 0x1508: 0x4000, 0x1509: 0x4000, 0x150a: 0x4000, 0x150b: 0x4000, - 0x150c: 0x4000, 0x150d: 0x4000, 0x150e: 0x4000, 0x150f: 0x4000, 0x1510: 0x4000, 0x1511: 0x4000, - 0x1512: 0x4000, 0x1513: 0x4000, 0x1514: 0x4000, 0x1515: 0x4000, 0x1516: 0x4000, 0x1517: 0x4000, - 0x1518: 0x4000, 0x1519: 0x4000, 0x151a: 0x4000, 0x151b: 0x4000, 0x151c: 0x4000, 0x151d: 0x4000, - 0x151e: 0x4000, 0x151f: 0x4000, 0x1520: 0x4000, - 0x152d: 0x4000, 0x152e: 0x4000, 0x152f: 0x4000, - 0x1530: 0x4000, 0x1531: 0x4000, 0x1532: 0x4000, 0x1533: 0x4000, 0x1534: 0x4000, 0x1535: 0x4000, - 0x1537: 0x4000, 0x1538: 0x4000, 0x1539: 0x4000, 0x153a: 0x4000, 0x153b: 0x4000, - 0x153c: 0x4000, 0x153d: 0x4000, 0x153e: 0x4000, 0x153f: 0x4000, - // Block 0x55, offset 0x1540 - 0x1540: 0x4000, 0x1541: 0x4000, 0x1542: 0x4000, 0x1543: 0x4000, 0x1544: 0x4000, 0x1545: 0x4000, - 0x1546: 0x4000, 0x1547: 0x4000, 0x1548: 0x4000, 0x1549: 0x4000, 0x154a: 0x4000, 0x154b: 0x4000, - 0x154c: 0x4000, 0x154d: 0x4000, 0x154e: 0x4000, 0x154f: 0x4000, 0x1550: 0x4000, 0x1551: 0x4000, - 0x1552: 0x4000, 0x1553: 0x4000, 0x1554: 0x4000, 0x1555: 0x4000, 0x1556: 0x4000, 0x1557: 0x4000, - 0x1558: 0x4000, 0x1559: 0x4000, 0x155a: 0x4000, 0x155b: 0x4000, 0x155c: 0x4000, 0x155d: 0x4000, - 0x155e: 0x4000, 0x155f: 0x4000, 0x1560: 0x4000, 0x1561: 0x4000, 0x1562: 0x4000, 0x1563: 0x4000, - 0x1564: 0x4000, 0x1565: 0x4000, 0x1566: 0x4000, 0x1567: 0x4000, 0x1568: 0x4000, 0x1569: 0x4000, - 0x156a: 0x4000, 0x156b: 0x4000, 0x156c: 0x4000, 0x156d: 0x4000, 0x156e: 0x4000, 0x156f: 0x4000, - 0x1570: 0x4000, 0x1571: 0x4000, 0x1572: 0x4000, 0x1573: 0x4000, 0x1574: 0x4000, 0x1575: 0x4000, - 0x1576: 0x4000, 0x1577: 0x4000, 0x1578: 0x4000, 0x1579: 0x4000, 0x157a: 0x4000, 0x157b: 0x4000, - 0x157c: 0x4000, 0x157e: 0x4000, 0x157f: 0x4000, - // Block 0x56, offset 0x1580 - 0x1580: 0x4000, 0x1581: 0x4000, 0x1582: 0x4000, 0x1583: 0x4000, 0x1584: 0x4000, 0x1585: 0x4000, - 0x1586: 0x4000, 0x1587: 0x4000, 0x1588: 0x4000, 0x1589: 0x4000, 0x158a: 0x4000, 0x158b: 0x4000, - 0x158c: 0x4000, 0x158d: 0x4000, 0x158e: 0x4000, 0x158f: 0x4000, 0x1590: 0x4000, 0x1591: 0x4000, - 0x1592: 0x4000, 0x1593: 0x4000, - 0x15a0: 0x4000, 0x15a1: 0x4000, 0x15a2: 0x4000, 0x15a3: 0x4000, - 0x15a4: 0x4000, 0x15a5: 0x4000, 0x15a6: 0x4000, 0x15a7: 0x4000, 0x15a8: 0x4000, 0x15a9: 0x4000, - 0x15aa: 0x4000, 0x15ab: 0x4000, 0x15ac: 0x4000, 0x15ad: 0x4000, 0x15ae: 0x4000, 0x15af: 0x4000, - 0x15b0: 0x4000, 0x15b1: 0x4000, 0x15b2: 0x4000, 0x15b3: 0x4000, 0x15b4: 0x4000, 0x15b5: 0x4000, - 0x15b6: 0x4000, 0x15b7: 0x4000, 0x15b8: 0x4000, 0x15b9: 0x4000, 0x15ba: 0x4000, 0x15bb: 0x4000, - 0x15bc: 0x4000, 0x15bd: 0x4000, 0x15be: 0x4000, 0x15bf: 0x4000, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x4000, 0x15c1: 0x4000, 0x15c2: 0x4000, 0x15c3: 0x4000, 0x15c4: 0x4000, 0x15c5: 0x4000, - 0x15c6: 0x4000, 0x15c7: 0x4000, 0x15c8: 0x4000, 0x15c9: 0x4000, 0x15ca: 0x4000, - 0x15cf: 0x4000, 0x15d0: 0x4000, 0x15d1: 0x4000, - 0x15d2: 0x4000, 0x15d3: 0x4000, - 0x15e0: 0x4000, 0x15e1: 0x4000, 0x15e2: 0x4000, 0x15e3: 0x4000, - 0x15e4: 0x4000, 0x15e5: 0x4000, 0x15e6: 0x4000, 0x15e7: 0x4000, 0x15e8: 0x4000, 0x15e9: 0x4000, - 0x15ea: 0x4000, 0x15eb: 0x4000, 0x15ec: 0x4000, 0x15ed: 0x4000, 0x15ee: 0x4000, 0x15ef: 0x4000, - 0x15f0: 0x4000, 0x15f4: 0x4000, - 0x15f8: 0x4000, 0x15f9: 0x4000, 0x15fa: 0x4000, 0x15fb: 0x4000, - 0x15fc: 0x4000, 0x15fd: 0x4000, 0x15fe: 0x4000, 0x15ff: 0x4000, - // Block 0x58, offset 0x1600 - 0x1600: 0x4000, 0x1602: 0x4000, 0x1603: 0x4000, 0x1604: 0x4000, 0x1605: 0x4000, - 0x1606: 0x4000, 0x1607: 0x4000, 0x1608: 0x4000, 0x1609: 0x4000, 0x160a: 0x4000, 0x160b: 0x4000, - 0x160c: 0x4000, 0x160d: 0x4000, 0x160e: 0x4000, 0x160f: 0x4000, 0x1610: 0x4000, 0x1611: 0x4000, - 0x1612: 0x4000, 0x1613: 0x4000, 0x1614: 0x4000, 0x1615: 0x4000, 0x1616: 0x4000, 0x1617: 0x4000, - 0x1618: 0x4000, 0x1619: 0x4000, 0x161a: 0x4000, 0x161b: 0x4000, 0x161c: 0x4000, 0x161d: 0x4000, - 0x161e: 0x4000, 0x161f: 0x4000, 0x1620: 0x4000, 0x1621: 0x4000, 0x1622: 0x4000, 0x1623: 0x4000, - 0x1624: 0x4000, 0x1625: 0x4000, 0x1626: 0x4000, 0x1627: 0x4000, 0x1628: 0x4000, 0x1629: 0x4000, - 0x162a: 0x4000, 0x162b: 0x4000, 0x162c: 0x4000, 0x162d: 0x4000, 0x162e: 0x4000, 0x162f: 0x4000, - 0x1630: 0x4000, 0x1631: 0x4000, 0x1632: 0x4000, 0x1633: 0x4000, 0x1634: 0x4000, 0x1635: 0x4000, - 0x1636: 0x4000, 0x1637: 0x4000, 0x1638: 0x4000, 0x1639: 0x4000, 0x163a: 0x4000, 0x163b: 0x4000, - 0x163c: 0x4000, 0x163d: 0x4000, 0x163e: 0x4000, 0x163f: 0x4000, - // Block 0x59, offset 0x1640 - 0x1640: 0x4000, 0x1641: 0x4000, 0x1642: 0x4000, 0x1643: 0x4000, 0x1644: 0x4000, 0x1645: 0x4000, - 0x1646: 0x4000, 0x1647: 0x4000, 0x1648: 0x4000, 0x1649: 0x4000, 0x164a: 0x4000, 0x164b: 0x4000, - 0x164c: 0x4000, 0x164d: 0x4000, 0x164e: 0x4000, 0x164f: 0x4000, 0x1650: 0x4000, 0x1651: 0x4000, - 0x1652: 0x4000, 0x1653: 0x4000, 0x1654: 0x4000, 0x1655: 0x4000, 0x1656: 0x4000, 0x1657: 0x4000, - 0x1658: 0x4000, 0x1659: 0x4000, 0x165a: 0x4000, 0x165b: 0x4000, 0x165c: 0x4000, 0x165d: 0x4000, - 0x165e: 0x4000, 0x165f: 0x4000, 0x1660: 0x4000, 0x1661: 0x4000, 0x1662: 0x4000, 0x1663: 0x4000, - 0x1664: 0x4000, 0x1665: 0x4000, 0x1666: 0x4000, 0x1667: 0x4000, 0x1668: 0x4000, 0x1669: 0x4000, - 0x166a: 0x4000, 0x166b: 0x4000, 0x166c: 0x4000, 0x166d: 0x4000, 0x166e: 0x4000, 0x166f: 0x4000, - 0x1670: 0x4000, 0x1671: 0x4000, 0x1672: 0x4000, 0x1673: 0x4000, 0x1674: 0x4000, 0x1675: 0x4000, - 0x1676: 0x4000, 0x1677: 0x4000, 0x1678: 0x4000, 0x1679: 0x4000, 0x167a: 0x4000, 0x167b: 0x4000, - 0x167c: 0x4000, 0x167f: 0x4000, - // Block 0x5a, offset 0x1680 - 0x1680: 0x4000, 0x1681: 0x4000, 0x1682: 0x4000, 0x1683: 0x4000, 0x1684: 0x4000, 0x1685: 0x4000, - 0x1686: 0x4000, 0x1687: 0x4000, 0x1688: 0x4000, 0x1689: 0x4000, 0x168a: 0x4000, 0x168b: 0x4000, - 0x168c: 0x4000, 0x168d: 0x4000, 0x168e: 0x4000, 0x168f: 0x4000, 0x1690: 0x4000, 0x1691: 0x4000, - 0x1692: 0x4000, 0x1693: 0x4000, 0x1694: 0x4000, 0x1695: 0x4000, 0x1696: 0x4000, 0x1697: 0x4000, - 0x1698: 0x4000, 0x1699: 0x4000, 0x169a: 0x4000, 0x169b: 0x4000, 0x169c: 0x4000, 0x169d: 0x4000, - 0x169e: 0x4000, 0x169f: 0x4000, 0x16a0: 0x4000, 0x16a1: 0x4000, 0x16a2: 0x4000, 0x16a3: 0x4000, - 0x16a4: 0x4000, 0x16a5: 0x4000, 0x16a6: 0x4000, 0x16a7: 0x4000, 0x16a8: 0x4000, 0x16a9: 0x4000, - 0x16aa: 0x4000, 0x16ab: 0x4000, 0x16ac: 0x4000, 0x16ad: 0x4000, 0x16ae: 0x4000, 0x16af: 0x4000, - 0x16b0: 0x4000, 0x16b1: 0x4000, 0x16b2: 0x4000, 0x16b3: 0x4000, 0x16b4: 0x4000, 0x16b5: 0x4000, - 0x16b6: 0x4000, 0x16b7: 0x4000, 0x16b8: 0x4000, 0x16b9: 0x4000, 0x16ba: 0x4000, 0x16bb: 0x4000, - 0x16bc: 0x4000, 0x16bd: 0x4000, - // Block 0x5b, offset 0x16c0 - 0x16cb: 0x4000, - 0x16cc: 0x4000, 0x16cd: 0x4000, 0x16ce: 0x4000, 0x16d0: 0x4000, 0x16d1: 0x4000, - 0x16d2: 0x4000, 0x16d3: 0x4000, 0x16d4: 0x4000, 0x16d5: 0x4000, 0x16d6: 0x4000, 0x16d7: 0x4000, - 0x16d8: 0x4000, 0x16d9: 0x4000, 0x16da: 0x4000, 0x16db: 0x4000, 0x16dc: 0x4000, 0x16dd: 0x4000, - 0x16de: 0x4000, 0x16df: 0x4000, 0x16e0: 0x4000, 0x16e1: 0x4000, 0x16e2: 0x4000, 0x16e3: 0x4000, - 0x16e4: 0x4000, 0x16e5: 0x4000, 0x16e6: 0x4000, 0x16e7: 0x4000, - 0x16fa: 0x4000, - // Block 0x5c, offset 0x1700 - 0x1715: 0x4000, 0x1716: 0x4000, - 0x1724: 0x4000, - // Block 0x5d, offset 0x1740 - 0x177b: 0x4000, - 0x177c: 0x4000, 0x177d: 0x4000, 0x177e: 0x4000, 0x177f: 0x4000, - // Block 0x5e, offset 0x1780 - 0x1780: 0x4000, 0x1781: 0x4000, 0x1782: 0x4000, 0x1783: 0x4000, 0x1784: 0x4000, 0x1785: 0x4000, - 0x1786: 0x4000, 0x1787: 0x4000, 0x1788: 0x4000, 0x1789: 0x4000, 0x178a: 0x4000, 0x178b: 0x4000, - 0x178c: 0x4000, 0x178d: 0x4000, 0x178e: 0x4000, 0x178f: 0x4000, - // Block 0x5f, offset 0x17c0 - 0x17c0: 0x4000, 0x17c1: 0x4000, 0x17c2: 0x4000, 0x17c3: 0x4000, 0x17c4: 0x4000, 0x17c5: 0x4000, - 0x17cc: 0x4000, 0x17d0: 0x4000, 0x17d1: 0x4000, - 0x17d2: 0x4000, - 0x17eb: 0x4000, 0x17ec: 0x4000, - 0x17f4: 0x4000, 0x17f5: 0x4000, - 0x17f6: 0x4000, 0x17f7: 0x4000, 0x17f8: 0x4000, 0x17f9: 0x4000, - // Block 0x60, offset 0x1800 - 0x1810: 0x4000, 0x1811: 0x4000, - 0x1812: 0x4000, 0x1813: 0x4000, 0x1814: 0x4000, 0x1815: 0x4000, 0x1816: 0x4000, 0x1817: 0x4000, - 0x1818: 0x4000, 0x1819: 0x4000, 0x181a: 0x4000, 0x181b: 0x4000, 0x181c: 0x4000, 0x181d: 0x4000, - 0x181e: 0x4000, 0x181f: 0x4000, 0x1820: 0x4000, 0x1821: 0x4000, 0x1822: 0x4000, 0x1823: 0x4000, - 0x1824: 0x4000, 0x1825: 0x4000, 0x1826: 0x4000, 0x1827: 0x4000, 0x1828: 0x4000, 0x1829: 0x4000, - 0x182a: 0x4000, 0x182b: 0x4000, 0x182c: 0x4000, 0x182d: 0x4000, 0x182e: 0x4000, 0x182f: 0x4000, - 0x1830: 0x4000, 0x1831: 0x4000, 0x1832: 0x4000, 0x1833: 0x4000, 0x1834: 0x4000, 0x1835: 0x4000, - 0x1836: 0x4000, 0x1837: 0x4000, 0x1838: 0x4000, 0x1839: 0x4000, 0x183a: 0x4000, 0x183b: 0x4000, - 0x183c: 0x4000, 0x183d: 0x4000, 0x183e: 0x4000, - // Block 0x61, offset 0x1840 - 0x1840: 0x4000, 0x1841: 0x4000, 0x1842: 0x4000, 0x1843: 0x4000, 0x1844: 0x4000, 0x1845: 0x4000, - 0x1846: 0x4000, 0x1847: 0x4000, 0x1848: 0x4000, 0x1849: 0x4000, 0x184a: 0x4000, 0x184b: 0x4000, - 0x184c: 0x4000, 0x184d: 0x4000, 0x184e: 0x4000, 0x184f: 0x4000, 0x1850: 0x4000, 0x1851: 0x4000, - 0x1852: 0x4000, 0x1853: 0x4000, 0x1854: 0x4000, 0x1855: 0x4000, 0x1856: 0x4000, 0x1857: 0x4000, - 0x1858: 0x4000, 0x1859: 0x4000, 0x185a: 0x4000, 0x185b: 0x4000, 0x185c: 0x4000, 0x185d: 0x4000, - 0x185e: 0x4000, 0x185f: 0x4000, 0x1860: 0x4000, 0x1861: 0x4000, 0x1862: 0x4000, 0x1863: 0x4000, - 0x1864: 0x4000, 0x1865: 0x4000, 0x1866: 0x4000, 0x1867: 0x4000, 0x1868: 0x4000, 0x1869: 0x4000, - 0x186a: 0x4000, 0x186b: 0x4000, 0x186c: 0x4000, 0x186d: 0x4000, 0x186e: 0x4000, 0x186f: 0x4000, - 0x1870: 0x4000, 0x1873: 0x4000, 0x1874: 0x4000, 0x1875: 0x4000, - 0x1876: 0x4000, 0x187a: 0x4000, - 0x187c: 0x4000, 0x187d: 0x4000, 0x187e: 0x4000, 0x187f: 0x4000, - // Block 0x62, offset 0x1880 - 0x1880: 0x4000, 0x1881: 0x4000, 0x1882: 0x4000, 0x1883: 0x4000, 0x1884: 0x4000, 0x1885: 0x4000, - 0x1886: 0x4000, 0x1887: 0x4000, 0x1888: 0x4000, 0x1889: 0x4000, 0x188a: 0x4000, 0x188b: 0x4000, - 0x188c: 0x4000, 0x188d: 0x4000, 0x188e: 0x4000, 0x188f: 0x4000, 0x1890: 0x4000, 0x1891: 0x4000, - 0x1892: 0x4000, 0x1893: 0x4000, 0x1894: 0x4000, 0x1895: 0x4000, 0x1896: 0x4000, 0x1897: 0x4000, - 0x1898: 0x4000, 0x1899: 0x4000, 0x189a: 0x4000, 0x189b: 0x4000, 0x189c: 0x4000, 0x189d: 0x4000, - 0x189e: 0x4000, 0x189f: 0x4000, 0x18a0: 0x4000, 0x18a1: 0x4000, 0x18a2: 0x4000, - 0x18b0: 0x4000, 0x18b1: 0x4000, 0x18b2: 0x4000, 0x18b3: 0x4000, 0x18b4: 0x4000, 0x18b5: 0x4000, - 0x18b6: 0x4000, 0x18b7: 0x4000, 0x18b8: 0x4000, 0x18b9: 0x4000, - // Block 0x63, offset 0x18c0 - 0x18c0: 0x4000, 0x18c1: 0x4000, 0x18c2: 0x4000, - 0x18d0: 0x4000, 0x18d1: 0x4000, - 0x18d2: 0x4000, 0x18d3: 0x4000, 0x18d4: 0x4000, 0x18d5: 0x4000, 0x18d6: 0x4000, 0x18d7: 0x4000, - 0x18d8: 0x4000, 0x18d9: 0x4000, 0x18da: 0x4000, 0x18db: 0x4000, 0x18dc: 0x4000, 0x18dd: 0x4000, - 0x18de: 0x4000, 0x18df: 0x4000, 0x18e0: 0x4000, 0x18e1: 0x4000, 0x18e2: 0x4000, 0x18e3: 0x4000, - 0x18e4: 0x4000, 0x18e5: 0x4000, 0x18e6: 0x4000, 0x18e7: 0x4000, 0x18e8: 0x4000, 0x18e9: 0x4000, - 0x18ea: 0x4000, 0x18eb: 0x4000, 0x18ec: 0x4000, 0x18ed: 0x4000, 0x18ee: 0x4000, 0x18ef: 0x4000, - 0x18f0: 0x4000, 0x18f1: 0x4000, 0x18f2: 0x4000, 0x18f3: 0x4000, 0x18f4: 0x4000, 0x18f5: 0x4000, - 0x18f6: 0x4000, 0x18f7: 0x4000, 0x18f8: 0x4000, 0x18f9: 0x4000, 0x18fa: 0x4000, 0x18fb: 0x4000, - 0x18fc: 0x4000, 0x18fd: 0x4000, 0x18fe: 0x4000, 0x18ff: 0x4000, - // Block 0x64, offset 0x1900 - 0x1900: 0x2000, 0x1901: 0x2000, 0x1902: 0x2000, 0x1903: 0x2000, 0x1904: 0x2000, 0x1905: 0x2000, - 0x1906: 0x2000, 0x1907: 0x2000, 0x1908: 0x2000, 0x1909: 0x2000, 0x190a: 0x2000, 0x190b: 0x2000, - 0x190c: 0x2000, 0x190d: 0x2000, 0x190e: 0x2000, 0x190f: 0x2000, 0x1910: 0x2000, 0x1911: 0x2000, - 0x1912: 0x2000, 0x1913: 0x2000, 0x1914: 0x2000, 0x1915: 0x2000, 0x1916: 0x2000, 0x1917: 0x2000, - 0x1918: 0x2000, 0x1919: 0x2000, 0x191a: 0x2000, 0x191b: 0x2000, 0x191c: 0x2000, 0x191d: 0x2000, - 0x191e: 0x2000, 0x191f: 0x2000, 0x1920: 0x2000, 0x1921: 0x2000, 0x1922: 0x2000, 0x1923: 0x2000, - 0x1924: 0x2000, 0x1925: 0x2000, 0x1926: 0x2000, 0x1927: 0x2000, 0x1928: 0x2000, 0x1929: 0x2000, - 0x192a: 0x2000, 0x192b: 0x2000, 0x192c: 0x2000, 0x192d: 0x2000, 0x192e: 0x2000, 0x192f: 0x2000, - 0x1930: 0x2000, 0x1931: 0x2000, 0x1932: 0x2000, 0x1933: 0x2000, 0x1934: 0x2000, 0x1935: 0x2000, - 0x1936: 0x2000, 0x1937: 0x2000, 0x1938: 0x2000, 0x1939: 0x2000, 0x193a: 0x2000, 0x193b: 0x2000, - 0x193c: 0x2000, 0x193d: 0x2000, -} - -// widthIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var widthIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc7: 0x05, - 0xc9: 0x06, 0xcb: 0x07, 0xcc: 0x08, 0xcd: 0x09, 0xce: 0x0a, 0xcf: 0x0b, - 0xd0: 0x0c, 0xd1: 0x0d, - 0xe1: 0x02, 0xe2: 0x03, 0xe3: 0x04, 0xe4: 0x05, 0xe5: 0x06, 0xe6: 0x06, 0xe7: 0x06, - 0xe8: 0x06, 0xe9: 0x06, 0xea: 0x07, 0xeb: 0x06, 0xec: 0x06, 0xed: 0x08, 0xee: 0x09, 0xef: 0x0a, - 0xf0: 0x0f, 0xf3: 0x12, 0xf4: 0x13, - // Block 0x4, offset 0x100 - 0x104: 0x0e, 0x105: 0x0f, - // Block 0x5, offset 0x140 - 0x140: 0x10, 0x141: 0x11, 0x142: 0x12, 0x144: 0x13, 0x145: 0x14, 0x146: 0x15, 0x147: 0x16, - 0x148: 0x17, 0x149: 0x18, 0x14a: 0x19, 0x14c: 0x1a, 0x14f: 0x1b, - 0x151: 0x1c, 0x152: 0x08, 0x153: 0x1d, 0x154: 0x1e, 0x155: 0x1f, 0x156: 0x20, 0x157: 0x21, - 0x158: 0x22, 0x159: 0x23, 0x15a: 0x24, 0x15b: 0x25, 0x15c: 0x26, 0x15d: 0x27, 0x15e: 0x28, 0x15f: 0x29, - 0x166: 0x2a, - 0x16c: 0x2b, 0x16d: 0x2c, - 0x17a: 0x2d, 0x17b: 0x2e, 0x17c: 0x0e, 0x17d: 0x0e, 0x17e: 0x0e, 0x17f: 0x2f, - // Block 0x6, offset 0x180 - 0x180: 0x30, 0x181: 0x31, 0x182: 0x32, 0x183: 0x33, 0x184: 0x34, 0x185: 0x35, 0x186: 0x36, 0x187: 0x37, - 0x188: 0x38, 0x189: 0x39, 0x18a: 0x0e, 0x18b: 0x3a, 0x18c: 0x0e, 0x18d: 0x0e, 0x18e: 0x0e, 0x18f: 0x0e, - 0x190: 0x0e, 0x191: 0x0e, 0x192: 0x0e, 0x193: 0x0e, 0x194: 0x0e, 0x195: 0x0e, 0x196: 0x0e, 0x197: 0x0e, - 0x198: 0x0e, 0x199: 0x0e, 0x19a: 0x0e, 0x19b: 0x0e, 0x19c: 0x0e, 0x19d: 0x0e, 0x19e: 0x0e, 0x19f: 0x0e, - 0x1a0: 0x0e, 0x1a1: 0x0e, 0x1a2: 0x0e, 0x1a3: 0x0e, 0x1a4: 0x0e, 0x1a5: 0x0e, 0x1a6: 0x0e, 0x1a7: 0x0e, - 0x1a8: 0x0e, 0x1a9: 0x0e, 0x1aa: 0x0e, 0x1ab: 0x0e, 0x1ac: 0x0e, 0x1ad: 0x0e, 0x1ae: 0x0e, 0x1af: 0x0e, - 0x1b0: 0x0e, 0x1b1: 0x0e, 0x1b2: 0x0e, 0x1b3: 0x0e, 0x1b4: 0x0e, 0x1b5: 0x0e, 0x1b6: 0x0e, 0x1b7: 0x0e, - 0x1b8: 0x0e, 0x1b9: 0x0e, 0x1ba: 0x0e, 0x1bb: 0x0e, 0x1bc: 0x0e, 0x1bd: 0x0e, 0x1be: 0x0e, 0x1bf: 0x0e, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0e, 0x1c1: 0x0e, 0x1c2: 0x0e, 0x1c3: 0x0e, 0x1c4: 0x0e, 0x1c5: 0x0e, 0x1c6: 0x0e, 0x1c7: 0x0e, - 0x1c8: 0x0e, 0x1c9: 0x0e, 0x1ca: 0x0e, 0x1cb: 0x0e, 0x1cc: 0x0e, 0x1cd: 0x0e, 0x1ce: 0x0e, 0x1cf: 0x0e, - 0x1d0: 0x0e, 0x1d1: 0x0e, 0x1d2: 0x0e, 0x1d3: 0x0e, 0x1d4: 0x0e, 0x1d5: 0x0e, 0x1d6: 0x0e, 0x1d7: 0x0e, - 0x1d8: 0x0e, 0x1d9: 0x0e, 0x1da: 0x0e, 0x1db: 0x0e, 0x1dc: 0x0e, 0x1dd: 0x0e, 0x1de: 0x0e, 0x1df: 0x0e, - 0x1e0: 0x0e, 0x1e1: 0x0e, 0x1e2: 0x0e, 0x1e3: 0x0e, 0x1e4: 0x0e, 0x1e5: 0x0e, 0x1e6: 0x0e, 0x1e7: 0x0e, - 0x1e8: 0x0e, 0x1e9: 0x0e, 0x1ea: 0x0e, 0x1eb: 0x0e, 0x1ec: 0x0e, 0x1ed: 0x0e, 0x1ee: 0x0e, 0x1ef: 0x0e, - 0x1f0: 0x0e, 0x1f1: 0x0e, 0x1f2: 0x0e, 0x1f3: 0x0e, 0x1f4: 0x0e, 0x1f5: 0x0e, 0x1f6: 0x0e, - 0x1f8: 0x0e, 0x1f9: 0x0e, 0x1fa: 0x0e, 0x1fb: 0x0e, 0x1fc: 0x0e, 0x1fd: 0x0e, 0x1fe: 0x0e, 0x1ff: 0x0e, - // Block 0x8, offset 0x200 - 0x200: 0x0e, 0x201: 0x0e, 0x202: 0x0e, 0x203: 0x0e, 0x204: 0x0e, 0x205: 0x0e, 0x206: 0x0e, 0x207: 0x0e, - 0x208: 0x0e, 0x209: 0x0e, 0x20a: 0x0e, 0x20b: 0x0e, 0x20c: 0x0e, 0x20d: 0x0e, 0x20e: 0x0e, 0x20f: 0x0e, - 0x210: 0x0e, 0x211: 0x0e, 0x212: 0x0e, 0x213: 0x0e, 0x214: 0x0e, 0x215: 0x0e, 0x216: 0x0e, 0x217: 0x0e, - 0x218: 0x0e, 0x219: 0x0e, 0x21a: 0x0e, 0x21b: 0x0e, 0x21c: 0x0e, 0x21d: 0x0e, 0x21e: 0x0e, 0x21f: 0x0e, - 0x220: 0x0e, 0x221: 0x0e, 0x222: 0x0e, 0x223: 0x0e, 0x224: 0x0e, 0x225: 0x0e, 0x226: 0x0e, 0x227: 0x0e, - 0x228: 0x0e, 0x229: 0x0e, 0x22a: 0x0e, 0x22b: 0x0e, 0x22c: 0x0e, 0x22d: 0x0e, 0x22e: 0x0e, 0x22f: 0x0e, - 0x230: 0x0e, 0x231: 0x0e, 0x232: 0x0e, 0x233: 0x0e, 0x234: 0x0e, 0x235: 0x0e, 0x236: 0x0e, 0x237: 0x0e, - 0x238: 0x0e, 0x239: 0x0e, 0x23a: 0x0e, 0x23b: 0x0e, 0x23c: 0x0e, 0x23d: 0x0e, 0x23e: 0x0e, 0x23f: 0x0e, - // Block 0x9, offset 0x240 - 0x240: 0x0e, 0x241: 0x0e, 0x242: 0x0e, 0x243: 0x0e, 0x244: 0x0e, 0x245: 0x0e, 0x246: 0x0e, 0x247: 0x0e, - 0x248: 0x0e, 0x249: 0x0e, 0x24a: 0x0e, 0x24b: 0x0e, 0x24c: 0x0e, 0x24d: 0x0e, 0x24e: 0x0e, 0x24f: 0x0e, - 0x250: 0x0e, 0x251: 0x0e, 0x252: 0x3b, 0x253: 0x3c, - 0x265: 0x3d, - 0x270: 0x0e, 0x271: 0x0e, 0x272: 0x0e, 0x273: 0x0e, 0x274: 0x0e, 0x275: 0x0e, 0x276: 0x0e, 0x277: 0x0e, - 0x278: 0x0e, 0x279: 0x0e, 0x27a: 0x0e, 0x27b: 0x0e, 0x27c: 0x0e, 0x27d: 0x0e, 0x27e: 0x0e, 0x27f: 0x0e, - // Block 0xa, offset 0x280 - 0x280: 0x0e, 0x281: 0x0e, 0x282: 0x0e, 0x283: 0x0e, 0x284: 0x0e, 0x285: 0x0e, 0x286: 0x0e, 0x287: 0x0e, - 0x288: 0x0e, 0x289: 0x0e, 0x28a: 0x0e, 0x28b: 0x0e, 0x28c: 0x0e, 0x28d: 0x0e, 0x28e: 0x0e, 0x28f: 0x0e, - 0x290: 0x0e, 0x291: 0x0e, 0x292: 0x0e, 0x293: 0x0e, 0x294: 0x0e, 0x295: 0x0e, 0x296: 0x0e, 0x297: 0x0e, - 0x298: 0x0e, 0x299: 0x0e, 0x29a: 0x0e, 0x29b: 0x0e, 0x29c: 0x0e, 0x29d: 0x0e, 0x29e: 0x3e, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x08, 0x2c1: 0x08, 0x2c2: 0x08, 0x2c3: 0x08, 0x2c4: 0x08, 0x2c5: 0x08, 0x2c6: 0x08, 0x2c7: 0x08, - 0x2c8: 0x08, 0x2c9: 0x08, 0x2ca: 0x08, 0x2cb: 0x08, 0x2cc: 0x08, 0x2cd: 0x08, 0x2ce: 0x08, 0x2cf: 0x08, - 0x2d0: 0x08, 0x2d1: 0x08, 0x2d2: 0x08, 0x2d3: 0x08, 0x2d4: 0x08, 0x2d5: 0x08, 0x2d6: 0x08, 0x2d7: 0x08, - 0x2d8: 0x08, 0x2d9: 0x08, 0x2da: 0x08, 0x2db: 0x08, 0x2dc: 0x08, 0x2dd: 0x08, 0x2de: 0x08, 0x2df: 0x08, - 0x2e0: 0x08, 0x2e1: 0x08, 0x2e2: 0x08, 0x2e3: 0x08, 0x2e4: 0x08, 0x2e5: 0x08, 0x2e6: 0x08, 0x2e7: 0x08, - 0x2e8: 0x08, 0x2e9: 0x08, 0x2ea: 0x08, 0x2eb: 0x08, 0x2ec: 0x08, 0x2ed: 0x08, 0x2ee: 0x08, 0x2ef: 0x08, - 0x2f0: 0x08, 0x2f1: 0x08, 0x2f2: 0x08, 0x2f3: 0x08, 0x2f4: 0x08, 0x2f5: 0x08, 0x2f6: 0x08, 0x2f7: 0x08, - 0x2f8: 0x08, 0x2f9: 0x08, 0x2fa: 0x08, 0x2fb: 0x08, 0x2fc: 0x08, 0x2fd: 0x08, 0x2fe: 0x08, 0x2ff: 0x08, - // Block 0xc, offset 0x300 - 0x300: 0x08, 0x301: 0x08, 0x302: 0x08, 0x303: 0x08, 0x304: 0x08, 0x305: 0x08, 0x306: 0x08, 0x307: 0x08, - 0x308: 0x08, 0x309: 0x08, 0x30a: 0x08, 0x30b: 0x08, 0x30c: 0x08, 0x30d: 0x08, 0x30e: 0x08, 0x30f: 0x08, - 0x310: 0x08, 0x311: 0x08, 0x312: 0x08, 0x313: 0x08, 0x314: 0x08, 0x315: 0x08, 0x316: 0x08, 0x317: 0x08, - 0x318: 0x08, 0x319: 0x08, 0x31a: 0x08, 0x31b: 0x08, 0x31c: 0x08, 0x31d: 0x08, 0x31e: 0x08, 0x31f: 0x08, - 0x320: 0x08, 0x321: 0x08, 0x322: 0x08, 0x323: 0x08, 0x324: 0x0e, 0x325: 0x0e, 0x326: 0x0e, 0x327: 0x0e, - 0x328: 0x0e, 0x329: 0x0e, 0x32a: 0x0e, 0x32b: 0x0e, - 0x338: 0x3f, 0x339: 0x40, 0x33c: 0x41, 0x33d: 0x42, 0x33e: 0x43, 0x33f: 0x44, - // Block 0xd, offset 0x340 - 0x37f: 0x45, - // Block 0xe, offset 0x380 - 0x380: 0x0e, 0x381: 0x0e, 0x382: 0x0e, 0x383: 0x0e, 0x384: 0x0e, 0x385: 0x0e, 0x386: 0x0e, 0x387: 0x0e, - 0x388: 0x0e, 0x389: 0x0e, 0x38a: 0x0e, 0x38b: 0x0e, 0x38c: 0x0e, 0x38d: 0x0e, 0x38e: 0x0e, 0x38f: 0x0e, - 0x390: 0x0e, 0x391: 0x0e, 0x392: 0x0e, 0x393: 0x0e, 0x394: 0x0e, 0x395: 0x0e, 0x396: 0x0e, 0x397: 0x0e, - 0x398: 0x0e, 0x399: 0x0e, 0x39a: 0x0e, 0x39b: 0x0e, 0x39c: 0x0e, 0x39d: 0x0e, 0x39e: 0x0e, 0x39f: 0x46, - 0x3a0: 0x0e, 0x3a1: 0x0e, 0x3a2: 0x0e, 0x3a3: 0x0e, 0x3a4: 0x0e, 0x3a5: 0x0e, 0x3a6: 0x0e, 0x3a7: 0x0e, - 0x3a8: 0x0e, 0x3a9: 0x0e, 0x3aa: 0x0e, 0x3ab: 0x47, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x0e, 0x3c1: 0x0e, 0x3c2: 0x0e, 0x3c3: 0x0e, 0x3c4: 0x48, 0x3c5: 0x49, 0x3c6: 0x0e, 0x3c7: 0x0e, - 0x3c8: 0x0e, 0x3c9: 0x0e, 0x3ca: 0x0e, 0x3cb: 0x4a, - // Block 0x10, offset 0x400 - 0x400: 0x4b, 0x403: 0x4c, 0x404: 0x4d, 0x405: 0x4e, 0x406: 0x4f, - 0x408: 0x50, 0x409: 0x51, 0x40c: 0x52, 0x40d: 0x53, 0x40e: 0x54, 0x40f: 0x55, - 0x410: 0x3a, 0x411: 0x56, 0x412: 0x0e, 0x413: 0x57, 0x414: 0x58, 0x415: 0x59, 0x416: 0x5a, 0x417: 0x5b, - 0x418: 0x0e, 0x419: 0x5c, 0x41a: 0x0e, 0x41b: 0x5d, - 0x424: 0x5e, 0x425: 0x5f, 0x426: 0x60, 0x427: 0x61, - // Block 0x11, offset 0x440 - 0x456: 0x0b, 0x457: 0x06, - 0x458: 0x0c, 0x45b: 0x0d, 0x45f: 0x0e, - 0x460: 0x06, 0x461: 0x06, 0x462: 0x06, 0x463: 0x06, 0x464: 0x06, 0x465: 0x06, 0x466: 0x06, 0x467: 0x06, - 0x468: 0x06, 0x469: 0x06, 0x46a: 0x06, 0x46b: 0x06, 0x46c: 0x06, 0x46d: 0x06, 0x46e: 0x06, 0x46f: 0x06, - 0x470: 0x06, 0x471: 0x06, 0x472: 0x06, 0x473: 0x06, 0x474: 0x06, 0x475: 0x06, 0x476: 0x06, 0x477: 0x06, - 0x478: 0x06, 0x479: 0x06, 0x47a: 0x06, 0x47b: 0x06, 0x47c: 0x06, 0x47d: 0x06, 0x47e: 0x06, 0x47f: 0x06, - // Block 0x12, offset 0x480 - 0x484: 0x08, 0x485: 0x08, 0x486: 0x08, 0x487: 0x09, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x08, 0x4c1: 0x08, 0x4c2: 0x08, 0x4c3: 0x08, 0x4c4: 0x08, 0x4c5: 0x08, 0x4c6: 0x08, 0x4c7: 0x08, - 0x4c8: 0x08, 0x4c9: 0x08, 0x4ca: 0x08, 0x4cb: 0x08, 0x4cc: 0x08, 0x4cd: 0x08, 0x4ce: 0x08, 0x4cf: 0x08, - 0x4d0: 0x08, 0x4d1: 0x08, 0x4d2: 0x08, 0x4d3: 0x08, 0x4d4: 0x08, 0x4d5: 0x08, 0x4d6: 0x08, 0x4d7: 0x08, - 0x4d8: 0x08, 0x4d9: 0x08, 0x4da: 0x08, 0x4db: 0x08, 0x4dc: 0x08, 0x4dd: 0x08, 0x4de: 0x08, 0x4df: 0x08, - 0x4e0: 0x08, 0x4e1: 0x08, 0x4e2: 0x08, 0x4e3: 0x08, 0x4e4: 0x08, 0x4e5: 0x08, 0x4e6: 0x08, 0x4e7: 0x08, - 0x4e8: 0x08, 0x4e9: 0x08, 0x4ea: 0x08, 0x4eb: 0x08, 0x4ec: 0x08, 0x4ed: 0x08, 0x4ee: 0x08, 0x4ef: 0x08, - 0x4f0: 0x08, 0x4f1: 0x08, 0x4f2: 0x08, 0x4f3: 0x08, 0x4f4: 0x08, 0x4f5: 0x08, 0x4f6: 0x08, 0x4f7: 0x08, - 0x4f8: 0x08, 0x4f9: 0x08, 0x4fa: 0x08, 0x4fb: 0x08, 0x4fc: 0x08, 0x4fd: 0x08, 0x4fe: 0x08, 0x4ff: 0x62, - // Block 0x14, offset 0x500 - 0x520: 0x10, - 0x530: 0x09, 0x531: 0x09, 0x532: 0x09, 0x533: 0x09, 0x534: 0x09, 0x535: 0x09, 0x536: 0x09, 0x537: 0x09, - 0x538: 0x09, 0x539: 0x09, 0x53a: 0x09, 0x53b: 0x09, 0x53c: 0x09, 0x53d: 0x09, 0x53e: 0x09, 0x53f: 0x11, - // Block 0x15, offset 0x540 - 0x540: 0x09, 0x541: 0x09, 0x542: 0x09, 0x543: 0x09, 0x544: 0x09, 0x545: 0x09, 0x546: 0x09, 0x547: 0x09, - 0x548: 0x09, 0x549: 0x09, 0x54a: 0x09, 0x54b: 0x09, 0x54c: 0x09, 0x54d: 0x09, 0x54e: 0x09, 0x54f: 0x11, -} - -// 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 -> A (U+FF21 -> U+0041) -// B -> 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. -var inverseData = [150][4]byte{ - {0x00, 0x00, 0x00, 0x00}, - {0x03, 0xe3, 0x80, 0xa0}, - {0x03, 0xef, 0xbc, 0xa0}, - {0x03, 0xef, 0xbc, 0xe0}, - {0x03, 0xef, 0xbd, 0xe0}, - {0x03, 0xef, 0xbf, 0x02}, - {0x03, 0xef, 0xbf, 0x00}, - {0x03, 0xef, 0xbf, 0x0e}, - {0x03, 0xef, 0xbf, 0x0c}, - {0x03, 0xef, 0xbf, 0x0f}, - {0x03, 0xef, 0xbf, 0x39}, - {0x03, 0xef, 0xbf, 0x3b}, - {0x03, 0xef, 0xbf, 0x3f}, - {0x03, 0xef, 0xbf, 0x2a}, - {0x03, 0xef, 0xbf, 0x0d}, - {0x03, 0xef, 0xbf, 0x25}, - {0x03, 0xef, 0xbd, 0x1a}, - {0x03, 0xef, 0xbd, 0x26}, - {0x01, 0xa0, 0x00, 0x00}, - {0x03, 0xef, 0xbd, 0x25}, - {0x03, 0xef, 0xbd, 0x23}, - {0x03, 0xef, 0xbd, 0x2e}, - {0x03, 0xef, 0xbe, 0x07}, - {0x03, 0xef, 0xbe, 0x05}, - {0x03, 0xef, 0xbd, 0x06}, - {0x03, 0xef, 0xbd, 0x13}, - {0x03, 0xef, 0xbd, 0x0b}, - {0x03, 0xef, 0xbd, 0x16}, - {0x03, 0xef, 0xbd, 0x0c}, - {0x03, 0xef, 0xbd, 0x15}, - {0x03, 0xef, 0xbd, 0x0d}, - {0x03, 0xef, 0xbd, 0x1c}, - {0x03, 0xef, 0xbd, 0x02}, - {0x03, 0xef, 0xbd, 0x1f}, - {0x03, 0xef, 0xbd, 0x1d}, - {0x03, 0xef, 0xbd, 0x17}, - {0x03, 0xef, 0xbd, 0x08}, - {0x03, 0xef, 0xbd, 0x09}, - {0x03, 0xef, 0xbd, 0x0e}, - {0x03, 0xef, 0xbd, 0x04}, - {0x03, 0xef, 0xbd, 0x05}, - {0x03, 0xef, 0xbe, 0x3f}, - {0x03, 0xef, 0xbe, 0x00}, - {0x03, 0xef, 0xbd, 0x2c}, - {0x03, 0xef, 0xbe, 0x06}, - {0x03, 0xef, 0xbe, 0x0c}, - {0x03, 0xef, 0xbe, 0x0f}, - {0x03, 0xef, 0xbe, 0x0d}, - {0x03, 0xef, 0xbe, 0x0b}, - {0x03, 0xef, 0xbe, 0x19}, - {0x03, 0xef, 0xbe, 0x15}, - {0x03, 0xef, 0xbe, 0x11}, - {0x03, 0xef, 0xbe, 0x31}, - {0x03, 0xef, 0xbe, 0x33}, - {0x03, 0xef, 0xbd, 0x0f}, - {0x03, 0xef, 0xbe, 0x30}, - {0x03, 0xef, 0xbe, 0x3e}, - {0x03, 0xef, 0xbe, 0x32}, - {0x03, 0xef, 0xbe, 0x36}, - {0x03, 0xef, 0xbd, 0x14}, - {0x03, 0xef, 0xbe, 0x2e}, - {0x03, 0xef, 0xbd, 0x1e}, - {0x03, 0xef, 0xbe, 0x10}, - {0x03, 0xef, 0xbf, 0x13}, - {0x03, 0xef, 0xbf, 0x15}, - {0x03, 0xef, 0xbf, 0x17}, - {0x03, 0xef, 0xbf, 0x1f}, - {0x03, 0xef, 0xbf, 0x1d}, - {0x03, 0xef, 0xbf, 0x1b}, - {0x03, 0xef, 0xbf, 0x09}, - {0x03, 0xef, 0xbf, 0x0b}, - {0x03, 0xef, 0xbf, 0x37}, - {0x03, 0xef, 0xbe, 0x04}, - {0x01, 0xe0, 0x00, 0x00}, - {0x03, 0xe2, 0xa6, 0x1a}, - {0x03, 0xe2, 0xa6, 0x26}, - {0x03, 0xe3, 0x80, 0x23}, - {0x03, 0xe3, 0x80, 0x2e}, - {0x03, 0xe3, 0x80, 0x25}, - {0x03, 0xe3, 0x83, 0x1e}, - {0x03, 0xe3, 0x83, 0x14}, - {0x03, 0xe3, 0x82, 0x06}, - {0x03, 0xe3, 0x82, 0x0b}, - {0x03, 0xe3, 0x82, 0x0c}, - {0x03, 0xe3, 0x82, 0x0d}, - {0x03, 0xe3, 0x82, 0x02}, - {0x03, 0xe3, 0x83, 0x0f}, - {0x03, 0xe3, 0x83, 0x08}, - {0x03, 0xe3, 0x83, 0x09}, - {0x03, 0xe3, 0x83, 0x2c}, - {0x03, 0xe3, 0x83, 0x0c}, - {0x03, 0xe3, 0x82, 0x13}, - {0x03, 0xe3, 0x82, 0x16}, - {0x03, 0xe3, 0x82, 0x15}, - {0x03, 0xe3, 0x82, 0x1c}, - {0x03, 0xe3, 0x82, 0x1f}, - {0x03, 0xe3, 0x82, 0x1d}, - {0x03, 0xe3, 0x82, 0x1a}, - {0x03, 0xe3, 0x82, 0x17}, - {0x03, 0xe3, 0x82, 0x08}, - {0x03, 0xe3, 0x82, 0x09}, - {0x03, 0xe3, 0x82, 0x0e}, - {0x03, 0xe3, 0x82, 0x04}, - {0x03, 0xe3, 0x82, 0x05}, - {0x03, 0xe3, 0x82, 0x3f}, - {0x03, 0xe3, 0x83, 0x00}, - {0x03, 0xe3, 0x83, 0x06}, - {0x03, 0xe3, 0x83, 0x05}, - {0x03, 0xe3, 0x83, 0x0d}, - {0x03, 0xe3, 0x83, 0x0b}, - {0x03, 0xe3, 0x83, 0x07}, - {0x03, 0xe3, 0x83, 0x19}, - {0x03, 0xe3, 0x83, 0x15}, - {0x03, 0xe3, 0x83, 0x11}, - {0x03, 0xe3, 0x83, 0x31}, - {0x03, 0xe3, 0x83, 0x33}, - {0x03, 0xe3, 0x83, 0x30}, - {0x03, 0xe3, 0x83, 0x3e}, - {0x03, 0xe3, 0x83, 0x32}, - {0x03, 0xe3, 0x83, 0x36}, - {0x03, 0xe3, 0x83, 0x2e}, - {0x03, 0xe3, 0x82, 0x07}, - {0x03, 0xe3, 0x85, 0x04}, - {0x03, 0xe3, 0x84, 0x10}, - {0x03, 0xe3, 0x85, 0x30}, - {0x03, 0xe3, 0x85, 0x0d}, - {0x03, 0xe3, 0x85, 0x13}, - {0x03, 0xe3, 0x85, 0x15}, - {0x03, 0xe3, 0x85, 0x17}, - {0x03, 0xe3, 0x85, 0x1f}, - {0x03, 0xe3, 0x85, 0x1d}, - {0x03, 0xe3, 0x85, 0x1b}, - {0x03, 0xe3, 0x85, 0x09}, - {0x03, 0xe3, 0x85, 0x0f}, - {0x03, 0xe3, 0x85, 0x0b}, - {0x03, 0xe3, 0x85, 0x37}, - {0x03, 0xe3, 0x85, 0x3b}, - {0x03, 0xe3, 0x85, 0x39}, - {0x03, 0xe3, 0x85, 0x3f}, - {0x02, 0xc2, 0x02, 0x00}, - {0x02, 0xc2, 0x0e, 0x00}, - {0x02, 0xc2, 0x0c, 0x00}, - {0x02, 0xc2, 0x00, 0x00}, - {0x03, 0xe2, 0x82, 0x0f}, - {0x03, 0xe2, 0x94, 0x2a}, - {0x03, 0xe2, 0x86, 0x39}, - {0x03, 0xe2, 0x86, 0x3b}, - {0x03, 0xe2, 0x86, 0x3f}, - {0x03, 0xe2, 0x96, 0x0d}, - {0x03, 0xe2, 0x97, 0x25}, -} - -// Total table size 14936 bytes (14KiB) diff --git a/vendor/golang.org/x/text/width/width.go b/vendor/golang.org/x/text/width/width.go index 29c7509be..f1639ca68 100644 --- a/vendor/golang.org/x/text/width/width.go +++ b/vendor/golang.org/x/text/width/width.go @@ -12,7 +12,7 @@ // are kept together in words or runs that are rotated sideways in vertical text // layout. // -// For more information, see https://unicode.org/reports/tr11/. +// For more information, see http://unicode.org/reports/tr11/. package width // import "golang.org/x/text/width" import ( @@ -27,7 +27,7 @@ import ( // (approximation, fixed pitch only). // 3) Implement display length. -// Kind indicates the type of width property as defined in https://unicode.org/reports/tr11/. +// Kind indicates the type of width property as defined in http://unicode.org/reports/tr11/. type Kind int const ( @@ -106,7 +106,7 @@ func (e elem) kind() Kind { } // Kind returns the Kind of a rune as defined in Unicode TR #11. -// See https://unicode.org/reports/tr11/ for more details. +// See http://unicode.org/reports/tr11/ for more details. func (p Properties) Kind() Kind { return p.elem.kind() } diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go index 22ff769ef..b696b6870 100644 --- a/vendor/golang.org/x/tools/go/packages/external.go +++ b/vendor/golang.org/x/tools/go/packages/external.go @@ -16,14 +16,29 @@ import ( "strings" ) -// Driver +// The Driver Protocol +// +// The driver, given the inputs to a call to Load, returns metadata about the packages specified. +// This allows for different build systems to support go/packages by telling go/packages how the +// packages' source is organized. +// The driver is a binary, either specified by the GOPACKAGESDRIVER environment variable or in +// the path as gopackagesdriver. It's given the inputs to load in its argv. See the package +// documentation in doc.go for the full description of the patterns that need to be supported. +// A driver receives as a JSON-serialized driverRequest struct in standard input and will +// produce a JSON-serialized driverResponse (see definition in packages.go) in its standard output. + +// driverRequest is used to provide the portion of Load's Config that is needed by a driver. type driverRequest struct { - Command string `json:"command"` - Mode LoadMode `json:"mode"` - Env []string `json:"env"` - BuildFlags []string `json:"build_flags"` - Tests bool `json:"tests"` - Overlay map[string][]byte `json:"overlay"` + Mode LoadMode `json:"mode"` + // Env specifies the environment the underlying build system should be run in. + Env []string `json:"env"` + // BuildFlags are flags that should be passed to the underlying build system. + BuildFlags []string `json:"build_flags"` + // Tests specifies whether the patterns should also return test packages. + Tests bool `json:"tests"` + // Overlay maps file paths (relative to the driver's working directory) to the byte contents + // of overlay files. + Overlay map[string][]byte `json:"overlay"` } // findExternalDriver returns the file path of a tool that supplies diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go index 72c0c5d63..00e21a755 100644 --- a/vendor/golang.org/x/tools/go/packages/golist.go +++ b/vendor/golang.org/x/tools/go/packages/golist.go @@ -158,7 +158,7 @@ extractQueries: } } - modifiedPkgs, needPkgs, err := processGolistOverlay(cfg, response.dr) + modifiedPkgs, needPkgs, err := processGolistOverlay(cfg, response) if err != nil { return nil, err } @@ -209,11 +209,13 @@ func addNeededOverlayPackages(cfg *Config, driver driver, response *responseDedu for _, pkg := range dr.Packages { response.addPackage(pkg) } - _, needPkgs, err := processGolistOverlay(cfg, response.dr) + _, needPkgs, err := processGolistOverlay(cfg, response) if err != nil { return err } - addNeededOverlayPackages(cfg, driver, response, needPkgs) + if err := addNeededOverlayPackages(cfg, driver, response, needPkgs); err != nil { + return err + } return nil } @@ -228,8 +230,16 @@ func runContainsQueries(cfg *Config, driver driver, response *responseDeduper, q return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) } dirResponse, err := driver(cfg, pattern) - if err != nil { - return err + if err != nil || (len(dirResponse.Packages) == 1 && len(dirResponse.Packages[0].Errors) == 1) { + // There was an error loading the package. Try to load the file as an ad-hoc package. + // Usually the error will appear in a returned package, but may not if we're in modules mode + // and the ad-hoc is located outside a module. + var queryErr error + dirResponse, queryErr = driver(cfg, query) + if queryErr != nil { + // Return the original error if the attempt to fall back failed. + return err + } } isRoot := make(map[string]bool, len(dirResponse.Roots)) for _, root := range dirResponse.Roots { @@ -693,7 +703,7 @@ func golistDriver(cfg *Config, words ...string) (*driverResponse, error) { if p.Error != nil { pkg.Errors = append(pkg.Errors, Error{ Pos: p.Error.Pos, - Msg: p.Error.Err, + Msg: strings.TrimSpace(p.Error.Err), // Trim to work around golang.org/issue/32363. }) } diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go index ce322ce5e..ffc7a367f 100644 --- a/vendor/golang.org/x/tools/go/packages/golist_overlay.go +++ b/vendor/golang.org/x/tools/go/packages/golist_overlay.go @@ -3,6 +3,7 @@ package packages import ( "bytes" "encoding/json" + "fmt" "go/parser" "go/token" "path" @@ -16,16 +17,13 @@ import ( // files that don't exist on disk to an overlay. The results can be // sometimes incorrect. // TODO(matloob): Handle unsupported cases, including the following: -// - test files -// - adding test and non-test files to test variants of packages // - determining the correct package to add given a new import path -// - creating packages that don't exist -func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, needPkgs []string, err error) { +func processGolistOverlay(cfg *Config, response *responseDeduper) (modifiedPkgs, needPkgs []string, err error) { havePkgs := make(map[string]string) // importPath -> non-test package ID needPkgsSet := make(map[string]bool) modifiedPkgsSet := make(map[string]bool) - for _, pkg := range response.Packages { + for _, pkg := range response.dr.Packages { // This is an approximation of import path to id. This can be // wrong for tests, vendored packages, and a number of other cases. havePkgs[pkg.PkgPath] = pkg.ID @@ -34,21 +32,42 @@ func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, var rootDirs map[string]string var onceGetRootDirs sync.Once + // If no new imports are added, it is safe to avoid loading any needPkgs. + // Otherwise, it's hard to tell which package is actually being loaded + // (due to vendoring) and whether any modified package will show up + // in the transitive set of dependencies (because new imports are added, + // potentially modifying the transitive set of dependencies). + var overlayAddsImports bool + for opath, contents := range cfg.Overlay { base := filepath.Base(opath) - if strings.HasSuffix(opath, "_test.go") { - // Overlays don't support adding new test files yet. - // TODO(matloob): support adding new test files. - continue - } dir := filepath.Dir(opath) var pkg *Package + var testVariantOf *Package // if opath is a test file, this is the package it is testing var fileExists bool - for _, p := range response.Packages { + isTest := strings.HasSuffix(opath, "_test.go") + pkgName, ok := extractPackageName(opath, contents) + if !ok { + // Don't bother adding a file that doesn't even have a parsable package statement + // to the overlay. + continue + } + nextPackage: + for _, p := range response.dr.Packages { + if pkgName != p.Name { + continue + } for _, f := range p.GoFiles { if !sameFile(filepath.Dir(f), dir) { continue } + if isTest && !hasTestFiles(p) { + // TODO(matloob): Are there packages other than the 'production' variant + // of a package that this can match? This shouldn't match the test main package + // because the file is generated in another directory. + testVariantOf = p + continue nextPackage + } pkg = p if filepath.Base(f) == base { fileExists = true @@ -82,13 +101,16 @@ func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, if pkgPath == "" { continue } - pkgName, ok := extractPackageName(opath, contents) - if !ok { - continue + isXTest := strings.HasSuffix(pkgName, "_test") + if isXTest { + pkgPath += "_test" } id := pkgPath + if isTest && !isXTest { + id = fmt.Sprintf("%s [%s.test]", pkgPath, pkgPath) + } // Try to reclaim a package with the same id if it exists in the response. - for _, p := range response.Packages { + for _, p := range response.dr.Packages { if reclaimPackage(p, id, opath, contents) { pkg = p break @@ -97,9 +119,13 @@ func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, // Otherwise, create a new package if pkg == nil { pkg = &Package{PkgPath: pkgPath, ID: id, Name: pkgName, Imports: make(map[string]*Package)} - // TODO(matloob): Is it okay to amend response.Packages this way? - response.Packages = append(response.Packages, pkg) + response.addPackage(pkg) havePkgs[pkg.PkgPath] = id + // Add the production package's sources for a test variant. + if isTest && !isXTest && testVariantOf != nil { + pkg.GoFiles = append(pkg.GoFiles, testVariantOf.GoFiles...) + pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, testVariantOf.CompiledGoFiles...) + } } } if !fileExists { @@ -117,6 +143,7 @@ func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, for _, imp := range imports { _, found := pkg.Imports[imp] if !found { + overlayAddsImports = true // TODO(matloob): Handle cases when the following block isn't correct. // These include imports of test variants, imports of vendored packages, etc. id, ok := havePkgs[imp] @@ -143,7 +170,7 @@ func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, // Do another pass now that new packages have been created to determine the // set of missing packages. - for _, pkg := range response.Packages { + for _, pkg := range response.dr.Packages { for _, imp := range pkg.Imports { pkgPath := toPkgPath(imp.ID) if _, ok := havePkgs[pkgPath]; !ok { @@ -152,9 +179,11 @@ func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, } } - needPkgs = make([]string, 0, len(needPkgsSet)) - for pkg := range needPkgsSet { - needPkgs = append(needPkgs, pkg) + if overlayAddsImports { + needPkgs = make([]string, 0, len(needPkgsSet)) + for pkg := range needPkgsSet { + needPkgs = append(needPkgs, pkg) + } } modifiedPkgs = make([]string, 0, len(modifiedPkgsSet)) for pkg := range modifiedPkgsSet { @@ -163,6 +192,15 @@ func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, return modifiedPkgs, needPkgs, err } +func hasTestFiles(p *Package) bool { + for _, f := range p.GoFiles { + if strings.HasSuffix(f, "_test.go") { + return true + } + } + return false +} + // determineRootDirs returns a mapping from directories code can be contained in to the // corresponding import path prefixes of those directories. // Its result is used to try to determine the import path for a package containing diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go index cd151469a..f20e444f4 100644 --- a/vendor/golang.org/x/tools/go/packages/packages.go +++ b/vendor/golang.org/x/tools/go/packages/packages.go @@ -527,28 +527,32 @@ func (ld *loader) refine(roots []string, list ...*Package) ([]*Package, error) { lpkg.color = grey stack = append(stack, lpkg) // push stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports - lpkg.Imports = make(map[string]*Package, len(stubs)) - for importPath, ipkg := range stubs { - var importErr error - imp := ld.pkgs[ipkg.ID] - if imp == nil { - // (includes package "C" when DisableCgo) - importErr = fmt.Errorf("missing package: %q", ipkg.ID) - } else if imp.color == grey { - importErr = fmt.Errorf("import cycle: %s", stack) - } - if importErr != nil { - if lpkg.importErrors == nil { - lpkg.importErrors = make(map[string]error) + // If NeedImports isn't set, the imports fields will all be zeroed out. + // If NeedDeps isn't also set we want to keep the stubs. + if ld.Mode&NeedImports != 0 && ld.Mode&NeedDeps != 0 { + lpkg.Imports = make(map[string]*Package, len(stubs)) + for importPath, ipkg := range stubs { + var importErr error + imp := ld.pkgs[ipkg.ID] + if imp == nil { + // (includes package "C" when DisableCgo) + importErr = fmt.Errorf("missing package: %q", ipkg.ID) + } else if imp.color == grey { + importErr = fmt.Errorf("import cycle: %s", stack) + } + if importErr != nil { + if lpkg.importErrors == nil { + lpkg.importErrors = make(map[string]error) + } + lpkg.importErrors[importPath] = importErr + continue } - lpkg.importErrors[importPath] = importErr - continue - } - if visit(imp) { - lpkg.needsrc = true + if visit(imp) { + lpkg.needsrc = true + } + lpkg.Imports[importPath] = imp.Package } - lpkg.Imports[importPath] = imp.Package } if lpkg.needsrc { srcPkgs = append(srcPkgs, lpkg) diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index d9ba3b786..2c58d18be 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -13,7 +13,6 @@ import ( "go/parser" "go/token" "io/ioutil" - "log" "os" "os/exec" "path" @@ -68,6 +67,19 @@ func importGroup(env *ProcessEnv, importPath string) int { return 0 } +type importFixType int + +const ( + addImport importFixType = iota + deleteImport + setImportName +) + +type importFix struct { + info importInfo + fixType importFixType +} + // An importInfo represents a single import statement. type importInfo struct { importPath string // import path, e.g. "crypto/rand". @@ -246,6 +258,12 @@ type pass struct { // loadPackageNames saves the package names for everything referenced by imports. func (p *pass) loadPackageNames(imports []*importInfo) error { + if p.env.Debug { + p.env.Logf("loading package names for %v packages", len(imports)) + defer func() { + p.env.Logf("done loading package names for %v packages", len(imports)) + }() + } var unknown []string for _, imp := range imports { if _, ok := p.knownPackages[imp.importPath]; ok { @@ -285,7 +303,7 @@ func (p *pass) importIdentifier(imp *importInfo) string { // load reads in everything necessary to run a pass, and reports whether the // file already has all the imports it needs. It fills in p.missingRefs with the // file's missing symbols, if any, or removes unused imports if not. -func (p *pass) load() bool { +func (p *pass) load() ([]*importFix, bool) { p.knownPackages = map[string]*packageInfo{} p.missingRefs = references{} p.existingImports = map[string]*importInfo{} @@ -313,9 +331,9 @@ func (p *pass) load() bool { err := p.loadPackageNames(append(imports, p.candidates...)) if err != nil { if p.env.Debug { - log.Printf("loading package names: %v", err) + p.env.Logf("loading package names: %v", err) } - return false + return nil, false } } for _, imp := range imports { @@ -334,16 +352,16 @@ func (p *pass) load() bool { } } if len(p.missingRefs) != 0 { - return false + return nil, false } return p.fix() } // fix attempts to satisfy missing imports using p.candidates. If it finds -// everything, or if p.lastTry is true, it adds the imports it found, -// removes anything unused, and returns true. -func (p *pass) fix() bool { +// everything, or if p.lastTry is true, it updates fixes to add the imports it found, +// delete anything unused, and update import names, and returns true. +func (p *pass) fix() ([]*importFix, bool) { // Find missing imports. var selected []*importInfo for left, rights := range p.missingRefs { @@ -353,10 +371,11 @@ func (p *pass) fix() bool { } if !p.lastTry && len(selected) != len(p.missingRefs) { - return false + return nil, false } // Found everything, or giving up. Add the new imports and remove any unused. + var fixes []*importFix for _, imp := range p.existingImports { // We deliberately ignore globals here, because we can't be sure // they're in the same package. People do things like put multiple @@ -364,27 +383,77 @@ func (p *pass) fix() bool { // remove imports if they happen to have the same name as a var in // a different package. if _, ok := p.allRefs[p.importIdentifier(imp)]; !ok { - astutil.DeleteNamedImport(p.fset, p.f, imp.name, imp.importPath) + fixes = append(fixes, &importFix{ + info: *imp, + fixType: deleteImport, + }) + continue + } + + // An existing import may need to update its import name to be correct. + if name := p.importSpecName(imp); name != imp.name { + fixes = append(fixes, &importFix{ + info: importInfo{ + name: name, + importPath: imp.importPath, + }, + fixType: setImportName, + }) } } for _, imp := range selected { - astutil.AddNamedImport(p.fset, p.f, imp.name, imp.importPath) + fixes = append(fixes, &importFix{ + info: importInfo{ + name: p.importSpecName(imp), + importPath: imp.importPath, + }, + fixType: addImport, + }) } - if p.loadRealPackageNames { - for _, imp := range p.f.Imports { - if imp.Name != nil { - continue - } - path := strings.Trim(imp.Path.Value, `""`) - ident := p.importIdentifier(&importInfo{importPath: path}) - if ident != importPathToAssumedName(path) { - imp.Name = &ast.Ident{Name: ident, NamePos: imp.Pos()} + return fixes, true +} + +// importSpecName gets the import name of imp in the import spec. +// +// When the import identifier matches the assumed import name, the import name does +// not appear in the import spec. +func (p *pass) importSpecName(imp *importInfo) string { + // If we did not load the real package names, or the name is already set, + // we just return the existing name. + if !p.loadRealPackageNames || imp.name != "" { + return imp.name + } + + ident := p.importIdentifier(imp) + if ident == importPathToAssumedName(imp.importPath) { + return "" // ident not needed since the assumed and real names are the same. + } + return ident +} + +// apply will perform the fixes on f in order. +func apply(fset *token.FileSet, f *ast.File, fixes []*importFix) bool { + for _, fix := range fixes { + switch fix.fixType { + case deleteImport: + astutil.DeleteNamedImport(fset, f, fix.info.name, fix.info.importPath) + case addImport: + astutil.AddNamedImport(fset, f, fix.info.name, fix.info.importPath) + case setImportName: + // Find the matching import path and change the name. + for _, spec := range f.Imports { + path := strings.Trim(spec.Path.Value, `""`) + if path == fix.info.importPath { + spec.Name = &ast.Ident{ + Name: fix.info.name, + NamePos: spec.Pos(), + } + } } } } - return true } @@ -437,13 +506,24 @@ func (p *pass) addCandidate(imp *importInfo, pkg *packageInfo) { var fixImports = fixImportsDefault func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error { - abs, err := filepath.Abs(filename) + fixes, err := getFixes(fset, f, filename, env) if err != nil { return err } + apply(fset, f, fixes) + return err +} + +// getFixes gets the getFixes that need to be made to f in order to fix the imports. +// It does not modify the ast. +func getFixes(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) ([]*importFix, error) { + abs, err := filepath.Abs(filename) + if err != nil { + return nil, err + } srcDir := filepath.Dir(abs) if env.Debug { - log.Printf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir) + env.Logf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir) } // First pass: looking only at f, and using the naive algorithm to @@ -451,8 +531,8 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *P // complete. We can't add any imports yet, because we don't know // if missing references are actually package vars. p := &pass{fset: fset, f: f, srcDir: srcDir} - if p.load() { - return nil + if fixes, done := p.load(); done { + return fixes, nil } otherFiles := parseOtherFiles(fset, srcDir, filename) @@ -460,15 +540,15 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *P // Second pass: add information from other files in the same package, // like their package vars and imports. p.otherFiles = otherFiles - if p.load() { - return nil + if fixes, done := p.load(); done { + return fixes, nil } // Now we can try adding imports from the stdlib. p.assumeSiblingImportsValid() addStdlibCandidates(p, p.missingRefs) - if p.fix() { - return nil + if fixes, done := p.fix(); done { + return fixes, nil } // Third pass: get real package names where we had previously used @@ -477,25 +557,25 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *P p = &pass{fset: fset, f: f, srcDir: srcDir, env: env} p.loadRealPackageNames = true p.otherFiles = otherFiles - if p.load() { - return nil + if fixes, done := p.load(); done { + return fixes, nil } addStdlibCandidates(p, p.missingRefs) p.assumeSiblingImportsValid() - if p.fix() { - return nil + if fixes, done := p.fix(); done { + return fixes, nil } // Go look for candidates in $GOPATH, etc. We don't necessarily load // the real exports of sibling imports, so keep assuming their contents. if err := addExternalCandidates(p, p.missingRefs, filename); err != nil { - return err + return nil, err } p.lastTry = true - p.fix() - return nil + fixes, _ := p.fix() + return fixes, nil } // ProcessEnv contains environment variables and settings that affect the use of @@ -512,6 +592,9 @@ type ProcessEnv struct { // If true, use go/packages regardless of the environment. ForceGoPackages bool + // Logf is the default logger for the ProcessEnv. + Logf func(format string, args ...interface{}) + resolver resolver } @@ -577,7 +660,7 @@ func (e *ProcessEnv) invokeGo(args ...string) (*bytes.Buffer, error) { cmd.Dir = e.WorkingDir if e.Debug { - defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now()) + defer func(start time.Time) { e.Logf("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now()) } if err := cmd.Run(); err != nil { return nil, fmt.Errorf("running go: %v (stderr:\n%s)", err, stderr) @@ -943,7 +1026,7 @@ func VendorlessPath(ipath string) string { // It returns nil on error or if the package name in dir does not match expectPackage. func loadExports(ctx context.Context, env *ProcessEnv, expectPackage string, pkg *pkg) (map[string]bool, error) { if env.Debug { - log.Printf("loading exports in dir %s (seeking package %s)", pkg.dir, expectPackage) + env.Logf("loading exports in dir %s (seeking package %s)", pkg.dir, expectPackage) } if pkg.goPackage != nil { exports := map[string]bool{} @@ -1021,7 +1104,7 @@ func loadExports(ctx context.Context, env *ProcessEnv, expectPackage string, pkg exportList = append(exportList, k) } sort.Strings(exportList) - log.Printf("loaded exports in dir %v (package %v): %v", pkg.dir, expectPackage, strings.Join(exportList, ", ")) + env.Logf("loaded exports in dir %v (package %v): %v", pkg.dir, expectPackage, strings.Join(exportList, ", ")) } return exports, nil } @@ -1058,7 +1141,7 @@ func findImport(ctx context.Context, pass *pass, dirScan []*pkg, pkgName string, sort.Sort(byDistanceOrImportPathShortLength(candidates)) if pass.env.Debug { for i, c := range candidates { - log.Printf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir) + pass.env.Logf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir) } } @@ -1098,7 +1181,7 @@ func findImport(ctx context.Context, pass *pass, dirScan []*pkg, pkgName string, exports, err := loadExports(ctx, pass.env, pkgName, c.pkg) if err != nil { if pass.env.Debug { - log.Printf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err) + pass.env.Logf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err) } resc <- nil return diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go index 625333760..a47a815f5 100644 --- a/vendor/golang.org/x/tools/internal/imports/imports.go +++ b/vendor/golang.org/x/tools/internal/imports/imports.go @@ -19,6 +19,7 @@ import ( "go/token" "io" "io/ioutil" + "log" "regexp" "strconv" "strings" @@ -50,6 +51,11 @@ func Process(filename string, src []byte, opt *Options) ([]byte, error) { src = b } + // Set the logger if the user has not provided it. + if opt.Env.Logf == nil { + opt.Env.Logf = log.Printf + } + fileSet := token.NewFileSet() file, adjust, err := parse(fileSet, filename, src, opt) if err != nil { diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go index a072214ee..a0ebd0737 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -4,7 +4,6 @@ import ( "bytes" "encoding/json" "io/ioutil" - "log" "os" "path" "path/filepath" @@ -63,7 +62,7 @@ func (r *moduleResolver) init() error { } if mod.Dir == "" { if r.env.Debug { - log.Printf("module %v has not been downloaded and will be ignored", mod.Path) + r.env.Logf("module %v has not been downloaded and will be ignored", mod.Path) } // Can't do anything with a module that's not downloaded. continue @@ -254,7 +253,7 @@ func (r *moduleResolver) scan(_ references) ([]*pkg, error) { modPath, err := module.DecodePath(filepath.ToSlash(matches[1])) if err != nil { if r.env.Debug { - log.Printf("decoding module cache path %q: %v", subdir, err) + r.env.Logf("decoding module cache path %q: %v", subdir, err) } return } diff --git a/vendor/modules.txt b/vendor/modules.txt index 9c668b532..acd621a38 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -24,7 +24,7 @@ github.com/Microsoft/go-winio github.com/NYTimes/gziphandler # github.com/PuerkitoBio/goquery v1.5.0 github.com/PuerkitoBio/goquery -# github.com/PuerkitoBio/purell v1.1.1 +# github.com/PuerkitoBio/purell v1.1.0 github.com/PuerkitoBio/purell # github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 github.com/PuerkitoBio/urlesc @@ -152,13 +152,13 @@ github.com/go-ldap/ldap github.com/go-logr/logr # github.com/go-logr/zapr v0.1.1 github.com/go-logr/zapr -# github.com/go-openapi/jsonpointer v0.19.2 +# github.com/go-openapi/jsonpointer v0.19.0 github.com/go-openapi/jsonpointer -# github.com/go-openapi/jsonreference v0.19.2 +# github.com/go-openapi/jsonreference v0.19.0 github.com/go-openapi/jsonreference -# github.com/go-openapi/spec v0.19.2 +# github.com/go-openapi/spec v0.19.0 github.com/go-openapi/spec -# github.com/go-openapi/swag v0.19.2 +# github.com/go-openapi/swag v0.19.0 github.com/go-openapi/swag # github.com/go-playground/locales v0.12.1 github.com/go-playground/locales @@ -180,7 +180,7 @@ github.com/gobuffalo/flect # github.com/gocraft/dbr v0.0.0-20180507214907-a0fd650918f6 github.com/gocraft/dbr github.com/gocraft/dbr/dialect -# github.com/gogo/protobuf v1.1.1 +# github.com/gogo/protobuf v1.2.0 github.com/gogo/protobuf/proto github.com/gogo/protobuf/sortkeys github.com/gogo/protobuf/gogoproto @@ -324,7 +324,7 @@ github.com/kubernetes-sigs/application/pkg/resource github.com/kubernetes-sigs/application/pkg/genericreconciler github.com/kubernetes-sigs/application/pkg/kbcontroller github.com/kubernetes-sigs/application/pkg/client/clientset/versioned/scheme -# github.com/kubesphere/s2ioperator v0.0.12 +# github.com/kubesphere/s2ioperator v0.0.13 github.com/kubesphere/s2ioperator/pkg/client/informers/externalversions github.com/kubesphere/s2ioperator/pkg/apis/devops/v1alpha1 github.com/kubesphere/s2ioperator/pkg/client/clientset/versioned @@ -349,7 +349,7 @@ github.com/lucas-clemente/quic-go/internal/congestion github.com/lucas-clemente/quic-go/internal/flowcontrol github.com/lucas-clemente/quic-go/internal/handshake github.com/lucas-clemente/quic-go/internal/wire -# github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 +# github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 github.com/mailru/easyjson/jlexer github.com/mailru/easyjson/jwriter github.com/mailru/easyjson/buffer @@ -404,7 +404,7 @@ github.com/miekg/dns github.com/mitchellh/go-homedir # github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd github.com/modern-go/concurrent -# github.com/modern-go/reflect2 v1.0.1 +# github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 github.com/modern-go/reflect2 # github.com/naoina/go-stringutil v0.1.0 github.com/naoina/go-stringutil @@ -470,11 +470,14 @@ github.com/projectcalico/go-yaml # github.com/projectcalico/go-yaml-wrapper v0.0.0-20161127220527-598e54215bee github.com/projectcalico/go-yaml-wrapper # github.com/projectcalico/libcalico-go v0.0.0-20190708183129-ac36d966132f -github.com/projectcalico/libcalico-go/lib/apiconfig -github.com/projectcalico/libcalico-go/lib/clientv3 github.com/projectcalico/libcalico-go/lib/apis/v3 +github.com/projectcalico/libcalico-go/lib/clientv3 github.com/projectcalico/libcalico-go/lib/errors github.com/projectcalico/libcalico-go/lib/options +github.com/projectcalico/libcalico-go/lib/apiconfig +github.com/projectcalico/libcalico-go/lib/numorstring +github.com/projectcalico/libcalico-go/lib/apis/v1 +github.com/projectcalico/libcalico-go/lib/selector github.com/projectcalico/libcalico-go/lib/backend github.com/projectcalico/libcalico-go/lib/backend/api github.com/projectcalico/libcalico-go/lib/backend/model @@ -485,19 +488,16 @@ github.com/projectcalico/libcalico-go/lib/net github.com/projectcalico/libcalico-go/lib/set github.com/projectcalico/libcalico-go/lib/validator/v3 github.com/projectcalico/libcalico-go/lib/watch -github.com/projectcalico/libcalico-go/lib/numorstring -github.com/projectcalico/libcalico-go/lib/apis/v1 -github.com/projectcalico/libcalico-go/lib/selector -github.com/projectcalico/libcalico-go/lib/backend/etcdv3 -github.com/projectcalico/libcalico-go/lib/backend/k8s -github.com/projectcalico/libcalico-go/lib/backend/encap github.com/projectcalico/libcalico-go/lib/apis/v1/unversioned +github.com/projectcalico/libcalico-go/lib/backend/encap github.com/projectcalico/libcalico-go/lib/scope github.com/projectcalico/libcalico-go/lib/selector/parser -github.com/projectcalico/libcalico-go/lib/backend/k8s/conversion -github.com/projectcalico/libcalico-go/lib/backend/k8s/resources +github.com/projectcalico/libcalico-go/lib/backend/etcdv3 +github.com/projectcalico/libcalico-go/lib/backend/k8s github.com/projectcalico/libcalico-go/lib/hash github.com/projectcalico/libcalico-go/lib/selector/tokenizer +github.com/projectcalico/libcalico-go/lib/backend/k8s/conversion +github.com/projectcalico/libcalico-go/lib/backend/k8s/resources # github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829 github.com/prometheus/client_golang/prometheus/promhttp github.com/prometheus/client_golang/api @@ -538,7 +538,7 @@ github.com/src-d/gcfg github.com/src-d/gcfg/scanner github.com/src-d/gcfg/token github.com/src-d/gcfg/types -# github.com/stretchr/objx v0.2.0 +# github.com/stretchr/objx v0.1.1 github.com/stretchr/objx # github.com/stretchr/testify v1.3.0 github.com/stretchr/testify/assert @@ -575,7 +575,7 @@ go.uber.org/zap/zapcore go.uber.org/zap/internal/bufferpool go.uber.org/zap/internal/color go.uber.org/zap/internal/exit -# golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 +# golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 golang.org/x/crypto/ssh/terminal golang.org/x/crypto/openpgp golang.org/x/crypto/ocsp @@ -599,7 +599,7 @@ golang.org/x/crypto/internal/subtle golang.org/x/crypto/cryptobyte/asn1 golang.org/x/crypto/ed25519/internal/edwards25519 golang.org/x/crypto/pbkdf2 -# golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 +# golang.org/x/net v0.0.0-20190620200207-3b0461eec859 golang.org/x/net/html golang.org/x/net/http2 golang.org/x/net/context @@ -627,13 +627,13 @@ golang.org/x/oauth2/jws golang.org/x/oauth2/jwt # golang.org/x/sync v0.0.0-20190423024810-112230192c58 golang.org/x/sync/semaphore -# golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862 +# golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e golang.org/x/sys/windows/svc/eventlog golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry golang.org/x/sys/cpu -# golang.org/x/text v0.3.2 +# golang.org/x/text v0.3.0 golang.org/x/text/secure/bidirule golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm @@ -652,12 +652,10 @@ golang.org/x/text/encoding/unicode golang.org/x/text/language golang.org/x/text/internal/utf8internal golang.org/x/text/runes -golang.org/x/text/internal/language -golang.org/x/text/internal/language/compact golang.org/x/text/internal/tag # golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 golang.org/x/time/rate -# golang.org/x/tools v0.0.0-20190312170243-e65039ee4138 +# golang.org/x/tools v0.0.0-20190710153321-831012c29e42 golang.org/x/tools/imports golang.org/x/tools/internal/imports golang.org/x/tools/go/ast/astutil @@ -854,7 +852,6 @@ k8s.io/apimachinery/pkg/api/meta k8s.io/apimachinery/pkg/apis/meta/internalversion k8s.io/apimachinery/pkg/util/validation k8s.io/apimachinery/pkg/runtime/serializer/streaming -k8s.io/apimachinery/pkg/util/uuid k8s.io/apimachinery/pkg/api/validation/path k8s.io/apimachinery/pkg/util/validation/field k8s.io/apimachinery/pkg/selection @@ -872,6 +869,7 @@ k8s.io/apimachinery/pkg/util/strategicpatch k8s.io/apimachinery/pkg/util/cache k8s.io/apimachinery/pkg/util/diff k8s.io/apimachinery/pkg/apis/meta/v1/unstructured +k8s.io/apimachinery/pkg/util/uuid k8s.io/apimachinery/pkg/util/httpstream k8s.io/apimachinery/pkg/util/remotecommand k8s.io/apimachinery/pkg/apis/meta/v1beta1 @@ -1169,7 +1167,6 @@ k8s.io/client-go/plugin/pkg/client/auth/oidc k8s.io/client-go/plugin/pkg/client/auth/openstack k8s.io/client-go/util/jsonpath k8s.io/client-go/third_party/forked/golang/template -# k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 # k8s.io/code-generator v0.0.0-20190405172246-9a4d48088f6a => k8s.io/code-generator v0.0.0-20181117043124-c2090bec4d9b k8s.io/code-generator/cmd/client-gen k8s.io/code-generator/cmd/deepcopy-gen From 4698b78e7a5a50c6de529002d13207865f188559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E9=B9=8F=E9=A3=9E=40yunify?= Date: Mon, 2 Sep 2019 10:47:16 +0800 Subject: [PATCH 8/9] add Readme for Chinese version, refine Readme-En MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 周鹏飞@yunify --- README.md | 22 +++--- README_zh.md | 127 +++++++++++++++++++++++++++++++ docs/images/architecture-zh.png | Bin 0 -> 341506 bytes docs/images/dashboard-zh.png | Bin 0 -> 419172 bytes docs/images/roadmap-2.0.2-en.png | Bin 269596 -> 190074 bytes docs/images/roadmap-2.0.2-zh.png | Bin 0 -> 183571 bytes 6 files changed, 140 insertions(+), 9 deletions(-) create mode 100644 README_zh.md create mode 100644 docs/images/architecture-zh.png create mode 100644 docs/images/dashboard-zh.png create mode 100644 docs/images/roadmap-2.0.2-zh.png diff --git a/README.md b/README.md index c2c61c78e..50b0d7cc0 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ ## What is KubeSphere +> English | [中文](README_zh.md) + [KubeSphere](https://kubesphere.io/) is an enterprise-grade multi-tenant container management platform that built on [Kubernetes](https://kubernetes.io). It provides an easy-to-use UI for users to manage computing resources with a few clicks, which reduces the learning curve and empowers the DevOps teams. It greatly reduces the complexity of the daily work of development, testing, operation and maintenance, aiming to alleviate the pain points of Kubernetes' storage, network, security and ease of use, etc. > See this [document](https://docs.kubesphere.io/advanced-v2.0/zh-CN/introduction/intro/) that describes the KubeSphere landscape and details. @@ -54,7 +56,11 @@ KubeSphere Advanced Edition 2.0.2 was released on **July 9th, 2019**. See the [R ## Installation -### Minimum Requirements +### Deploy On Kubernetes + +You can deploy KubeSphere on any Kubernetes cluster,please refer to [KubeSphere on Kubernetes](https://github.com/kubesphere/ks-installer). + +### Deploy on Linux - Operating Systems - CentOS 7.5 (64 bit) @@ -69,18 +75,16 @@ KubeSphere Advanced Edition 2.0.2 was released on **July 9th, 2019**. See the [R [All-in-One](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/all-in-one/): For those who are new to KubeSphere and looking for the fastest way to install and experience the dashboard. Execute following commands to download and install KubeSphere in a single node. ```bash -$ curl -L https://kubesphere.io/download/stable/advanced-2.0.2 > advanced-2.0.2.tar.gz && tar -zxf advanced-2.0.2.tar.gz && cd kubesphere-all-advanced-2.0.2/scripts +$ curl -L https://kubesphere.io/download/stable/advanced-2.0.2 > advanced-2.0.2.tar.gz \ +&& tar -zxf advanced-2.0.2.tar.gz && cd kubesphere-all-advanced-2.0.2/conf $ ./install.sh ``` Choose `"1) All-in-one"` to trigger the installation. Generally, you can install it directly without any configuration. For details please reference [All-in-One](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/all-in-one/). -> Click [here](https://asciinema.org/~lilin) to preview the installation demo. - -### Multi-Node - -[Multi-Node](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/multi-node/) is used for installing KubeSphere on multiple instances, supports for installing a highly available cluster in a mission-critical environment. Multi-node installation requires pre-configuration steps, see [Multi-Node Guide](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/multi-node/). - +> Note: +> - In a formal environment, it's highly recommended to install KubeSphere with [Multi-Node Installation](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/multi-node/). +> - Click [here](https://asciinema.org/~lilin) to preview the installation demo. ## To start using KubeSphere @@ -110,7 +114,7 @@ Currently, KubeSphere has released the following 4 major editions. The future re ## Support, Discussion, and Community -If you need any help with KubeSphere, please join us at [Slack channel](http://kubesphere.slack.com/). +If you need any help with KubeSphere, please join us at [Slack Channel](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTZkNTdkYWNiYTVkMTM5ZThhODY1MjAyZmVlYWEwZmQ3ODQ1NmM1MGVkNWEzZTRhNzk0MzM5MmY4NDc3ZWVhMjE). Please submit any KubeSphere bugs, issues, and feature requests to [KubeSphere GitHub Issue](https://github.com/kubesphere/kubesphere/issues). diff --git a/README_zh.md b/README_zh.md new file mode 100644 index 000000000..81a9acf41 --- /dev/null +++ b/README_zh.md @@ -0,0 +1,127 @@ +# KubeSphere +[![License](http://img.shields.io/badge/license-apache%20v2-blue.svg)](https://github.com/KubeSphere/KubeSphere/blob/master/LICENSE) +[![Build Status](https://travis-ci.org/kubesphere/kubesphere.svg?branch=master)](https://travis-ci.org/kubesphere/kubesphere) +[![KubeSphere release](https://img.shields.io/github/release/kubesphere/kubesphere.svg?color=release&label=release&logo=release&logoColor=release)](https://github.com/kubesphere/kubesphere/releases/tag/advanced-2.0.2) + +![logo](docs/images/kubesphere-logo.png) + +---- + +## KubeSphere 是什么 + +> [English](README.md) | 中文 + +[KubeSphere](https://kubesphere.io/) 是在 [Kubernetes](https://kubernetes.io) 之上构建的以**应用为中心的**多租户**容器管理平台**,支持部署和运行在**任何基础设施之上**,提供**简单易用的操作界面**以及**向导式操作**方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。帮助企业轻松应对**敏捷开发、自动化运维、应用快速交付、微服务治理、多租户管理、监控日志告警、服务与网络管理、镜像仓库**等业务场景。 + +KubeSphere 已大规模服务于社区用户,广泛地应用在以容器为中心的开发测试及生产环境,大量服务平稳地运行在 KubeSphere 之上。 + +> 说明:KubeSphere 目前最新的版本为高级版 2.0.2,并且所有版本 100% 开源,关于 KubeSphere 更详细的介绍与说明请参阅 [产品介绍](https://docs.kubesphere.io/advanced-v2.0/zh-CN/introduction/intro/)。 + +![Dashboard](docs/images/dashboard-zh.png) + +## 核心功能 + +- Kubernetes 资源管理:纳管多种类型的 K8s 资源,提供易用友好的向导式 UI +- 应用编排与管理:包括**一键部署应用**、**Helm Chart 可视化管理**、**应用生命周期管理**,后续将支持计量计费 +- 微服务治理:基于 Istio 提供可视化无代码侵入的**灰度发布、熔断、流量管控、Tracing**,兼容**Spring Cloud & Dubbo** +- 容器化 DevOps:提供**可视化编辑 CI/CD 流水线**,包括从开发测试到持续部署上线的**全流程管理**,提供 [S2i](https://kubesphere.io/docs/advanced-v2.0/zh-CN/quick-start/source-to-image/) +- 多租户管理:提供基于角色的细粒度**多租户统一认证**,支持**对接企业 LDAP/AD**,提供多层级的权限管理满足多组织架构的企业用户 +- 日志查询与收集:提供基于多租户和多维度的日志查询,并支持快速对接多种日志收集平台 +- 多维度监控:提供集群与应用级别多项监控指标,提供按节点、企业空间、项目等资源用量的排行 +- 多租户告警系统:支持基于多租户、多维度的告警,提供丰富的监控告警指标,可自定义告警策略,支持邮件通知 +- 基础设施管理:提供主机管理、存储类型管理、CPU 与内存等资源配额管理 +- 支持多种网络方案:支持 Calico、Flannel,提供面向物理部署 Kubernetes 的 LB 插件 [Porter](https://github.com/kubesphere/porter) 和云上[负载均衡器插件](https://github.com/yunify/qingcloud-cloud-controller-manager) +- 支持多种存储:支持 GlusterFS、CephRBD、NFS,支持 [企业级分布式存储 NeonSAN](https://www.qingcloud.com/products/qingstor-neonsan/) 和 [QingCloud 云平台块存储](https://docs.qingcloud.com/product/storage/volume/) +- 支持 GPU 节点 + + +> 说明 +> - 点击 [KubeSphere 快览](docs/screenshots.md) 快速查看 KubeSphere UI; +> - 更多详细的功能解读与说明,请查阅 [产品功能](https://docs.kubesphere.io/advanced-v2.0/zh-CN/introduction/features/)。 + +---- + +## 架构 + +KubeSphere 采用了前后端分离的架构设计,后端的各个功能组件可通过 REST API 对接外部系统,KubeSphere 可以运行在任何 Kubernetes、私有云、公有云、VM 或物理环境之上。 + +![](docs/images/architecture-zh.png) + +## 最新发布 + +KubeSphere 高级版 (Advanced Edition 2.0.2) 已于 2019 年 7 月 9 日 正式发布,点击 [Release Notes For 2.0.2](https://docs.kubesphere.io/advanced-v2.0/zh-CN/release/release-v202/) 查看 2.0.2 版本的更新详情。 + +## 快速安装 + +### 部署在 Linux + +- 操作系统 + - CentOS 7.5 (64 bit) + - Ubuntu 16.04/18.04 LTS (64 bit) + - Red Hat Enterprise Linux Server 7.4 (64 bit) + - Debian Stretch 9.5 (64 bit) +- 配置规格(最低) + - CPU:8 Core, 内存:16 G, 硬盘:100 G + +#### All-in-One + +[All-in-One](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/all-in-one/): 对于首次接触 KubeSphere 高级版的用户,想寻找一个最快安装和体验 KubeSphere 高级版核心功能的方式,All-in-one 模式支持一键安装 KubeSphere 至一台目标机器。 + +```bash +$ curl -L https://kubesphere.io/download/stable/advanced-2.0.2 > advanced-2.0.2.tar.gz \ +&& tar -zxf advanced-2.0.2.tar.gz && cd kubesphere-all-advanced-2.0.2/conf +$ ./install.sh +``` + +直接选择 `"1) All-in-one"` 即可开始快速安装,可点击 [安装 Demo](https://asciinema.org/~lilin) 预览 All-in-one 安装。 + +> 注意:All-in-One 仅适用于**测试体验**,**正式环境**安装和使用请参考 [Multi-Node 安装指南](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/multi-node/) 安装多节点环境。 + +### 部署在 Kubernetes + +KubeSphere 支持部署在现有的 Kubernetes 集群之上,请参考 [KubeSphere on Kubernetes](https://github.com/kubesphere/ks-installer)。 + + +## 开始使用 KubeSphere + +### 快速入门 + +[KubeSphere 快速入门](https://docs.kubesphere.io/advanced-v2.0/quick-start/admin-quick-start/) 通过 13 个 Step-by-Step 的快速入门的示例教程帮助您了解 KubeSphere 容器平台的基本使用流程,带您快速上手 KubeSphere。 + +### 文档 + +- [KubeSphere 文档中心 (En/中) ](https://docs.kubesphere.io/) +- [KubeSphere 文档 (PDF)](https://docs.kubesphere.io/KubeSphere-advanced-v2.0.pdf) +- [API 文档](https://kubesphere.io/docs/advanced-v2.0/zh-CN/api-reference/api-docs/) + + +## 开发 KubeSphere + +[开发指南](CONTRIBUTING.md) 详细说明了如何从源码编译、KubeSphere 的 GitHub 工作流、如何贡献代码以及如何测试等。 + + +## 路线图 + +目前,KubeSphere 已发布了 4 个大版本和 3 个小版本,所有版本都是完全开源的,为 KubeSphere 社区用户提供服务。下一个版本 KubeSphere 将对各个功能组件的依赖进行解耦,各模块都设计成可插拔式,并将支持多集群、大数据、AI 平台以及 SDN 等应用场景。 + +**Community Edition** => **Express Edition** => **Advanced Edition 1.0.0** => **Advanced Edition 2.0.x** + +![Roadmap](docs/images/roadmap-2.0.2-zh.png) + + +## 技术社区 + +- [Slack Channel](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTZkNTdkYWNiYTVkMTM5ZThhODY1MjAyZmVlYWEwZmQ3ODQ1NmM1MGVkNWEzZTRhNzk0MzM5MmY4NDc3ZWVhMjE) + +- 微信群 (与工程师和用户们交流云原生技术,请备注 “公司 - 名字”) + + + + +## Bug 与建议反馈 + +KubeSphere 的日益完善与快速发展离不开社区用户的支持,KubeSphere 也一直在反哺社区,为开源用户提供更多的支持。若您安装使用时有任何建议问题、反馈或发现的 Bug,欢迎在 [GitHub Issue](https://github.com/kubesphere/kubesphere/issues) 提交 Issue。 + + + + diff --git a/docs/images/architecture-zh.png b/docs/images/architecture-zh.png new file mode 100644 index 0000000000000000000000000000000000000000..910663b2f88b33ab85cf40a1257aadde74a84f9f GIT binary patch literal 341506 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 z%0AV6dJ?Uf`f1#OqN$-nbh}z%p}s@K-az5^_M5>3#$;d9EE8$Obi71yKP0SE8?hSm z+uSfi3O+trxLbF5l2e|J6rC`-wtXy_2ZS`D}EtCiOd6M8+>rU zQYjWOU*_^#HJdp{aWf>MY`Y-7^ZlZM9P0S*dxcdlRX(iz5j#Cnic}2tNTwJO9ZNv^9Ewn`90_s6}I>)7BoMjLS z$8@*Nm_RiteCpXaM;=zU^3QT$g)bqByY&!3&9v7p`BBL(^(+PYk4J>r`vylkWTYeX0m#X;*zv_s6&GMiXhA zBgx13s2zsKnO9)jx4(0PVJmm^^vBt^+^AwHUNkhhN;}|b>fh!wYxV6?*u+5>(3FtI zM%P)Vihj|TW@QtHlO7Jidy_wAV?;@Wz4Vx$69)`*{cV(l?S{TAfh-9?$CJ(45PB@5R+m>)qxigslS*@uX4K(Fjp&uQo5~$<80~ zoubhm2ZdFi>7x0qE?jBhocs+f{+K^fcIQqR9vc-3FhwVtrW7XGjfVIdfp>gyNwF&E zv{3dL+;@rIZMHUvvN%qL;8aA8m|%hrVWO7hC3;SnBQqha$9@x*KvB8 zz&W@8;p~<-Y<=nI^+;>#hGM4PF7IOJ`*GZg{X9qB*Wd6{i;0Io3_~J?1k0~mKfSg+ zjJjTey8;}jAD~m%6^GYPUuYR9AtYwE3w}LcpL)gG8szReIEub(?N`sNV;F~e=ZHqs zjgdT^C*qLZf}-ukW2_mcrWfFzN2OEQLq&$Zp}tfeI1FcTe#I%w4SVnN-Ez$24TlkP zhpIk+GLp;%g>2B+<5+&&{6d%vwU&7!o(4CtcP!|Xc7th{LrzIMz&O=EP$Ay>l|xYI zc+3c>uHLR_Qba%{LrKpr2h_c3GF~w8X>&qe(`2@L*~k0hhFsh)wwri-UK_bXxsAN# zr~Xl+7K`&y$jjeyS5|dTfpWB?N2`_4!UE~VYRb0C+M-qZ)9DRCg!f|Ub&nnB8!=p# z{Vpp{)IpLu`=kn8K`;~a^o&M z_D<8Jx<%mH1NnPs)JNwej}lCz%Z!OoeXrI&(_Ko7_4lQm21f1EjctEyV@n?%-19FD zpa1BOWE0z|RlH|xcM>RKgM@S~9VSpkijjkyC%g@TAcCH&G(Lvgf4cLx+kVfj3u^v| z-n~3qsxr{yn~Nj#auO)O0v`9BesBJ3T$ZdI)8(?ZkVcS6aPD>R@G=9<kfEZWxK+jHIwYfQeoNJvr&2Vcf92SUn12;rM57zqk&E~UYO#GzB$ z5Q{9Dqq~O zEF%tU;TbOp$csgSSuEKgig76XCXKHsSBFjJke9UFcTj;3W(C)<{x!%CHGc#Dao$c) zreoPe5Qh_a{_^anY>ou%WglX!n#l!GR9g@(BzQccXNSdjj)JmsL8FWHQiS(A#cDA4 z^*0dZq_bA>^`E^-<}V6X4UfaVwKVb0+L8DjCt$(qZ(;aSFgW61?69^$woyoNMYGS6 zhg610n~MY~4|D@WpG%BbEDiaa{Ilm|YJ>C$=vHPMQ&fYU_1J3-2w>KwB7dHIO!hgL z@eYW&`1>%%qs?Xghd$FqF#~@k^3Ly1lkkTTv`2?6eDU>DhFuPcB8@^*0nKr3Zz)GU zVSItl6$}XsZaS8U;)3@hunNP_^R&@qZb$2N94dlF%MU0C-rWA(9J=~C?_6Z%Bya*8 zJ#Rd1j!y!`EgjUuVPJA4X$^&c$6{d-L+yUj2{c$7SF0lwp;Sq|UNHcPCOum4!E1Qe z&kA9*F5k^Q_(5&$HBiKwTm|5cur&0k)XK6|=@aZjEZdzdEf%F{w;!dKV6Pm_yNk8k zcN^u-iunHFBC%n3E?g`9XNc7C8-G%!u3C+V>1u6fVcfCes+( ztIyGe;Sc!2waKpSdSADsMlLL8Hqh)DrZxVFvwWl=FemKwQa~$_s`z7%I=sBG6H|Jr zjJG1w+@G^G=T;<2zHZOIqkrVb{j2wFNx=FBSz5sQ;%ZKHrZt^=mpI{l*)~PqZn>uz zHdZ|oGc){mok#nBjtwmsGRB`BNvE~1L2d8-BtBZ8O5vBj1lN{6<9q6Au_ok5 za&hFIku3s%I`=XvR=`^^Ns&sP7PLU*KJ#h4P{sHdd6(@$LZcaOfMNRZgF4s4Vu4^_ zTl{-1-vt72huELK2}9cOlJ`}L-}B^g=GrEpX)YU7e_lvGaJ9PEl=+SUhulwpi1goa zeL@!I`$DsM?E@zdx{Fa0-46pFOUwDPt#RjD-Lr@^YoWpoCo}tU->QR>u3beR|jmawRCo3)Mytz|;-k3V)RdIXa8_OxT zsxhV(FXbWqr!cjl4obP_+QQz%9{H+rmA`PX=;$Sb8>;gHmzs z%ueE%9E31hnLYHAxeg=ocX5ssa5Tq=Aqxc3~DknXkGs|fOnLyR=*yoCJUlHiC?=IXBqynd_IUg^uO>g@SwE~O{Zt^3jsB+=UIqt z&+JFnv5nrYyawZf$HML|_(){p%lDsXgPSe?I*6R194oyit_OY*{UnWl^@}{5jgQzq z1iqP*zsKjG(dVtR3B#LS52b%e6aZ9b0@ec87fQQUvD|8O!fQYI;PB`qM}y|LgWKO7 zNk+kV{=dkIo4-fjk3*L(;P(BBJ4dMH&}{ zoma_AzpT(BuRh9>#as*}iiT5emi>vCbOe#P_39Hd^p8sIYWH)`X_iM$xYj3Xj{*3C zNiM|8zAjQdTqq6)`8?i?^GcncTocyI>ii@>egp-@czWN??fvM& z_x-(WG!)Mf<9o8GbqYNuXDrn;VE!wc$6PjBLmIl&*$=YO9b3hD#=9(Uo|6vSM2T&! zVGo7U5x@3R+1z!oa=;XoFti$8x~dsJ$H&F3&>;(OaOIRD`S?|2zvF*pnZN|aLHJPs zH0ap&MxSyzJq@FpKjjfz{?E@;ghLag;@M~qK2lr(QzvW{rzYMJUK(le&B5p&L}t)P zL}KOt^tQF;&t)Ef{?>oVS4I;O!aupab`9H#s9%}!!8pgm-Y^qo0RlK35e!+}BA`%G zP7!+in$w3yGGAMA6m>JLW=Rg}{xXO@-->o30|guEb7}1=p9MQl=_>`@`$^iuJ)ja! z!}p;Cxno4EiJ47E%;Tw+w1jwqN~Q{=5%ULPsqIZl{ti~eONy&>cuW!(!pb0BBDNO6 zbm^78bbf+-rsI8K(HKD2dA)cUe;|4kqkvVVM>mJG z0l|6H3OK?b!c|DXU2#>(94?3Q8*~J_p{9A?FK<7P#Z0T^Aym9%+=|q&unvvUg$6<; z09Z4RHl>plI1rE1!$-iXELtih_@-Jp^Rx7XD`mM8Fq?E*7Sd@JfXrlo{IFMmJ`Aqs28Tlqx`ZJ~LW(oa9 z;3cr7LgUU-8&YN#z%j65`b_^5e|uxds+!g3!W{eO-m&+n7*!6=Fcf3;B-am<-gXo- z3Bh3W`!8^cytM5IreY+JMGAckcr@^Y0?aBtSlyyrVjqTn;(;Swf+R^J5?x?3O3KaV zDJxv|X;s^F@pHx=4~EYt3m?VAzgu7*={1_yl2ICTrsH3nzz;dj%axXYRLdNfGsF(E za&zxirdYN(GOClRLtMuhN@0D=KpK58rN9-S(>(PVF?^kJ&w>g>r zG@6`x@#kc0P3FlD0>UqDWduGwK(0ugU=M*6HKbX>QOjb}f^I3*c206rS>|2v)nYTZ zX{Tt&sM>fkT_A6scTSgF$=aeIE)(*PO@pwG-SWc-#lg4zaw*pG<{kMsW#M7?iCO3+XLRY6H3-#JHnV!z z<;po?q4K(xdS=6G$|PYI2>?(L5PlY+cQ_NBg-+g%5Mpm03x5~~OnQ3pL)g85SVT8L z-okkJ^7tgle}Vp^7y^}9w&MptXfNFpsvn(2wn2;zXwn>^5N+i!Jr#HVj^$1_UM*Z7 zJVEs-wH>g%%P=2LN1qZ^m_0%tTHmd;H#!&Ne;Jabkv2{FMz7gi0%IzVvqtiA9i06u zIG>U-j5O(RXPhW-_~RSppRm8F{%RL2S1eN}?PHF@+nf`lI89;5#>Xceo@PwbF2v8V zQJZ`_-Ewj^X?NoQ_^SJE6OsS>5WfipXm^N8hQt26;=JmnS&%S;3AKzFv={iTj z^2q}B%84A*y2|G6{+mD4GC;Dj!lLHc_NaJb8vFiHy7+v&vYS#)czL#TyBq6^VA%UcVpWGO&tP_Bdzd>$XJJ6 zzJ7fCDGl{A17h-#m8y6+gOn&e@pF;ZD0Yn$VI{!Eg=1kKl1U}w7YZHn&2lb~0S}B8 z%I4c0?0qU^p?5_)+~2#jNLQ~Wcs)i$Yyv0&5#{ii;r2Zk&cdznIW)%~|J1KpYT219LP$-Eq3QmcuA`~%@h3bo|ml4nz>Rqh8<5Qs~J56?ps%LzX! z>ydjaB>h7Ef~mo-&akX2=NAeqpHAZb+VpIvA^I_Q9$Q-C)2?}vdJNV9pw$4e|Ms;o z=Xzlu*%A}CR`kjOkHTa3SAaqj4nB|Ka(R97IKD3y5>z16R(Noujo<@|_EI>A%wn;jL zI0g+L<>J7`?+jjp6|o1^`M{Z2Ome~z(pn=|9AjK|9NWs>-I4nbdhL2gt=Z>em1HD+jc6t%f9n~}6Ia?P|JhmOp3nqs#8FQ6&VUw~M6SCXV%r*695sfCXTLa!Sys;ybX_ zon>`5D>rFX2W0Z<(Pza&kw+?BMEcLQ*+NT!+o?exfMuQDZ*twWaJBF+EBM znZUhUZfbY#PVC2^CAMeAzo2jz4wSN86AKQIN6Zp^5fRxA?+sQ8@4I7C##zVm)dc*6Spk3;w|m&ZQ`?tLIo z)!gsoFtp%?8q|pUivPs*Njf3wo&A*j7*tEx;vh-#j{*no>w*t*1T1D=GYXZAtTegd zP?>K)t#kbqOI^h0ZD7s_$*J#qp{OLe7b4b8ird#IbPhujQ++1vHBFdZU;|)H@9L6u zehkp@n>x^{o_13MkpVgyKz z9I=?Hb9#=8+}-sw-AcqqCBpIK3|2Pmhl9;bNdK@0$v6*d24Ohsbq6L-KKWJbjiP^n@C` zA-t*h^6P8B0JlkBihu>yCMLDPtr=&CW-=`w(lM?duiiI=4p+kLpT!Da^}6`jqDupB z>GlY-I*zy=;WO|yqpR6Xlx(e^3eN%&*6$Z2+89(0^0j>-=^Y{O>cNqj<@UZl)jWZb zhHHNVB)Y-dI8_h)4xp{Bq^NwrLjIq{_`jck*{Xt~?wsjC^dMN0G%S&Bgik{K&8SZ1 zjp?Jt+n^pCKmNeW_SEM|9#e>hsxyiucKpj=CQRPtZR-)ItDZgT8e5NMWtfoph9f2` z=7L@LYoFuq)6i*6zHK0KdYp<(sAH`a5~~8K?FhZb|z|TTH&K09r`W z*LXz;cVQF|;&_Cut%%Ari60hai)wPk&3Nzk(P~fx1jq2R#548!j}L>Zo&p?IaM54# zUBK(a`A#J5s8rFS2z=@aoN`lVM;YBuw%aZ8|IeV`rokGEZJyPtHYnTyoy)W3*O%>M ze` zqq4C@$jx1$1@8;TU^bqHPhhq2ne1r4ZS4QwmA!^3tE`y#H&{!&6`fR{G(?z~Hj*#s z)>>a)=pR2T>%=G7_q1&o7=xfU3zqZ{*&o4{IzV!f`l9CCmnY>9Sd~vrYLEs zMmY$`tGi5ib4WKtbhaX~JJ0t#Ih31FBDS(}KQ$5J*gRqOl7ip1sW*a{8rysf70`~K+o?S?&oh`o(lXLKqBaT|NM^#u zAJki0?^N?#ysBM4p1j>oHO%;^g~QJfl!-`XoBeN_0g{hd5k3*=t+PZTO#@`rb2sz> z-VpY9?C2^`xJf=Zu2L|m6X#Oc1pjR%`_H7>`FAwlSEh^9TKi;ulA%|tj*kflo!jW| zuOpcg>&27H^>9$$+&z~g(|nU{Djk9Q5XOV87>}7g36JJGWvZT9dyM7|8(j)C5&{l7 zSEx4>K!brI_?{l>fzNbiHou_8DWZSL-;YV1rucT^#+Ax%iI3_Z@>+JlJ z1ewiuE0?PDF^;YPGC%}za+N$s2FMQnkL~Oyn;jf^%3g-blE)3LPTkAOHrgWd=gk!d zbe;h0DQQ_2?=10Rnl!d_7w{>_a-#b2LI`pv-hAE{B#`=|`f^Oi(SXr-XG2lL@8H|U zt*#b|@?T8uPz9H58)nS+9w#fvW6!vWV=1@Vc!*TRn;*E2h4p?%N)E)VMzX`Uv3a4o zyrHH4*Y#2CjUI%a@QK#-Llf5P&zcE`m1TSHvu471?QHcjhK;TPFRcq|2?=D%Ud3I( zLEN%{O76Lx2}VsiLVia5f;QmcX`j;KvI;>8i1rx1Z%b$|(#8!p;J>BdFXZ%Jn|;ov z{Ch#HUsvxo@=I&_Oh`!!mJ3R+v%Ww!#FWL+Hda#xh9joL(;U0i2KWI?1RCFq{QV> z|GVXoa3DXkuwN+aWKAYV3ch;^1NyJXlAU77&I<4**9UE2 zc1cvKvl;>-Ou^;vBS#~}UlQPL*aGE>Q@P_Ev$Ox0cK#;{u;4(3b3fPqVS@VcF>K=9 zA)BE}LG?f5fru|CquzPXl2BQ-cEhE#*EE9H{<6+~ zB_<}#x!?XjMz?fYpJBa>wHlOtzmNm%pe6ke*g18~EFLtzPqGlu(pcp7EV6xkESBxJ zPcAAgI{3t)^iSEI!AOGhc z-@ec_z%)5~sYenCdwn9pN3|-Vl!?j!V;Fz?=EIcAtLEqLpZjbmY_xdu75}6g^?x4F zf4%@6UjWxl|8CD)lb8Q<@yZ5?>FTz;nSj)p^p(+w`4dMIb%9n-(fCkO-Q8O&?x}Ks z|C~wh!7Q~|F^lWN%VOmhz&=DbVrgeC^_*rt^sBocblL{Z?-pDbcz!|kuf(ZcSWR`sN&i>iM9ep{EXrHOI*6hg$KM%sCy+j)R)YwLiKHEuA0 zA=&=;Z==lZtMu>R^p-nNj9G01wlZ*`PhvUqDq+JPCM6RT6+g{`WH6DvcBfcTS=0V^ z8@@#{3f~oI>7Cx84el7RHmdQa?F^0reP{b)@7HFDx~I08P0#64HHDyu-E9S7D+fsA zVtrL90pS}T#nhLgp1#ba{Kj85wHJMianuwPs;M;|TCrps8AG$@6HXjw`&M>mcn z1%qv;s98i-j0g`$5|ZYkVpgaosL?j9fIdiG`K>tC~N zO@*GsEcTaMbB0}vPGDtYBnUzgLj?GaRr$qL{+-?^4* zH_VLwzh+*ROa?($wKkT^!YxhLaXZiM=0|+USFZ{%=eXea6+W>tzVwLnp`cLJL z$pS{&C1dxj%fA>xmZJ{T9804WTO|OxDfQ;y#N3`QWpPM z5aRf;;0-uX=}WFr*dM^^dI67UOqx1b^ag_rp03Bd zUAscwt(~%}+_Sd?+o(S2;wIWMy{1@*^#Up{-b)B!tNcqN{CKh5iGUGFZ` znj?XrU+)g}lMM5dj%S}n`}#u8O?UH+4)qsxZ<>>>tL%?)FCSc3Fu|uVCsvCSSM?>2 zXA{}is?-XDUzMyAI-lLaS0R*Jm1WOg7dD{b(G`lFRCJn?cRPF_8ud77PAnah$l{Lf zLex06rRM6E7uLO=3FD)q3-G<0b1l<$IIKG#`ydTU>qWcQeUBo5mXSku^wpqOUy0Ef z0E~ZBRKXYAz>iBfzpfV*m^+sufZ^il>5dm5z zX>o~#epOYM*VEGt)nsJwJ^0&U_dl%Me{*wWHkwn?7cYL=eqde{FZm=Ede2O^4}fn} zs;r@;>5?YqX0_cJce6u_?^J3(H^$3`1eos>MG{{1J~Yy`C7x1T$Fg$z%U#7J9s!J( z>-x)28t)Ajej$X&jpIt8sVvXH`|4T6D+6< z?p@j~Sk5PSGL)7(Np0P8FP}uU15{YAN*E4K;{r>%z>p>g2 z#blEwEZ%k!9b`kX&XtoO7T61;^I>ZlGMVjs$>w|M`+$$ceh)$)SK z%*L|l{v>5^aQVA$to zQ&pe`WZYvx6R3Y?M#-D7$UAoVpM&(jSX7`R6(1xx448OHua&!E6gMlsp7c0Oy3bVs z!>aIIVXWaCSdmWqNmdyoF#}Wjae1WPRt__arqj36h+`?>!`q}%HhiqivXU6%@4%^} z8s>T$FESR+aRHfGSIsK%r|-@8no%m49KxpvM*9d457&lX*DQm>@&e}5hr9Kb&w*AM zY(;l+JeUZAfhUxKgKH1os9yDdCIXmH*boSc@9gUV;YC3A1g?n+<}_~h$cW(;6Ag|U z;F+~bW(qSpuR1n=Q$Fyx1w3JWp$$UpBI1i-F&ZYU=#g&#LwR0`qpBE zitx7&?~fN|HLU9b|H|uA%SlyQpketnGuFL(it^FA7Yh{>9=AN%V%1j0{J}6D*)v>J zC5v#kNsS}mx|jkD{5-T!-1EHc9=j-4ntB;zWSJqr<(0iQ|2%Tuaip416&f09>$P(8 zgIAK5_lHf+JWgELc)9n*`3*_=b~UR;+JN$-d^$R}qzw_s{l{wKmqgDNj?Z5rfwy+D z7L)T91>lJgdfW&)A19!5ZL(aXOHdcjS+%3Jloe;8R-K;l6ALuWtTm5_2K%1}0Frw^IP@ z(ow9z2I&E7WHL-nQ9RK1FcK!nzIn+d=CLe(slg&M?*Be7IsjEm5tc)zEk zQzcy}?~`-&NB{*@?or@I%PH&QG#`5f(ZXP|m>)U8Qrvexo1ORx`~_cv6e=xS7L(VD1H?%byO z_zfW-Fi_S$LsI8?S%>p`_yQi?AW}&Fu#N_2ja6e~8B>br&~%bmyy!yM7sA;D8Pb+9 z#jed38-WdBB!w?G4&}74XgEU$bH#=nZ3{Im3OKF&YT2ie1GO>>tBlAiE)(Dst;G#~ zb?-}7C1Pd((Vo~?(o7p*QOs@ydaiJ~MuxLYLkyIRq*jY{#jjopXa^2>6PfIucwRgq zmxFFFNa`2!jwi#aSK=25xq-L)MiDkLOI9vYr&99*T9d-xQr7DgzJX8f)~z7(?^hzXC1|?I=t6B!s%xIb-RHF`aU% zJ^Lp{OFQp(zgd!5rq5V3M5DTi{bmOrsD`!GBQGl(`=hdXWdDLCl|w?gYK7efgs$Dc z$pMcg31!Qfx7!OAe#tyo3OFWNEanm^;w@Zp3Cth~_pkiYKFBNhc6W1k2w`Q$?s~G6 zCyWyAQTe>qP^260l?g75tF>t?#LmP!)fa4)Ndxe*hHD@sY<^2Z*O22tx$#1Gvfci< z<0>s}y#^dt`fs=iM*PZ-F5pnR=0m<$E~X6+ND+96qB4jlseM~5yF8#hpwpB^JnSUrCB}FF#!oEdp?ilR6Eh2( zv7F*3A>1yOJ|O2O0%z^8V4(&S0VpU_vh(U=OE25t`F?@JvXMd#y=D}^*Zxx<3>KeI z?^E!c{5>p2jg=9Ksdhy4u0PIgvgqYOq2zij#_8pE=j4~n%;ak#kkam$yV&F1f#KJ~ zo}(VFGMTx4$IUiBK2%U0W6Rd`=p^&BK zZ;8jMaKlO>Hu2+c4U2*u8$0GkpzW*aOnl~BBkf8Ny~3p<=%4FR2lOuLI*Wqyz1mh; z8?x@+zeQ7wi;dVe7uvMf@8Ixr#|(Z5qqDmtGo~_uD+W_MNcJ=AN9hkjjs>vpGH)KC z_Uz6Zc2DNMr$sgkL(3RHES5tH6)3V{$@*Aqz!^?%x&y*{Q6 zNx9X?GKoj~{WPYfex6%firW4SU?PGy$CRxuo01j9LX)8ea{&nakP0}RgAKY)BTN!M z)v~|yr-cGWUGuz4;G8%{0kMK+Cvb#+p!jo_f5WF^z?`YnLYoZ~iiU=# z1|>4O`?#5)9xbCNhN&Ea?$1}|jJx*5F2NlkV{*cK(tEm&6J-Ed@*6jkf?*g^BHsM| z@rl9yqYs%tUUuf>8x2!z&WnDTQ6tq0#^wb z*8tvTwQ1`j6hw{4;xQ5^!A-Q``)fxqN$s6apwX@Zw-g8{IpwQ<_UGvJ9sm+jB2PVl z2f?m|a4~0G#B<53+ASt>C3+?6Vm~%05X;*%+pHtPc;I#(j6L-;e^5~Ls`z(p)^&-k zdshCkU1m8`g~w9QDaab`!W*rp3*08W0L)&nYrT5zNo|W zyq&wcMv1IrK3a(beEFn#S}J=1yN$gnUt zp}nDz(lKpUTXUSR)Gk}k$KJL+P@IFWH!#p#_DEI4d)HtwTeygW*!KC#p@qS`=y-y;fNL*eNIMmh$ASA$LsXw#=Nl?dvbg5z!QyIgm zQNaE3Ox`MsEMfAjipc!zt>FtqWqBr*+AqS4zR=M28TX^)!{nTllu64pP#Ul?sr&Y9 z^QiGzJSBnaHByy>c~qn=pf9;TVQxQ159^j))?9u9! zsf4(!@VvMtTWWdn`Vj<_{X~US|EZ1X5CgA7yf2uy9mZ~Nxop^m^^vaKX zyB2I=$ck+va4_4^B&ZR?jqj$){Ik`*o{@guus&)`Q7g}oR~*+4F^%8>WyY4rPivH_ z!FNjLxAbH?>GH-Aqs&3o+%0>BJfL(nneZ@Bhzm*F_NIA9c?1&+I`(V{-xCJkk|LcX zCozgYd3$C$fMtKfFdR7LqqCxLClNXZ<>)c-%eC;~AN_aLp_EWbj54Zj1M<8iU`Y>0 zVT!x$mJ3pjf7GvPW&k6Gz-<$2mP9E^P6zsnY@p9T4wT@Z$ej!-Dk>$fum-Ov!4BHd zNW%*%)#7fo(QjCufArCx$9ZRnH)Ub~iI;~eR^QFFw9-11oT@zAAow#^1Vre4o^Nc5 z&I&3HO`_GmOmZzwDEb^AW1<_LL@G{RQNX1IdxG0K$NJ{AeX6s_TB_WJNmZ*o`S={S z=X?2?#{cSO{h_;+eF4Xdzvj&PjW7n8(f;&u2&n{^83lOLz;AXo@_)0?9eMxbREMYlCiUC$>euh zY?bOE1G^A*g>ul1l~Dk85xY=odb@+`17V6!iE~L!{n$N~PVId>*sB zA5_bE8z3-at2j)Vqjj>9Ix!0-=hLd0l>|XwYjV8%drE3S<89Cw_-?b3J|bWW$@2a!|awj^N0Yr7ynyaE=pAoZ%A?g&&}4=STD9egWoh* zR+3b1X?FC(&sD@}J%_lcVF2XfdtMNkiZLJix`ND7SR}IGGV+3@ZIM#e#kaxJ#Y!#0 z`zI9{L~m1&hESFkJ?S3Z5^w%Xlduh%ayC^tE4nDcTp<@T8$r&WRvk_VS(-xQEKyA2 zoTvNyfmC>wW?nX1n0=4DdrBgBVv<&#E4WcVCa~5IofYZ97>XuJ)ehM|x$zuUG*^pG zIBHDjASDl%Gc(x4&OWeAGB>f@~>MWicmbJt5=E?D*q1r}7AmrAi+!Y}OJ-r8;% zbi4>YR`?~TEmd$!{lVx+gnD>>T9ikiUnY?Kdh_$4q%}AOhj$z&6Z2PC7JF$)hp($A z!&Z8`epPB=4g9Mu_|=q{_@G^?PKXl zO*6zzpmdDSj@^%@}%tS5wE+->pKey7fSyOC@V|Eyo~Vk9COluFmZ1tys~z{R)Yd ztaiJ3ZSHHpHyPXcC9175C(kjFKLQIr!VHxG_r^K3#j#OPCLEDD0~Ha_&`oCP|o#hz3f?(mRsiN-D1*5dF>FohUt ze>6N2SyF%@;uJWUm78{KIGfK$XCyp{7`4zL+(u3Yi`J~>n-LLl;Aw7YTTd#|U30n| zb>QEKmK774edR9m2~e9m3S3#()@V`_P?vr95D~PX{3gcFN?`H4H#i~oq*?iWcji;7 zBHqt>q=UYOWu3WaNK*4q{YvD@GWm+Dl+ufHB1gxoJC{7JV)mt64R<0ba*ff)B?MY-P3=JM&WlTHRzj$goH4*^0-RtnNjdIRo` z%ht2b0P|`MyCp}VN!@+Ouezf7*JCD5ppE@E?_O6EM^Ur6*e2z76fg<|{b(rH|#+D`Zww-*X zHe39VJ_`YqZc1-OyhB~V(oSzYn*5xG6?bQ^5g47VKexb{lX)(* z!Kc1DlrsvN-#xo>3Q9BoJ8va=W~M=aM|vMj9FrL@L21IKFcbajefQlkrV_HF2`n(( zKs1|K`V6Hx@sD7ij@OLwVw@S-$(aRJK(LZ6e(3GliWDNV_laHn#pLZBflb-Yfao52 zLRzfa;qryp$9)17($wX^JM1~X&O2iQvFrVSyR6_khLLaVr z*1jKszgeTuE)wne!8#+iUq(dnpbaJO{6>GiIS*ljGZZ1DW>);E64DCxilEubPyGdR z#6s@keK8~jD&lfQ0Zle-g4MlS6h#2bRMCJWj~@LQR}A>ES8#sbnLX8ss-4= zd!x&Mg0*Jp1{}@aBeX~XDuhlEAEObe5|?hhnGXR z$=lmP3kn3y5H7 z1%L07#7596W}M&YD2B#VA1R+^49)84@#au=cU5e4T(`}HOTjFY;RsPGhltEql9ST4 z%yZAHg!zt>Q$cjg8=)=Y3P z(If1;n@v+a9Q*wenj!%FPlGK|N7%JWLx1$N-wwEf6x5fox&EhK>4e(yNkoF-7@CA{ zCf+_gm}HHlGF^Fmo+nQud`i=Z@Aqu62L#F7S!wJrJc{&>Qw37ruI*F!;IG=Q>u~|L z%%-}EBs(TMH8xUhts2nQEVhVK>aUL;E!WTN6+K`2=Uk3zjyVpx zO!j1F@H_`Zj}5cXu0k5E85Lehd>m}8++F&ADym}51t?2{_cYe8=Vie(%m7OIUBaXD zH4<5sjps;*)5QKPP8S(HI5H@C5X^=cgLR6{rpR+6kd69fa;(Kd80SPzhj%@ufsb0r zRknuQ9hGRSbwK>4JCqD{2RZ#mU+X$XmpkvE- zXrZUgBbbkt-DOAQ6%)RWoklUyxz@je`BT!Lwnr@zC%E@YLq4Ci>M`4PcXg$@nlZ5h zfS9nga_Dv37mY;^JJ;J=31(1)QvO8e)Ky=MsL7gLni7P+yws=_d%n&zT#q)0xQ(DS zM^V9x8v4@d_TX0arH+5~TzS$B-ZhvW7VtN{CU7nmD{vp zs93k0-t<-nm_z_95e#DK$6Cz)q~nf$gU_kKj1$G(884v<6&OilrDOEPO9N&I!H+p} z3D+C~@p9^;TMNqzbMzd_qKpR1z_e5QqYviMdmpDSQljX}FrHEnQ?%>{jngemarlv? z)A}fA1g>VZP}uJvDU--ro7!Z4GRDhPwA|8{FgF;gO<`-Ndb-~RVKY9>%CkFf2&kw^ z!p2WMqL93A_-X!OFWUuYqwR2Od^Y?Vu$_m7!d=Eh&l-0t`le!U6BTAFh{o&lI@+T& z?oH8qjU#6=j5}WRP)nM-3f&hfsjFgzd&@W002a%NmvcLEj~R1~PlCTyZeRUULV+m@ zK&v@-_jElZ^4Ce=TbJUrnibb_8S2@HZ_H$G_Oa(ee9H2}E!DSvhd`-!uZn&H z9cxVa&4__}Usj%`H5IF@J%(?Xr8ks6xJ3$a0i(>+ed)gHJ-V%vNCspxTEb;6J^YmE3Ew+3Zkvpe@dG*|4XdmqdSjZ@|I^)fM& z*yR!aZU`CR23I*P&pGUhP%xgKjNs*00xfOrf)Z$0-&GrcPW+zndvFaJ@pW&X5oo~L z6#-OzgC3&Ur}ka_7i>^kf|_dpoq|n&1WAm#^ij#asPal2*p?~`LA_`?dcIh`Kzn0Q zYbtcS&|Je;F;vI);U9#=S3e)M(RtAU>##8GgETmdm`u7#Pm+Duv*p@_HQ&|co%p=< z%56?mOP?nCup$30V5~ovb67~q0xhagL8}lC;VZ8-E-U_~@^BAQABMU}X}j#8L8cb? ziuc;fCS}y)jXu5I%)mIy^82nHEpF5M%{ClV2hmbINOL_Ks3DjEgy7$7^sKg|_jj`= z%j66Xh zT*sv=Rf>13s9K+r?wnmWp%t8O30S`&PZ&uW62SCWS6p|qarfigs^YU+`j@#}4kGW{ zjNNmW`q-jcQ42+$c%BICA~xTVQ1>5QeoFU5y{!+Qn6Drg*{gYQ21|y> z3&c`Ws&HfCyCypNQo_f?m7|Y4KMG0TJt<}_U87n_KtG!z0rvt&n0I!yQkE`PQr5)l}EX>lV-2>EPjLG`eSEr zHm=&PCORc&-VJGuis*x)J;xtoQ?EUq2dPwt!ZZvJqVMPXA|P=KnXLEsN3=zyIhbch zFpp|3E__bUA}kSK^Sc6}=<$KwHTwZ6BR_cc+WTivfb7h??dH{CNU|87U0R&G5Jyk# zXR~tfob-f9nd(>kZEe9SE7>E5V;N6%iFLVZ$lECLK`PcSK+{_yVNbOJysuRnKtXt>qfI7wKn84Cb7yP%vS<$`;T!na@xf(w8QmnJYdZ=mxqW4GKeIDSI$37BA z1`Rc^s8`o;nzBZT2)osV$A#r5Dh{FD|4S3K5%ZJJMusUaSl2Xv*Rm0S53#?#D5a9c zE#-ESBS^eATRHnGI#^P2%rhOY>=v9(wyd_<_b{8T4G;M>sZ)H3_xpNA*cJA(`T7fV zfULv1r?Ww=!^52`dggLfTLzr)%cT#ASLDbN&P_Aq`%<036J2*ZjyU}L^l^(=+A5PX zx1&Pn1>eSbO?Qi#5OP0=CSP0OyYkodkK#@QV+_H=kE6`)ixv zdP3Dq5>HA!Ja35RQ_=anE!lf}c6-e!`j9XrRKkNz1V4!Qz|pWSY{Lm`Q0xXaCre^(K@($O1F~}S^Hp{nG?Bg48c$K4dUM|rCRd%<0xBl-57x2$ zAS8g4f`R0lvK@PFJEJS6_WsHBX{BvVFpj3ox1 z$I?6M4l*HQG1aq#b$H9&-jYe%D%;x3JZaj>XuXhcMu>5)h=ROk--M*(Q7qvp#t zQH|-_{3%TU2I#;apM2anI|x`#UtIlPQ;Qfa)|tACk~-F0kxh_2&@AB;?fR zIz+XJoJXj~03f^drcne$r;6siy~0OchIee{i#pDq=OM}VLLIJIp}EF_+#Ju1Dru<#Q;GVHSm~lo9DjN$7CLsk@q+w?keD97cTMNI?6xgp0%ypM5<^1uS?7^1VX4oy2=4d z3{NA&#>6CKUhow|wT5O|2>xvte96)90D;NQJo=Xj!;6kubXwc8&ana64z>1l?b}}7 z@*cEeOTybctmvF}LqyG+i?=^fQ&&aZ_v=0q4)VHGD^hih0dPUk3QYz?QS-mP>#s~} z8V)hXo;-I=H5qa;OUJchfGUom@cUxf*=M`?X>SCRoY>0!7?(L*yG|rw2Y|9obw)Nw z-5Dd+Z*P`MbP*PF6`g6r?-E{OL&YA-ZXltcXE2=ADV?nX9Q{$@wn4Ego`~tIFUu4mfiIP+PnY*`;zA(eI<-MPhC5E(@Bt7T28fW8o`V z7YvZWxDdDl`|E?v*8Zd<0iVIQkGFs%Kvtee0!gug2j~$~5d->29A&+CZZ+8<$nI4^ zHgpdm#&OZ=3~zV+|tn9tR!J zFuMG^9S;t-&xO}qpA2#;dB1Ni-<^77hmNCee;@I?BIHa!?v_#;TE}D3evD7(>39T+ z=qrXfl++{Zfo=Ea|Fqq`q7YMQR*O!B&Mr3?-KV!McSQ`J>v7+tZO$g?VO9C%{~ZG5 zSfbN9kwcpZL~k?7gYvVDK4UJN)5yt23F=nZ8KUh^R75F6dOh~?khqws87@!$j4Hd@ zSv-^UE;(8`P4FFvwQ?Fwa`cUIL<17DcFy>5xEdMe8K+&KDmZ%75FtFXDWgN=6DzQa zAC_v29`=2`L^6aZfTJ#FRk7(ISuHxyiYk%cfia2`bUE=1i6sd_M_?wLZynt9B0Kg3 zT56<7#fo)OQX`F>KzZW=`O#v7_&m4qUcl&?EW9iMtRXOMLD!uf7Urll`bH?r1u0 zbr_3xpakex2-a`EYd$aioH2vTu&Tp^ZONdgEs0u10|?cJQ5eIi8Oh9C3oKLa5g`QA z$#tPm=MS#4zpEX;4F8byMoaH(v|G4hD0ufHCE73U0%<%V82J!BtB+Ysr%ZcGn=D}b z+y#iF}gE@D+{drca&;=YDNb(<6wm0y_gjI{|f6Dit@NAt-Zn!6Wnlb(N z)QX}Py8_m=k?-moZ6w$uG4Qa@1ac@e{$;gkMIju>R8u>G0DR8_3H~ry{o^bif%0Fp z5vWD96hM?GvU#ypXhXw0NF#NYUG`B^GV5xyT>T)-8U=)_p!vE77PjKHligWPn~hrb z+`8i+Z1NaRqf4_%*bh652C3uX_Ao_!sg#oI;A2CUq?8m2_rQpaCd)n9*+B{p$#BVT z*FjUWxXwJ%c{k&GleiJeuR2Q-Az_;^g`v*G`r$7pfxt8{XMl@}3_6VV-gk7rypY*H znIXk+d|zqpO?OnUchaDHAU*r3zlY!!83Q&6klMq*$QtH?A7iE5PU3jV_n~K-$W>JF z5UP)03%02$^g}Qzu`v0EQT>nSpRzpSao8YPU0&JQPK6rGjne7_VwUj0<;b5fGo{;| z?VWEQqkKXu;Q@IuA}@>g16v%_@V|tL&hb0%)(vKhvd0@)JT{#CVNj8RmN*uIBKK)< zn6DaHUPRFWFfgl6=Nu22s~(>`*yg3PwJ-UQW+Zv<=B1#i+0okE7w7AZ8KM1-K6FSx ztNLas4BA$_qqBtB{w|v63}zD2)7O~VNMbXeo`2XJP*tqX*SchvEoQ#(xogu?L~@Ue zi*Q`9I$ndC?9RCKv79!(CVyViq1nUFpiz0axjl^84~S{U!l>od<=@YCL+X3oXt^dy z_wI&+*@mMZ(bn@wip7SVL}B^gX2LM6sY?T!GV`HAHn+94$5^jf1LpqG^CD2kW2`sAmcfyns)36 z(fO5cqsg`hGllrWnW~yN)(*ct9XWTGX4!bSXc`cWgjhQ6A`XiHpZaNhe8Qd&4PVwq@YkddEo<|B=h+XZ^#)~!DR zq7ivm>kFJtE~7qx9H>M95?r`T!`4-@y-bOgQX)Z!Wa5W(xBmjZ++e zZ1iBAB}>TvsG|M0MA}Eb_|pj2sm%uX!OIn9G=sg5ZqkvFElm1D>S-bx8@J}e7y*A! zVWIvq;sXOrK{^Q$XK;}c0hOv!Uvrx+Q^Ir5)V8@XvIPJFf&$roOy!u6xS%rmctFw_qq%gUH%{g$ZS$H z{Nf>BICM~<@|Vl*X1&6r4!FIw59x0>4~$A%opwAj22Y%o-z$gdpggT?+FJW1>8v5_ zf9$HdDwOEKrhHU(()@!YfbHXfvItv)EGevSpW0{{6a;|TxolMN9M|MZ^D*r z$T})hi`1yrLRGhn36t3&4bH))pyOamt1Fd@Cmr@;?s9`MSB)gZoE&RIOk_mj*DxaL zc~Ra(>1~b+Ktw1=L%r*aFGda%iw?%WIev$}nlrf4Dwzsufd4kp&GKX}qOwiOH5EF+ zH+90g15;}N2bRrl-ca7E47Fx+7DcESwlXAgQ9=h2EX<5@LOl^nxBTml_2QKGB~jXO zeZn9{Yk>ADliR{iwyaX7k zz13}Wm*q7^kGa(6luM4L4=B@Y`qu2w+a;7~jT@F5p=E-wCwb2?AGCoAtwfmNQbv~a zX^$t#A^nEKXRVtMI!VcSRnqL~D>a(?U1R!Fd!qN7QABL9K$AV>ly~fQfFLGGWm|Rl z>X+)o)3Zf6dPX4IPQ(b7!Y{%LKB9InG&nHSzL+I&Qy>sX{83|FV4B>%d;R8@GPd+X z*q-pU=|j45z@wAv+UI5A+Rs&BdF6|>#)n{w-s0yx#4*f-4_lfWI)CI#zE0h9R(xHe zix1m%UT>dlHg;HS_WJHt-Bz&<0A8`sP=v5tZj2`@8Dw;-H5owl&W0jCmvta`A3NS- zqe3b;8%)s_(Z8R$%r;-krG&o2a1WL;@kx7EUO4Rz0B(F#3CUIidEE649QZ??AT+Bhwkb* zg99z9TCe@rB+Tp1l+xuv_W`=^7I0`RQwP5x8zU0(7bu>eQ|Cb2RLs&^rWb5ueIK+m zILaItXB`Y-v=MAYR^t=RD`f1RGeYq1%P9Yn>^0}b0M!PB*u1J`d6Qwihs6&$q#B@b zL+GB~-9#KuxEWpZ=$AVfr@Mgxzn^KmBU(6?v-gK+DvAr&Evl$BoyzF8|4I z>En}&7&Ig>We=3xw<7jv9^lF?g@LiP)QKFvU2XHL9N50--rp#3I3PyU;PoLhG%^}I zE`*j7b->f*KgaT43vKX|uMIPTeeVQ3*X=zUy?E`{3*9F3{HD=O^U`=$H4)%;K38KZ?oPhJgY37i>a8iQ+0>7eMLd>$3%e zSXW8GFGu0$YX$`-+ni%kCt z&-^Y!AqK7j+KKacsW}WS`jY#}4paScAd`iRh81M%#43>IWSg)j`ozK_b6%h<`u{;_ ztzr=Bdg-tC5o5wfNbWl~E)mN;pOn%!T~AyOB@GSPoemeXi>lWqux@{|v8RC9>?!?+ z_Y9fo!go`I;+o6D>VQ}ecBmJ(+upg}^CivQVUAK}SV7LXz9>9VOzD=PJFz^3Ht}Fo zDLIb={funyhp2m_c{c$u@uSrzxLTKSh|@Ju@flbsY}#S`nBL=q++2Vr`oQo|exguG z#!TjW^QY-X_JC2E7$29iqeBnyx6*pRu!aR9bzgVm+vn@v3QduK*Ule`Nev4IXn|-iJUv5LkQyi|ArtZ|)d@6|H)F6%J_*<+toCi8xWA(^4e^vNg_)m@NF;O`5zg()Pl z8~9fK8Q#CoNrZv2c)O#>^l>9xDk}5l?~`Zs|GCunS&1;8SfG+v4QsyM%Ch$2PQ*$? z#PJ>gZV>sl*@&=tJ*`NMhS}1z2$gWZD{6kwMa42vgR2or<}yQ{bTBY!MDApYhP->@ z<%YZ#1?c9Cv)X-h;;=L%ijA4N@Ux9<5PXzQjxH}lAV5&;yhiZ+HFAu0XkVzpjZwsP6gr02ik&3GMbF8A zzd6@pjG#)$<*8uS(5FfM5^>5X=)SFFgtP+jM3=N76u-&npv0m?OEB?s(Q^%>Ki>SN z->g6(uFQzE95UXO1uvD?Q?tFlONI6hkXZN~84!uwZpDmY6pK?#P8Y>%d(OJC@gc*E zg*cM1Xb-$_8vsBfy16(Bb2v4dwa+7tLjMaM{-Jk@H36ah$OxG9QlaA?gwuT}CMi=Q zF!f<{lT{uiVbdQ2Ww1f*QdE-h0b$6kbMdb=g2&A^|M?Vp9H_=yq>Uq0HN+z)vtIsN z{>621Ad7$!#wvZDjz5bG!hOyr681Mh>Vfp9D3cdUYAc2ulb5j%iyNAdf&wjn)A$n@ZWWD52}&S>x$hTLHwX`))b-NxE4QY{Q^P zAr&$&p7AkQ(11(^r-1QPo@tAy{KxzKNw3M{LZaa%Daqx?J29vz)Z-0m&jx;*>ec!D3FcW0BEgyUS@D4< zDBk6J6_HM}$Y|1%6(T*0J>8ZWY>?eg5M@H0vM`W7^_j5&dd`my3L5~Kfk+&NGNd@3 zt3&0)FcCMGOAlon;Y;anryfk{*DGy{EiJqzVV9JO_bth4EpdSM^Rv_0KSA0*m%>m{ zO;B+x9yktjkXBKnJC#cZgGs-5afl?mSarJs5JTJsyjn%GXt488dr6)r+Gh%-(s9;@ zoIhI??6Lhaum}}tOjHlsILTbZbiZn%iHZ?yU)RhBr2M$Izt0FQ<&>}=uld=g4t}b= zuP+Av&N}cA?H`iypUW~jYXQEYMUU)H_HB)x92B0m(qEe>smv-cLs*c>6vE6UP*%J1 z+SOR~5ryln3wDH|>?dDjcM+VO{QlfYI2yY3;<*z69%^%@w|^N^!yxYU1o{Q1EVZC+39gF$*3U?F8A1an zUX9A2Ylb^Wp1YB8Y+M@?+Gs0B$tEnpa{h&i;k5T8gLH{5ZUfG>x#VAQ%fHhb`V-UVv$4jYFIux*zt-@``)WGLPZQ@RZ7e2kkrGx(h`@+7;MsZipv@M#dEqqI+Jrsq8h=6-LKWb!@#<($fp zynSUjWSGiZ=_A&cUXk|ZNDBPACm)ZM0R|ljN%iQw!w;noLD z=PpANCiPl6TDZ{$^g_Wwx++$D$zUCLzU@kliQE;di2xz)M!F$57%_O2ddSwh5(Mi0 zPCOKgAjuOzL4rh`kx&27fU4#WA{s?QrE2i99ap&l7cdb}G-A839w@K_yY*1~-?0!S z?9)$1s$a;FUNf-JwCDJDObJJ;(9#RM^vEM^xrr3}SN9|IQ>YFwqVbBm0D zlchM~t+J_L6ys9iY^}V1QePIOl3pZRg`;OKdopMx-y%0ARe=vWqX_x&u_hL#Pt`@$ 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 CpQjxF literal 0 HcmV?d00001 diff --git a/docs/images/dashboard-zh.png b/docs/images/dashboard-zh.png new file mode 100644 index 0000000000000000000000000000000000000000..5302af6fd2f86613de0e612f4d1e6aefe13a83e6 GIT binary patch literal 419172 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�vt_Y#F|zsU_ROdOgJ>Cy$f{ZT!{_Qi&!iC3cac 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

DzjR>{{`BizYdEFh(u|1nr|zIxj?PR_5kS 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

b<4aJ6(6g`FWnCJj%+ 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
  • t_f^au*H)K)xld$^Ob$IG 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 RJOliZy{mX9SMu?z{{vLr-5~$~ diff --git a/docs/images/roadmap-2.0.2-zh.png b/docs/images/roadmap-2.0.2-zh.png new file mode 100644 index 0000000000000000000000000000000000000000..6012567460f5dee14354138e992c86bf70469c77 GIT binary patch literal 183571 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
    OK;H)~)^^uX~YlH)lx);uDo-1^|UeMaEw;OsS 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

    ?*Ob6-oN||@>|p+O^X&O0@7onD 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 Kx%lGsp#K6$O1`@Q literal 0 HcmV?d00001 From 003bba5b62846720ee80953620319784d9a311a6 Mon Sep 17 00:00:00 2001 From: runzexia Date: Mon, 2 Sep 2019 12:58:47 +0800 Subject: [PATCH 9/9] fix comment Signed-off-by: runzexia --- pkg/apis/tenant/v1alpha2/register.go | 1 - pkg/apiserver/tenant/tenant.go | 3 ++- pkg/models/tenant/devops.go | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/pkg/apis/tenant/v1alpha2/register.go b/pkg/apis/tenant/v1alpha2/register.go index f9dfab8a5..379897c56 100644 --- a/pkg/apis/tenant/v1alpha2/register.go +++ b/pkg/apis/tenant/v1alpha2/register.go @@ -136,7 +136,6 @@ func addWebService(c *restful.Container) error { Metadata(restfulspec.KeyOpenAPITags, []string{constants.TenantResourcesTag})) ws.Route(ws.GET("/devopscount"). To(tenant.GetDevOpsProjectsCount). - Param(ws.PathParameter("member", "workspace member's username")). Returns(http.StatusOK, ok, struct { Count uint32 `json:"count"` }{}). diff --git a/pkg/apiserver/tenant/tenant.go b/pkg/apiserver/tenant/tenant.go index c4f5fb8ef..23557d075 100644 --- a/pkg/apiserver/tenant/tenant.go +++ b/pkg/apiserver/tenant/tenant.go @@ -24,6 +24,7 @@ import ( rbacv1 "k8s.io/api/rbac/v1" k8serr "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/util/net" + "k8s.io/klog" "kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1" "kubesphere.io/kubesphere/pkg/apiserver/logging" "kubesphere.io/kubesphere/pkg/constants" @@ -249,7 +250,7 @@ func GetDevOpsProjectsCount(req *restful.Request, resp *restful.Response) { result, err := tenant.GetDevOpsProjectsCount(username) if err != nil { - glog.Errorf("%+v", err) + klog.Errorf("%+v", err) errors.ParseSvcErr(err, resp) return } diff --git a/pkg/models/tenant/devops.go b/pkg/models/tenant/devops.go index 90b2e048d..ba287e326 100644 --- a/pkg/models/tenant/devops.go +++ b/pkg/models/tenant/devops.go @@ -113,9 +113,7 @@ func GetDevOpsProjectsCount(username string) (uint32, error) { From(devops.DevOpsProjectTableName) var sqconditions []dbr.Builder - switch username { - case devops.KS_ADMIN: - default: + if username != devops.KS_ADMIN { onCondition := fmt.Sprintf("%s = %s", devops.DevOpsProjectMembershipProjectIdColumn, devops.DevOpsProjectIdColumn) query.Join(devops.DevOpsProjectMembershipTableName, onCondition) sqconditions = append(sqconditions, db.Eq(devops.DevOpsProjectMembershipUsernameColumn, username))

    *AMaMQihtWwu-USAT*{f5~r} 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